Spring Integration

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, MessageHandler, MessageProducer, NamedComponent

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(String expression)
           
XPathMessageSplitter(String expression, Map<String,String> namespaces)
           
XPathMessageSplitter(org.springframework.xml.xpath.XPathExpression xpathExpression)
           
 
Method Summary
protected  DocumentBuilder getNewDocumentBuilder()
           
 void setCreateDocuments(boolean createDocuments)
           
 void setDocumentBuilder(DocumentBuilderFactory documentBuilderFactory)
           
 void setXmlPayloadConverter(XmlPayloadConverter xmlPayloadConverter)
           
protected  Object splitMessage(Message<?> message)
          Subclasses must override this method to split the received Message.
protected  List<Node> splitNodePayload(Node node, Message message)
           
 
Methods inherited from class org.springframework.integration.splitter.AbstractMessageSplitter
getComponentType, handleRequestMessage, handleResult
 
Methods inherited from class org.springframework.integration.handler.AbstractReplyProducingMessageHandler
getOutputChannel, handleMessageInternal, sendReplyMessage, setChannelResolver, setOutputChannel, setRequiresReply, setSendTimeout
 
Methods inherited from class org.springframework.integration.handler.AbstractMessageHandler
getOrder, handleMessage, resolveReplyChannel, setOrder
 
Methods inherited from class org.springframework.integration.context.IntegrationObjectSupport
afterPropertiesSet, getBeanFactory, getChannelResolver, getComponentName, getConversionService, getTaskScheduler, onInit, setBeanFactory, setBeanName, setComponentName, setConversionService, setTaskScheduler, toString, writeMessageHistory
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

XPathMessageSplitter

public XPathMessageSplitter(String expression)

XPathMessageSplitter

public XPathMessageSplitter(String expression,
                            Map<String,String> namespaces)

XPathMessageSplitter

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

setCreateDocuments

public void setCreateDocuments(boolean createDocuments)

setDocumentBuilder

public void setDocumentBuilder(DocumentBuilderFactory documentBuilderFactory)

setXmlPayloadConverter

public void setXmlPayloadConverter(XmlPayloadConverter xmlPayloadConverter)

splitMessage

protected 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 List<Node> splitNodePayload(Node node,
                                      Message message)
                               throws ParserConfigurationException
Throws:
ParserConfigurationException

getNewDocumentBuilder

protected DocumentBuilder getNewDocumentBuilder()
                                         throws ParserConfigurationException
Throws:
ParserConfigurationException

Spring Integration

Copyright © 2010. All Rights Reserved.