org.springframework.integration.channel
Class AbstractSubscribableChannel

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

public abstract class AbstractSubscribableChannel
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()
           
 
Method Summary
protected  boolean doSend(Message<?> message, long timeout)
          Subclasses must implement this method.
protected abstract  MessageDispatcher 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()
Method Detail

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

getDispatcher

protected abstract MessageDispatcher getDispatcher()