org.springframework.integration.channel
Class AbstractSubscribableChannel<T extends MessageDispatcher>

java.lang.Object
  extended by org.springframework.integration.channel.AbstractMessageChannel
      extended by org.springframework.integration.channel.AbstractSubscribableChannel<T>
All Implemented Interfaces:
org.springframework.beans.factory.BeanNameAware, SubscribableChannel, MessageChannel
Direct Known Subclasses:
DirectChannel, PublishSubscribeChannel

public class AbstractSubscribableChannel<T extends MessageDispatcher>
extends AbstractMessageChannel
implements SubscribableChannel

Base implementation of MessageChannel that invokes the subscribed handler(s) by delegating to a MessageDispatcher.

Author:
Mark Fisher

Nested Class Summary
 
Nested classes/interfaces inherited from class org.springframework.integration.channel.AbstractMessageChannel
AbstractMessageChannel.ChannelInterceptorList
 
Constructor Summary
AbstractSubscribableChannel(T dispatcher)
           
 
Method Summary
protected  boolean doSend(Message<?> message, long timeout)
          Subclasses must implement this method.
protected  T getDispatcher()
           
 boolean subscribe(MessageHandler handler)
          Register a MessageHandler as a subscriber to this channel.
 boolean unsubscribe(MessageHandler handle)
          Remove a MessageHandler from the subscribers of this channel.
 
Methods inherited from class org.springframework.integration.channel.AbstractMessageChannel
addInterceptor, getInterceptors, getName, send, send, setBeanName, setInterceptors, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.springframework.integration.core.MessageChannel
getName, send, send
 

Constructor Detail

AbstractSubscribableChannel

public AbstractSubscribableChannel(T dispatcher)
Method Detail

getDispatcher

protected T getDispatcher()

subscribe

public boolean subscribe(MessageHandler handler)
Description copied from interface: SubscribableChannel
Register a MessageHandler as a subscriber to this channel.

Specified by:
subscribe in interface SubscribableChannel

unsubscribe

public boolean unsubscribe(MessageHandler handle)
Description copied from interface: SubscribableChannel
Remove a MessageHandler from the subscribers of this channel.

Specified by:
unsubscribe in interface SubscribableChannel

doSend

protected boolean doSend(Message<?> message,
                         long timeout)
Description copied from class: AbstractMessageChannel
Subclasses must implement this method. A non-negative timeout indicates how long to wait if the channel is at capacity (if the value is 0, it must return immediately with or without success). A negative timeout value indicates that the method should block until either the message is accepted or the blocking thread is interrupted.

Specified by:
doSend in class AbstractMessageChannel