Pattern
Date: 2016-07-03

com.icl.saxon.pattern

## Class Pattern

- java.lang.Object
- - com.icl.saxon.pattern.Pattern

- Direct Known Subclasses:
    IDPattern, KeyPattern, LocationPathPattern, NodeTest, UnionPattern

      public abstract class Pattern
      extends java.lang.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 Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected java.lang.String` | `originalText`
    `protected StaticContext` | `staticContext`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `Pattern()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `double` | `getDefaultPriority()` Determine the default priority to use if this pattern appears as a match pattern for a template with no explicit priority attribute.
    `int` | `getFingerprint()` Determine the name fingerprint of nodes to which this pattern applies.
    `int` | `getLineNumber()` Get the line number on which the pattern was defined
    `short` | `getNodeType()` Determine the types of nodes to which this pattern applies.
    `StaticContext` | `getStaticContext()` Determine the static context used when the pattern was parsed
    `java.lang.String` | `getSystemId()` Get the system id of the entity in which the pattern occurred
    `static Pattern` | `make(java.lang.String pattern, StaticContext env)` Static method to make a Pattern by parsing a String.
    `abstract boolean` | `matches(NodeInfo node, Context context)` Determine whether this Pattern matches the given Node
    `void` | `setOriginalText(java.lang.String text)` Set the original text of the pattern for use in diagnostics
    `void` | `setStaticContext(StaticContext sc)` Set the static context used when the pattern was parsed
    `Pattern` | `simplify()` Simplify the pattern by applying any context-independent optimisations.
    `java.lang.String` | `toString()` Get the original pattern text

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

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

- - ### Field Detail

    - #### staticContext

          protected StaticContext staticContext

    - #### originalText

          protected java.lang.String originalText

  - ### Constructor Detail

    - #### Pattern

          public Pattern()

  - ### Method Detail

    - #### make

          public static Pattern make(java.lang.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(java.lang.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 java.lang.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 java.lang.String toString()

      Get the original pattern text
      Overrides:
        `toString` in class `java.lang.Object`