Interface XPathRuleQuery
-
- All Known Implementing Classes:
AbstractXPathRuleQuery,JaxenXPathRuleQuery,SaxonXPathRuleQuery
public interface XPathRuleQueryThis interface captures the logic needed by XPathRule to implement an XPath based query on an AST Node.Implementations of this class do not need to be thread-safe, but they will be reused to query against different AST Nodes. Therefore, internal state should be maintained in a fashion consistent with reuse. Further, implementations are recommended to manage internal state that is invariant over AST Nodes in a fashion which facilities high performance (e.g. caching).
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description List<Node>evaluate(Node node, RuleContext data)Evaluate the XPath query against the given Node.List<String>getRuleChainVisits()Indicates which AST Nodes (if any) should be used with the RuleChain.voidsetProperties(Map<PropertyDescriptor<?>,Object> properties)Set the properties to use during the XPath query.voidsetVersion(String version)Set the XPath version to be used.voidsetXPath(String xpath)Set the XPath query string to be used.
-
-
-
Field Detail
-
XPATH_1_0
static final String XPATH_1_0
XPath 1.0 version.- See Also:
- Constant Field Values
-
XPATH_1_0_COMPATIBILITY
static final String XPATH_1_0_COMPATIBILITY
XPath 1.0 compatibility version.- See Also:
- Constant Field Values
-
XPATH_2_0
static final String XPATH_2_0
XPath 2.0 version.- See Also:
- Constant Field Values
-
-
Method Detail
-
setXPath
void setXPath(String xpath)
Set the XPath query string to be used.- Parameters:
xpath- The XPath query string.
-
setVersion
void setVersion(String version) throws UnsupportedOperationException
Set the XPath version to be used.- Parameters:
version- The XPath version.- Throws:
UnsupportedOperationException- if the version cannot be handled.
-
setProperties
void setProperties(Map<PropertyDescriptor<?>,Object> properties)
Set the properties to use during the XPath query.
-
getRuleChainVisits
List<String> getRuleChainVisits()
Indicates which AST Nodes (if any) should be used with the RuleChain. Use of the RuleChain will allow the query execute on a targed sub-tree of the AST, instead of the entire AST from the root. This can result in great performance benefits.
-
evaluate
List<Node> evaluate(Node node, RuleContext data)
Evaluate the XPath query against the given Node.- Parameters:
node- The Node.data- The RuleContext.- Returns:
- The matching Nodes.
-
-