org.mule.module.xml.expression
Class AbstractXPathExpressionEvaluator

java.lang.Object
  extended by org.mule.module.xml.expression.AbstractXPathExpressionEvaluator
All Implemented Interfaces:
Disposable, NamedObject, ExpressionEvaluator
Direct Known Subclasses:
BeanPayloadExpressionEvaluator, XPathExpressionEvaluator

public abstract class AbstractXPathExpressionEvaluator
extends Object
implements ExpressionEvaluator, Disposable

Provides a base class for XPath property extractors. The XPath engine used is jaxen (http://jaxen.org) which supports XPath queries on other object models such as JavaBeans as well as Xml


Field Summary
 
Fields inherited from interface org.mule.api.lifecycle.Disposable
PHASE_NAME
 
Constructor Summary
AbstractXPathExpressionEvaluator()
           
 
Method Summary
protected abstract  org.jaxen.XPath createXPath(String expression, Object object)
           
 void dispose()
          A lifecycle method where implementor should free up any resources.
 Object evaluate(String expression, Object message)
          Extracts a single property from the message
protected abstract  Object extractResultFromNode(Object result)
           
protected  List extractResultsFromNodes(List results)
           
protected  org.jaxen.XPath getXPath(String expression, Object object)
           
 void setName(String name)
          Sets the name of the object
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.mule.api.NamedObject
getName
 

Constructor Detail

AbstractXPathExpressionEvaluator

public AbstractXPathExpressionEvaluator()
Method Detail

evaluate

public Object evaluate(String expression,
                       Object message)
Extracts a single property from the message

Specified by:
evaluate in interface ExpressionEvaluator
Parameters:
expression - the property expression or expression
message - the message to extract from
Returns:
the result of the extraction or null if the property was not found

setName

public final void setName(String name)
Sets the name of the object

Specified by:
setName in interface NamedObject
Parameters:
name - the name of the object

getXPath

protected org.jaxen.XPath getXPath(String expression,
                                   Object object)
                            throws org.jaxen.JaxenException
Throws:
org.jaxen.JaxenException

createXPath

protected abstract org.jaxen.XPath createXPath(String expression,
                                               Object object)
                                        throws org.jaxen.JaxenException
Throws:
org.jaxen.JaxenException

extractResultsFromNodes

protected List extractResultsFromNodes(List results)

dispose

public void dispose()
A lifecycle method where implementor should free up any resources. If an exception is thrown it should just be logged and processing should continue. This method should not throw Runtime exceptions.

Specified by:
dispose in interface Disposable

extractResultFromNode

protected abstract Object extractResultFromNode(Object result)


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