Class AnchorPattern

  • All Implemented Interfaces:
    java.io.Serializable, javax.xml.transform.SourceLocator, Container, PatternFinder

    public class AnchorPattern
    extends Pattern
    This is a special pattern that matches the "anchor node"; it is not used for XSLT patterns, but for the selectors that arise when evaluating XPath expressions in streaming mode; the anchor node is the context node for the streamed XPath evaluation.
    See Also:
    Serialized Form
    • Constructor Detail

      • AnchorPattern

        public AnchorPattern()
    • Method Detail

      • matchesBeneathAnchor

        public boolean matchesBeneathAnchor​(NodeInfo node,
                                            NodeInfo anchor,
                                            XPathContext context)
                                     throws XPathException
        Determine whether this pattern matches a given Node within the subtree rooted at a given anchor node. This method is used when the pattern is used for streaming.
        Overrides:
        matchesBeneathAnchor in class Pattern
        Parameters:
        node - The NodeInfo representing the Element or other node to be tested against the Pattern
        anchor - The anchor node, which must match any AnchorPattern subpattern
        context - The dynamic context. Only relevant if the pattern uses variables, or contains calls on functions such as document() or key().
        Returns:
        true if the node matches the Pattern, false otherwise
        Throws:
        XPathException - if a dynamic error occurs during pattern matching
      • matches

        public boolean matches​(Item item,
                               XPathContext context)
                        throws XPathException
        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 dynamic context. Only relevant if the pattern uses variables, or contains calls on functions such as document() or key().
        Returns:
        true if the node matches the Pattern, false otherwise
        Throws:
        XPathException - if a dynamic error occurs during pattern matching
      • internalMatches

        protected boolean internalMatches​(NodeInfo node,
                                          NodeInfo anchor,
                                          XPathContext context)
                                   throws XPathException
        Determine whether this Pattern matches the given Node. This is an internal interface used for matching sub-patterns; it does not alter the value of current(). The default implementation is identical to matches().
        Overrides:
        internalMatches in class Pattern
        Parameters:
        node - The NodeInfo representing the Element or other node to be tested against the Pattern
        anchor -
        context - The dynamic context. Only relevant if the pattern uses variables, or contains calls on functions such as document() or key().
        Returns:
        true if the node matches the Pattern, false otherwise
        Throws:
        XPathException - if a dynamic error occurs during pattern matching
      • getItemType

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

        public java.lang.String toString()
        Description copied from class: Pattern
        Get the original pattern text
        Overrides:
        toString in class Pattern