Class Pattern

java.lang.Object
com.icl.saxon.pattern.Pattern
Direct Known Subclasses:
IDPattern, KeyPattern, LocationPathPattern, NodeTest, UnionPattern

public abstract class Pattern extends Object
A Pattern represents the result of parsing an XSLT pattern string.
Patterns are created by calling the static method Pattern.make(string).
The pattern is used to test a particular node by calling match().
  • Field Details

    • staticContext

      protected StaticContext staticContext
    • originalText

      protected String originalText
  • Constructor Details

    • Pattern

      public Pattern()
  • Method Details

    • make

      public static Pattern make(String pattern, StaticContext env) throws XPathException
      Static method to make a Pattern by parsing a String.
      Parameters:
      pattern - The pattern text as a String
      env - An object defining the compile-time context for the expression
      Returns:
      The pattern object
      Throws:
      XPathException
    • setOriginalText

      public void setOriginalText(String text)
      Set the original text of the pattern for use in diagnostics
    • simplify

      public Pattern simplify() throws XPathException
      Simplify the pattern by applying any context-independent optimisations. Default implementation does nothing.
      Returns:
      the optimised Pattern
      Throws:
      XPathException
    • setStaticContext

      public final void setStaticContext(StaticContext sc)
      Set the static context used when the pattern was parsed
    • getStaticContext

      public StaticContext getStaticContext()
      Determine the static context used when the pattern was parsed
    • matches

      public abstract boolean matches(NodeInfo node, Context context) throws XPathException
      Determine whether this Pattern matches the given Node
      Parameters:
      node - The NodeInfo representing the Element or other node to be tested against the Pattern
      context - The context in which the match is to take place. Only relevant if the pattern uses variables.
      Returns:
      true if the node matches the Pattern, false otherwise
      Throws:
      XPathException
    • getNodeType

      public short getNodeType()
      Determine the types of nodes to which this pattern applies. Used for optimisation. For patterns that match nodes of several types, return NodeInfo.NODE
      Returns:
      the type of node matched by this pattern. e.g. NodeInfo.ELEMENT or NodeInfo.TEXT
    • getFingerprint

      public int getFingerprint()
      Determine the name fingerprint of nodes to which this pattern applies. Used for optimisation.
      Returns:
      A fingerprint that the nodes must match, or null Otherwise return null.
    • getDefaultPriority

      public double getDefaultPriority()
      Determine the default priority to use if this pattern appears as a match pattern for a template with no explicit priority attribute.
    • getSystemId

      public String getSystemId()
      Get the system id of the entity in which the pattern occurred
    • getLineNumber

      public int getLineNumber()
      Get the line number on which the pattern was defined
    • toString

      public String toString()
      Get the original pattern text
      Overrides:
      toString in class Object