Class NamespaceTest

  • All Implemented Interfaces:
    java.io.Serializable, ItemType

    public final class NamespaceTest
    extends NodeTest
    NodeTest is an interface that enables a test of whether a node has a particular name and type. A NamespaceTest matches the node type and the namespace URI.
    Author:
    Michael H. Kay
    See Also:
    Serialized Form
    • Constructor Detail

      • NamespaceTest

        public NamespaceTest​(NamePool pool,
                             int nodeKind,
                             java.lang.String uri)
    • Method Detail

      • matches

        public boolean matches​(int nodeType,
                               int fingerprint,
                               int annotation)
        Test whether this node test is satisfied by a given node
        Specified by:
        matches in class NodeTest
        Parameters:
        nodeType - The type of node to be matched
        fingerprint - 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.
        Overrides:
        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.
        Overrides:
        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
      • getSuperType

        public ItemType getSuperType​(TypeHierarchy th)
        Get the type from which this item type is derived by restriction. This is the supertype in the XPath type heirarchy, as distinct from the Schema base type: this means that the supertype of xs:boolean is xs:anyAtomicType, whose supertype is item() (rather than xs:anySimpleType).

        In fact the concept of "supertype" is not really well-defined, because the types form a lattice rather than a hierarchy. The only real requirement on this function is that it returns a type that strictly subsumes this type, ideally as narrowly as possible.

        Specified by:
        getSuperType in interface ItemType
        Overrides:
        getSuperType in class NodeTest
        Parameters:
        th - the type hierarchy cache
        Returns:
        the supertype, or null if this type is item()
      • getNodeKindMask

        public int getNodeKindMask()
        Get a mask indicating which kinds of nodes this NodeTest can match. This is a combination of bits: 1<
        Overrides:
        getNodeKindMask in class NodeTest
      • getNamespaceURI

        public java.lang.String getNamespaceURI()
        Get the namespace URI matched by this NamespaceTest
        Returns:
        the namespace URI matched by this NamespaceTest
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • hashCode

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

        public boolean equals​(java.lang.Object other)
        Indicates whether some other object is "equal to" this one.
        Overrides:
        equals in class java.lang.Object