Class NodeTest

  • Direct Known Subclasses:
    AnyChildNodePattern, AnyNodeTest, NamespaceTest, NameTest, NodeTypeTest, NoNodeTest

    public abstract class NodeTest
    extends Pattern
    A NodeTest is a simple kind of pattern that enables a context-free test of whether a node has a particular name. There are five kinds of name test: a full name test, a prefix test, and an "any node of a given type" test, an "any node of any type" test, and a "no nodes" test (used, e.g. for "@comment()")
    Author:
    Michael H. Kay
    • Constructor Detail

      • NodeTest

        public NodeTest()
    • Method Detail

      • matches

        public abstract boolean matches​(NodeInfo node)
        Test whether this node test is satisfied by a given node
      • matches

        public abstract boolean matches​(short nodeType,
                                        int fingerprint)
        Test whether this node test is satisfied by a given node
        Parameters:
        nodeType - The type of node to be matched
        fingerprint - identifies the expanded name of the node to be matched. The value should be -1 for a node with no name.
      • matches

        public final boolean matches​(NodeInfo node,
                                     Context c)
        Test whether this node test is satisfied by a given node, in a given Context
        Specified by:
        matches in class Pattern
        Parameters:
        node - The NodeInfo representing the Element or other node to be tested against the Pattern
        c - 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