com.tenduke.distribution
Class AbstractDistributionRequest<T extends AbstractDistributionRequestResult>

java.lang.Object
  extended by com.tenduke.distribution.AbstractDistributionRequest<T>
All Implemented Interfaces:
java.util.concurrent.Callable<T>
Direct Known Subclasses:
HttpDistributionRequest

public abstract class AbstractDistributionRequest<T extends AbstractDistributionRequestResult>
extends java.lang.Object
implements java.util.concurrent.Callable<T>

AbstractDistributionRequest distributes a Distributable object to different channels, as defined by concrete DistributionRequest implementations and DistributionRequestFactory configuration.

See Also:
Distributable, DistributionRequests, DistributionRequestResult, DistributionRequestResultSubscriber

Constructor Summary
protected AbstractDistributionRequest()
          Create new instance of the class.
protected AbstractDistributionRequest(Distributable distributable)
          Create new instance of the class.
 
Method Summary
 Distributable getDistributable()
          Get object distributed by this DistributionRequesst.
 void notifySubscribers(DistributionRequestResult result)
          Notify all DistributionRequests results subscribers.
 void setDistributable(Distributable distributable)
          Set object distributed by this DistributionRequesst.
 void subscribeResult(DistributionRequestResultSubscriber subscriber)
          Add an object as DistributionRequest result subscriber.
 void unsubscribeResult(DistributionRequestResultSubscriber subscriber)
          Remove a DistributionRequest result subscriber.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface java.util.concurrent.Callable
call
 

Constructor Detail

AbstractDistributionRequest

protected AbstractDistributionRequest()
Create new instance of the class.


AbstractDistributionRequest

protected AbstractDistributionRequest(Distributable distributable)
Create new instance of the class.

Parameters:
distributable - Object distributed by this DistributionRequest.
Method Detail

getDistributable

public Distributable getDistributable()
Get object distributed by this DistributionRequesst.

Returns:
object distributed by this DistributionRequesst.

notifySubscribers

public void notifySubscribers(DistributionRequestResult result)
Notify all DistributionRequests results subscribers.

Parameters:
result - DistributionRequestsResult object to pass to the subscribers.

setDistributable

public void setDistributable(Distributable distributable)
Set object distributed by this DistributionRequesst.

Parameters:
distributable - object distributed by this DistributionRequesst.

subscribeResult

public void subscribeResult(DistributionRequestResultSubscriber subscriber)
Add an object as DistributionRequest result subscriber. Result subscribers handleDistributionRequestResult method will be called when DistributionRequest results are available.

Parameters:
subscriber - Subscriber to add.

unsubscribeResult

public void unsubscribeResult(DistributionRequestResultSubscriber subscriber)
Remove a DistributionRequest result subscriber.

Parameters:
subscriber - Subscriber to remove.