org.mule.routing.outbound
Class AbstractMessageSplitter

java.lang.Object
  extended byorg.mule.routing.AbstractRouter
      extended byorg.mule.routing.outbound.AbstractOutboundRouter
          extended byorg.mule.routing.outbound.FilteringOutboundRouter
              extended byorg.mule.routing.outbound.AbstractMessageSplitter
All Implemented Interfaces:
UMOOutboundRouter, UMORouter
Direct Known Subclasses:
FilteringListMessageSplitter, FilteringXmlMessageSplitter

public abstract class AbstractMessageSplitter
extends FilteringOutboundRouter

AbstractMessageSplitter is an outbound Message Splitter used to split the contents of a received message into sub parts that can be processed by other components. Each Part is fired as a separate event to each endpoint on the router. The endpoints can have filters on them to receive only certain message parts.


Field Summary
protected  boolean honorSynchronicity
           
protected  boolean multimatch
           
 
Fields inherited from class org.mule.routing.outbound.AbstractOutboundRouter
ENABLE_CORRELATION_ALWAYS, ENABLE_CORRELATION_IF_NOT_SET, ENABLE_CORRELATION_NEVER, enableCorrelation, endpoints, logger, propertyExtractor, replyTo, transactionConfig
 
Constructor Summary
AbstractMessageSplitter()
           
 
Method Summary
protected abstract  UMOMessage getMessagePart(UMOMessage message, UMOEndpoint endpoint)
          Retrieves a specific message part for the given endpoint.
protected  void initialise(UMOMessage message)
          Template method that can be used to split the message up before the getMessagePart method is called .
 boolean isHonorSynchronicity()
           
 UMOMessage route(UMOMessage message, UMOSession session, boolean synchronous)
          This method is responsible for routing the Message via the Session.
 void setHonorSynchronicity(boolean honorSynchronicity)
          Sets the flag indicating whether the splitter honurs endpoint settings
 
Methods inherited from class org.mule.routing.outbound.FilteringOutboundRouter
addEndpoint, getEndpoint, getFilter, getTransformer, isMatch, isUseTemplates, setFilter, setTransformer, setUseTemplates
 
Methods inherited from class org.mule.routing.outbound.AbstractOutboundRouter
dispatch, getEnableCorrelation, getEndpoints, getPropertyExtractor, getReplyTo, getTransactionConfig, isDynamicEndpoints, removeEndpoint, send, setEnableCorrelation, setEnableCorrelationAsString, setEndpoints, setMessageProperties, setPropertyExtractor, setPropertyExtractorAsString, setReplyTo, setTransactionConfig
 
Methods inherited from class org.mule.routing.AbstractRouter
getRouterStatistics, setRouterStatistics
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.mule.umo.routing.UMORouter
getRouterStatistics, setRouterStatistics
 

Field Detail

multimatch

protected boolean multimatch

honorSynchronicity

protected boolean honorSynchronicity
Constructor Detail

AbstractMessageSplitter

public AbstractMessageSplitter()
Method Detail

route

public UMOMessage route(UMOMessage message,
                        UMOSession session,
                        boolean synchronous)
                 throws RoutingException
Description copied from interface: UMOOutboundRouter
This method is responsible for routing the Message via the Session. The logic for this method will change for each type of router depending on expected behaviour. For example, a MulticastingRouter might just iterate through the list of assoaciated endpoints sending the message. Another type of router such as the ExceptionBasedRouter will hit the first endpoint, if it fails try the second, and so on. Most router implementations will extends the FilteringOutboundRouter which implements all the common logic need for a router.

Specified by:
route in interface UMOOutboundRouter
Overrides:
route in class FilteringOutboundRouter
Throws:
RoutingException

initialise

protected void initialise(UMOMessage message)
Template method that can be used to split the message up before the getMessagePart method is called .

Parameters:
message - the message being routed

isHonorSynchronicity

public boolean isHonorSynchronicity()

setHonorSynchronicity

public void setHonorSynchronicity(boolean honorSynchronicity)
Sets the flag indicating whether the splitter honurs endpoint settings

Parameters:
honorSynchronicity - flag setting

getMessagePart

protected abstract UMOMessage getMessagePart(UMOMessage message,
                                             UMOEndpoint endpoint)
Retrieves a specific message part for the given endpoint. the message will then be routed via the provider.

NOTE:Implementations must provide proper synchronization for shared state (payload, properties, etc.)

Parameters:
message - the current message being processed
endpoint - the endpoint that will be used to route the resulting message part
Returns:
the message part to dispatch


Copyright © 2003-2008 MuleSource, Inc.. All Rights Reserved.