Class SubstitutionGroupTest

java.lang.Object
net.sf.saxon.pattern.NodeTest
net.sf.saxon.pattern.SubstitutionGroupTest
All Implemented Interfaces:
Serializable, ItemType

public class SubstitutionGroupTest extends NodeTest
NodeTest is an interface that enables a test of whether a node has a particular name and type. A SubstitutionGroupTest matches element nodes whose name is one of a given set of names: it is used for KindTests of the form schema-element(N) where all elements in a substitution group are to be matched.
Author:
Michael H. Kay
See Also:
  • Constructor Details

    • SubstitutionGroupTest

      public SubstitutionGroupTest(int fingerprint, IntHashSet group)
      Constructor
      Parameters:
      group - An IntSet containing Integer values representing the fingerprints of element names included in the substitution group
  • Method Details

    • matches

      public boolean matches(int nodeKind, int nameCode, int annotation)
      Test whether this node test is satisfied by a given node
      Specified by:
      matches in class NodeTest
      Parameters:
      nodeKind - The type of node to be matched
      nameCode - identifies the expanded name of the node to be matched
      annotation - The actual content type of the node
    • matches

      public boolean matches(TinyTree tree, int nodeNr)
      Test whether this node test is satisfied by a given node on a TinyTree. The node must be a document, element, text, comment, or processing instruction node. This method is provided so that when navigating a TinyTree a node can be rejected without actually instantiating a NodeInfo object.
      Specified by:
      matches in class NodeTest
      Parameters:
      tree - the TinyTree containing the node
      nodeNr - the number of the node within the TinyTree
      Returns:
      true if the node matches the NodeTest, otherwise false
    • matches

      public boolean matches(NodeInfo node)
      Test whether this node test is satisfied by a given node. This alternative method is used in the case of nodes where calculating the fingerprint is expensive, for example DOM or JDOM nodes.
      Specified by:
      matches in class NodeTest
      Parameters:
      node - the node to be matched
    • getDefaultPriority

      public final double getDefaultPriority()
      Determine the default priority of this node test when used on its own as a Pattern
      Specified by:
      getDefaultPriority in class NodeTest
    • getPrimitiveType

      public int getPrimitiveType()
      Determine the types of nodes to which this pattern applies. Used for optimisation. For patterns that match nodes of several types, return Type.NODE
      Specified by:
      getPrimitiveType in interface ItemType
      Overrides:
      getPrimitiveType in class NodeTest
      Returns:
      the type of node matched by this pattern. e.g. Type.ELEMENT or Type.TEXT
    • getNodeKindMask

      public int getNodeKindMask()
      Get a mask indicating which kinds of nodes this NodeTest can match. This is a combination of bits: 1invalid input: '<'invalid input: '<'Type.ELEMENT for element nodes, 1invalid input: '<'invalid input: '<'Type.TEXT for text nodes, and so on.
      Specified by:
      getNodeKindMask in class NodeTest
    • getRequiredNodeNames

      public IntHashSet getRequiredNodeNames()
      Get the set of node names allowed by this NodeTest. This is returned as a set of Integer fingerprints. A null value indicates that all names are permitted (i.e. that there are no constraints on the node name. The default implementation returns null.
      Overrides:
      getRequiredNodeNames in class NodeTest
    • getHeadFingerprint

      public int getHeadFingerprint()
      Get the fingerprint of the head of the substitution group
      Returns:
      the fingerprint of the head of the substitution group
    • toString

      public String toString(NamePool pool)
      Description copied from class: NodeTest
      Display the type descriptor for diagnostics
      Specified by:
      toString in interface ItemType
      Overrides:
      toString in class NodeTest
    • hashCode

      public int hashCode()
      Returns a hash code value for the object.
      Overrides:
      hashCode in class Object
    • equals

      public boolean equals(Object other)
      Overrides:
      equals in class Object