Class XPathUtil

Object
XPathUtil
Direct Known Subclasses:
XPath

public class XPathUtil extends Object
Utility class to evaluate XPath expressions against an Attribute instance, which may be any Attribute, whether it is simple, complex, a feature, etc.

At the difference of the Filter subsystem, which works against Attribute contents (for example to evaluate a comparison filter), the XPath subsystem, for which this class is the single entry point, works against Attribute instances. That is, the result of an XPath expression, if a single value, is an Attribtue, not the attribute content, or a List of Attributes, for instance.

Author:
Gabriel Roldan (Axios Engineering), Rini Angreani (CSIRO Earth Science and Resource Engineering)
  • Constructor Details

    • XPathUtil

      public XPathUtil()
  • Method Details

    • rootElementSteps

      public static XPathUtil.StepList rootElementSteps(AttributeDescriptor rootElement, NamespaceSupport namespaces) throws IllegalArgumentException
      Returns the list of steps in an x-path expression that represents the root element.
      Parameters:
      rootElement - non null descriptor of the root attribute, generally the Feature descriptor.
      namespaces - namespace support for generating qnames from namespaces.
      Returns:
      A list of unique of steps in an xpath expression.
      Throws:
      IllegalArgumentException - if root is undefined.
    • steps

      public static XPathUtil.StepList steps(AttributeDescriptor root, String xpathExpression, NamespaceSupport namespaces) throws IllegalArgumentException
      Returns the list of stepts in xpathExpression by cleaning it up removing unnecessary elements.

      Parameters:
      root - non null descriptor of the root attribute, generally the Feature descriptor. Used to ignore the first step in xpathExpression if the expression's first step is named as rootName.
      Throws:
      IllegalArgumentException - if xpathExpression has no steps or it isn't a valid XPath expression against type.
    • equals

      public static boolean equals(Name targetNodeName, XPathUtil.StepList targetXPath)