## 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
`protected java.lang.String` `originalText`
`protected StaticContext` `staticContext`

Constructor Summary
`Pattern()`

Method Summary
`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