Interface XPathRuleQuery
-
- All Known Implementing Classes:
AbstractXPathRuleQuery
,JaxenXPathRuleQuery
,SaxonXPathRuleQuery
public interface XPathRuleQuery
This 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).
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
XPATH_1_0
XPath 1.0 version.static java.lang.String
XPATH_1_0_COMPATIBILITY
XPath 1.0 compatibility version.static java.lang.String
XPATH_2_0
XPath 2.0 version.
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description java.util.List<Node>
evaluate(Node node, RuleContext data)
Evaluate the XPath query against the given Node.java.util.List<java.lang.String>
getRuleChainVisits()
Indicates which AST Nodes (if any) should be used with the RuleChain.void
setProperties(java.util.Map<PropertyDescriptor<?>,java.lang.Object> properties)
Set the properties to use during the XPath query.void
setVersion(java.lang.String version)
Set the XPath version to be used.void
setXPath(java.lang.String xpath)
Set the XPath query string to be used.
-
-
-
Field Detail
-
XPATH_1_0
static final java.lang.String XPATH_1_0
XPath 1.0 version.- See Also:
- Constant Field Values
-
XPATH_1_0_COMPATIBILITY
static final java.lang.String XPATH_1_0_COMPATIBILITY
XPath 1.0 compatibility version.- See Also:
- Constant Field Values
-
XPATH_2_0
static final java.lang.String XPATH_2_0
XPath 2.0 version.- See Also:
- Constant Field Values
-
-
Method Detail
-
setXPath
void setXPath(java.lang.String xpath)
Set the XPath query string to be used.- Parameters:
xpath
- The XPath query string.
-
setVersion
void setVersion(java.lang.String version) throws java.lang.UnsupportedOperationException
Set the XPath version to be used.- Parameters:
version
- The XPath version.- Throws:
java.lang.UnsupportedOperationException
- if the version cannot be handled.
-
setProperties
void setProperties(java.util.Map<PropertyDescriptor<?>,java.lang.Object> properties)
Set the properties to use during the XPath query.
-
getRuleChainVisits
java.util.List<java.lang.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
java.util.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.
-
-