org.springframework.integration.xml.splitter
Class XPathMessageSplitter

java.lang.Object
  extended by org.springframework.integration.context.IntegrationObjectSupport
      extended by org.springframework.integration.handler.AbstractMessageHandler
          extended by org.springframework.integration.handler.AbstractReplyProducingMessageHandler
              extended by org.springframework.integration.splitter.AbstractMessageSplitter
                  extended by org.springframework.integration.xml.splitter.XPathMessageSplitter
All Implemented Interfaces:
BeanFactoryAware, BeanNameAware, InitializingBean, Ordered, NamedComponent, Orderable, MessageHandler, MessageProducer, TrackableComponent

public class XPathMessageSplitter
extends AbstractMessageSplitter

Message Splitter that uses an XPathExpression to split a Document, File or String payload into a NodeList. The return value will be either Strings or Nodes depending on the received payload type. Additionally, node types will be converted to Documents if the 'createDocuments' property is set to true.


Field Summary
 
Fields inherited from class org.springframework.integration.handler.AbstractMessageHandler
logger
 
Fields inherited from interface org.springframework.core.Ordered
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
 
Constructor Summary
XPathMessageSplitter(java.lang.String expression)
           
XPathMessageSplitter(java.lang.String expression, java.util.Map<java.lang.String,java.lang.String> namespaces)
           
XPathMessageSplitter(org.springframework.xml.xpath.XPathExpression xpathExpression)
           
 
Method Summary
 java.lang.String getComponentType()
          Subclasses may implement this method to provide component type information.
 void setCreateDocuments(boolean createDocuments)
           
 void setDocumentBuilder(javax.xml.parsers.DocumentBuilderFactory documentBuilderFactory)
           
 void setXmlPayloadConverter(XmlPayloadConverter xmlPayloadConverter)
           
protected  java.lang.Object splitMessage(Message<?> message)
          Subclasses must override this method to split the received Message.
 
Methods inherited from class org.springframework.integration.splitter.AbstractMessageSplitter
handleRequestMessage, setApplySequence
 
Methods inherited from class org.springframework.integration.handler.AbstractReplyProducingMessageHandler
getMessagingTemplate, handleMessageInternal, onInit, setChannelResolver, setOutputChannel, setRequiresReply, setSendTimeout, shouldCopyRequestHeaders
 
Methods inherited from class org.springframework.integration.handler.AbstractMessageHandler
getOrder, handleMessage, setOrder, setShouldTrack
 
Methods inherited from class org.springframework.integration.context.IntegrationObjectSupport
afterPropertiesSet, getBeanFactory, getComponentName, getConversionService, getTaskScheduler, setBeanFactory, setBeanName, setComponentName, setConversionService, setTaskScheduler, 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.context.NamedComponent
getComponentName
 

Constructor Detail

XPathMessageSplitter

public XPathMessageSplitter(java.lang.String expression)

XPathMessageSplitter

public XPathMessageSplitter(java.lang.String expression,
                            java.util.Map<java.lang.String,java.lang.String> namespaces)

XPathMessageSplitter

public XPathMessageSplitter(org.springframework.xml.xpath.XPathExpression xpathExpression)
Method Detail

setCreateDocuments

public void setCreateDocuments(boolean createDocuments)

getComponentType

public java.lang.String getComponentType()
Description copied from class: IntegrationObjectSupport
Subclasses may implement this method to provide component type information.

Specified by:
getComponentType in interface NamedComponent
Overrides:
getComponentType in class AbstractMessageSplitter

setDocumentBuilder

public void setDocumentBuilder(javax.xml.parsers.DocumentBuilderFactory documentBuilderFactory)

setXmlPayloadConverter

public void setXmlPayloadConverter(XmlPayloadConverter xmlPayloadConverter)

splitMessage

protected java.lang.Object splitMessage(Message<?> message)
Description copied from class: AbstractMessageSplitter
Subclasses must override this method to split the received Message. The return value may be a Collection or Array. The individual elements may be Messages, but it is not necessary. If the elements are not Messages, each will be provided as the payload of a Message. It is also acceptable to return a single Object or Message. In that case, a single reply Message will be produced.

Specified by:
splitMessage in class AbstractMessageSplitter