public abstract class AbstractMessageChannel extends java.lang.Object implements MessageChannel, InterceptableChannel, BeanNameAware
MessageChannel implementations.| Modifier and Type | Class and Description | 
|---|---|
| protected class  | AbstractMessageChannel.ChannelInterceptorChainAssists with the invocation of the configured channel interceptors. | 
| Modifier and Type | Field and Description | 
|---|---|
| protected Log | logger | 
INDEFINITE_TIMEOUT| Constructor and Description | 
|---|
| AbstractMessageChannel() | 
| Modifier and Type | Method and Description | 
|---|---|
| void | addInterceptor(ChannelInterceptor interceptor)Add a channel interceptor to the end of the list. | 
| void | addInterceptor(int index,
              ChannelInterceptor interceptor)Add a channel interceptor at the specified index. | 
| java.lang.String | getBeanName()Return the bean name for this message channel. | 
| java.util.List<ChannelInterceptor> | getInterceptors()Return the list of configured interceptors. | 
| boolean | removeInterceptor(ChannelInterceptor interceptor)Remove the given interceptor. | 
| ChannelInterceptor | removeInterceptor(int index)Remove the interceptor at the given index. | 
| boolean | send(Message<?> message)Send a  Messageto this channel. | 
| boolean | send(Message<?> message,
    long timeout)Send a message, blocking until either the message is accepted or the
 specified timeout period elapses. | 
| protected abstract boolean | sendInternal(Message<?> message,
            long timeout) | 
| void | setBeanName(java.lang.String name)A message channel uses the bean name primarily for logging purposes. | 
| void | setInterceptors(java.util.List<ChannelInterceptor> interceptors)Set the list of channel interceptors clearing any existing interceptors. | 
| java.lang.String | toString() | 
protected final Log logger
public void setBeanName(java.lang.String name)
setBeanName in interface BeanNameAwarename - the name of the bean in the factory.
 Note that this name is the actual bean name used in the factory, which may
 differ from the originally specified name: in particular for inner bean
 names, the actual bean name might have been made unique through appending
 "#..." suffixes. Use the BeanFactoryUtils.originalBeanName(String)
 method to extract the original bean name (without suffix), if desired.public java.lang.String getBeanName()
public void setInterceptors(java.util.List<ChannelInterceptor> interceptors)
InterceptableChannelsetInterceptors in interface InterceptableChannelpublic void addInterceptor(ChannelInterceptor interceptor)
InterceptableChanneladdInterceptor in interface InterceptableChannelpublic void addInterceptor(int index,
                           ChannelInterceptor interceptor)
InterceptableChanneladdInterceptor in interface InterceptableChannelpublic java.util.List<ChannelInterceptor> getInterceptors()
InterceptableChannelgetInterceptors in interface InterceptableChannelpublic boolean removeInterceptor(ChannelInterceptor interceptor)
InterceptableChannelremoveInterceptor in interface InterceptableChannelpublic ChannelInterceptor removeInterceptor(int index)
InterceptableChannelremoveInterceptor in interface InterceptableChannelpublic final boolean send(Message<?> message)
MessageChannelMessage to this channel. If the message is sent successfully,
 the method returns true. If the message cannot be sent due to a
 non-fatal reason, the method returns false. The method may also
 throw a RuntimeException in case of non-recoverable errors.
 This method may block indefinitely, depending on the implementation.
 To provide a maximum wait time, use MessageChannel.send(Message, long).
send in interface MessageChannelmessage - the message to sendpublic final boolean send(Message<?> message, long timeout)
MessageChannelsend in interface MessageChannelmessage - the message to sendtimeout - the timeout in milliseconds or MessageChannel.INDEFINITE_TIMEOUTtrue if the message is sent, false if not
 including a timeout of an interrupt of the sendprotected abstract boolean sendInternal(Message<?> message, long timeout)
public java.lang.String toString()
toString in class java.lang.Object