Class ItemTypePattern

java.lang.Object
net.sf.saxon.pattern.Pattern
net.sf.saxon.pattern.ItemTypePattern
All Implemented Interfaces:
Serializable, SourceLocator, Container, PatternFinder

public class ItemTypePattern extends Pattern
A ItemTypePattern is a pattern that consists simply of an ItemType. In the past the ItemType was always a NodeTest, but XSLT 3.0 introduces the ability for a pattern to also match atomic values.
Author:
Michael H. Kay
See Also:
  • Constructor Details

    • ItemTypePattern

      public ItemTypePattern(ItemType test)
      Create an ItemTypePattern that matches all items of a given type
      Parameters:
      test - the type that the items must satisfy for the pattern to match
  • Method Details

    • setPriority

      public void setPriority(double priority)
      Set a priority to override the default priority. This is used when the pattern is written in a complex form such as a[true()] justifying a priority of 0.5, but then simplifies down to an ItemTypePattern
    • matches

      public boolean matches(Item item, XPathContext context)
      Determine whether this Pattern matches the given Node. This is the main external interface for matching patterns: it sets current() to the node being tested
      Specified by:
      matches in class Pattern
      Parameters:
      item - 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, or contains calls on functions such as document() or key(). Not used (and can be set to null) in the case of patterns that are NodeTests
      Returns:
      true if the node matches the Pattern, false otherwise
    • getItemType

      public ItemType getItemType()
      Get a NodeTest that all the nodes matching this pattern must satisfy
      Specified by:
      getItemType in class Pattern
      Returns:
      an ItemType, as specific as possible, which all the matching items satisfy
    • getDefaultPriority

      public final double getDefaultPriority()
      Determine the default priority of this item type test when used on its own as a Pattern
      Overrides:
      getDefaultPriority in class Pattern
      Returns:
      the default priority for the pattern
    • getNodeKind

      public int getNodeKind()
      Determine the types of nodes to which this pattern applies. Used for optimisation. For patterns that match nodes of several types, return Type.NODE. For patterns that do not match nodes, return -1.
      Overrides:
      getNodeKind in class Pattern
      Returns:
      the type of node matched by this pattern. e.g. Type.ELEMENT or Type.TEXT
    • getFingerprint

      public int getFingerprint()
      Determine the name fingerprint of nodes to which this pattern applies. Used for optimisation.
      Overrides:
      getFingerprint in class Pattern
      Returns:
      A fingerprint that the nodes must match, or -1 if it can match multiple fingerprints
    • toString

      public String toString()
      Display the pattern for diagnostics
      Overrides:
      toString in class Pattern
    • equals

      public boolean equals(Object other)
      Determine whether this pattern is the same as another pattern
      Overrides:
      equals in class Object
      Parameters:
      other - the other object
    • hashCode

      public int hashCode()
      Hashcode supporting equals()
      Overrides:
      hashCode in class Object