Spring Integration

org.springframework.integration.xml.transformer
Class XPathTransformer

java.lang.Object
  extended by org.springframework.integration.context.IntegrationObjectSupport
      extended by org.springframework.integration.transformer.AbstractTransformer
          extended by org.springframework.integration.xml.transformer.XPathTransformer
All Implemented Interfaces:
org.springframework.beans.factory.Aware, org.springframework.beans.factory.BeanFactoryAware, org.springframework.beans.factory.BeanNameAware, org.springframework.beans.factory.InitializingBean, NamedComponent, Transformer

public class XPathTransformer
extends AbstractTransformer

Transformer implementation that evaluates an XPath expression against the inbound Message payload and returns a Message whose payload is the result of that evaluation. Prior to evaluation, the payload may be converted by the configured XmlPayloadConverter instance. The default converter type is DefaultXmlPayloadConverter.

The evaluation result type will depend on either the enumeration value provided to setEvaluationType(XPathEvaluationType) or the presence of a NodeMapper, which takes precedence. If no NodeMapper or evaluation type is configured explicitly, the default evaluation type is XPathEvaluationType.STRING_RESULT.

Since:
2.0
Author:
Mark Fisher

Field Summary
 
Fields inherited from class org.springframework.integration.context.IntegrationObjectSupport
logger
 
Constructor Summary
XPathTransformer(java.lang.String expression)
          Create an XPathTransformer that will create an XPath expression from the given String to be evaluated against converted inbound Message payloads.
XPathTransformer(org.springframework.xml.xpath.XPathExpression expression)
          Create an XPathTransformer that will evaluate the given XPathExpression against converted inbound Message payloads.
 
Method Summary
protected  java.lang.Object doTransform(Message<?> message)
          Subclasses must implement this method to provide the transformation logic.
 void setConverter(XmlPayloadConverter converter)
          Specify the XmlPayloadConverter to use when converting a Message payload prior to XPath evaluation.
 void setEvaluationType(XPathEvaluationType evaluationType)
          Specify the expected XPathEvaluationType.
 void setNodeMapper(org.springframework.xml.xpath.NodeMapper<?> nodeMapper)
          Set a NodeMapper to use for generating the result object.
 
Methods inherited from class org.springframework.integration.transformer.AbstractTransformer
transform
 
Methods inherited from class org.springframework.integration.context.IntegrationObjectSupport
afterPropertiesSet, getBeanFactory, getComponentName, getComponentType, getConversionService, getTaskScheduler, onInit, setBeanFactory, setBeanName, setComponentName, setConversionService, setTaskScheduler, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

XPathTransformer

public XPathTransformer(java.lang.String expression)
Create an XPathTransformer that will create an XPath expression from the given String to be evaluated against converted inbound Message payloads.


XPathTransformer

public XPathTransformer(org.springframework.xml.xpath.XPathExpression expression)
Create an XPathTransformer that will evaluate the given XPathExpression against converted inbound Message payloads.

Method Detail

setEvaluationType

public void setEvaluationType(XPathEvaluationType evaluationType)
Specify the expected XPathEvaluationType. The default is XPathEvaluationType.STRING_RESULT.


setNodeMapper

public void setNodeMapper(org.springframework.xml.xpath.NodeMapper<?> nodeMapper)
Set a NodeMapper to use for generating the result object. By default the NodeMapper is null, but if explicitly set, type determination is the responsibility of the NodeMapper, taking precedence over any configured evaluationType.


setConverter

public void setConverter(XmlPayloadConverter converter)
Specify the XmlPayloadConverter to use when converting a Message payload prior to XPath evaluation.


doTransform

protected java.lang.Object doTransform(Message<?> message)
                                throws java.lang.Exception
Description copied from class: AbstractTransformer
Subclasses must implement this method to provide the transformation logic. If the return value is itself a Message, it will be used as the result. Otherwise, any non-null return value will be used as the payload of the result Message.

Specified by:
doTransform in class AbstractTransformer
Throws:
java.lang.Exception

Spring Integration