net.sourceforge.pmd.lang.rule.xpath

## Class JaxenXPathRuleQuery

- java.lang.Object
- - net.sourceforge.pmd.lang.rule.xpath.AbstractXPathRuleQuery
  - - net.sourceforge.pmd.lang.rule.xpath.JaxenXPathRuleQuery

All Implemented Interfaces:
  XPathRuleQuery

    public class JaxenXPathRuleQuery
    extends AbstractXPathRuleQuery

This is a Jaxen based XPathRule query.

### Field Summary

### Fields inherited from class net.sourceforge.pmd.lang.rule.xpath.AbstractXPathRuleQuery

`properties, ruleChainVisits, version, xpath`

### Fields inherited from interface net.sourceforge.pmd.lang.rule.xpath.XPathRuleQuery

`XPATH_1_0, XPATH_1_0_COMPATIBILITY, XPATH_2_0`

### Constructor Summary

Constructors
Constructor and Description
`JaxenXPathRuleQuery()`

### Method Summary

Methods
`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.
`boolean` `isSupportedVersion(String version)` Subclasses should implement to indicate whether an XPath version is supported.

### Methods inherited from class net.sourceforge.pmd.lang.rule.xpath.AbstractXPathRuleQuery

`setProperties, setVersion, setXPath`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### JaxenXPathRuleQuery

    public JaxenXPathRuleQuery()

### Method Detail

#### isSupportedVersion

    public boolean isSupportedVersion(String version)

Subclasses should implement to indicate whether an XPath version is supported.

Specified by:
  `isSupportedVersion` in class `AbstractXPathRuleQuery`
Parameters:
  `version` - The XPath version.
Returns:
  `true` if the XPath version is supported, `false` otherwise.

#### evaluate

    public List<Node> evaluate(Node node,
                      RuleContext data)

Evaluate the XPath query against the given Node.

Specified by:
  `evaluate` in interface `XPathRuleQuery`
Specified by:
  `evaluate` in class `AbstractXPathRuleQuery`
Parameters:
  `node` - The Node.
  `data` - The RuleContext.
Returns:
  The matching Nodes.

#### getRuleChainVisits

    public 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.

Specified by:
  `getRuleChainVisits` in interface `XPathRuleQuery`
Overrides:
  `getRuleChainVisits` in class `AbstractXPathRuleQuery`