org.springframework.integration.xml.splitter
Class XPathMessageSplitter

java.lang.Object
  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:
org.springframework.beans.factory.BeanFactoryAware, org.springframework.core.Ordered, MessageHandler

public class XPathMessageSplitter
extends AbstractMessageSplitter

Message Splitter that uses an XPathExpression to split a Document 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.

Author:
Jonas Partner

Field Summary
 
Fields inherited from class org.springframework.integration.handler.AbstractReplyProducingMessageHandler
DEFAULT_SEND_TIMEOUT
 
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
protected  javax.xml.parsers.DocumentBuilder getNewDocumentBuilder()
           
 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.
protected  java.util.List<org.w3c.dom.Node> splitNodePayload(org.w3c.dom.Node node, Message message)
           
 
Methods inherited from class org.springframework.integration.splitter.AbstractMessageSplitter
handleRequestMessage
 
Methods inherited from class org.springframework.integration.handler.AbstractReplyProducingMessageHandler
getOutputChannel, handleMessageInternal, sendReplyMessage, setBeanFactory, setChannelResolver, setOutputChannel, setRequiresReply, setSendTimeout
 
Methods inherited from class org.springframework.integration.handler.AbstractMessageHandler
getOrder, handleMessage, setOrder
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

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)

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

splitNodePayload

protected java.util.List<org.w3c.dom.Node> splitNodePayload(org.w3c.dom.Node node,
                                                            Message message)
                                                     throws javax.xml.parsers.ParserConfigurationException
Throws:
javax.xml.parsers.ParserConfigurationException

getNewDocumentBuilder

protected javax.xml.parsers.DocumentBuilder getNewDocumentBuilder()
                                                           throws javax.xml.parsers.ParserConfigurationException
Throws:
javax.xml.parsers.ParserConfigurationException