net.sf.saxon.pattern

## Class AnchorPattern

- java.lang.Object
- - net.sf.saxon.pattern.Pattern
  - - net.sf.saxon.pattern.AnchorPattern

- All Implemented Interfaces:
    Serializable, 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 Summary

    Constructors
    Constructor and Description
    `AnchorPattern()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `Pattern` | `analyze(ExpressionVisitor visitor, ExpressionVisitor.ContextItemType contextItemType)` Type-check the pattern.
    `ItemType` | `getItemType()` Get a NodeTest that all the nodes matching this pattern must satisfy
    `boolean` | `matches(Item item, XPathContext context)` Determine whether this Pattern matches the given Node.
    `boolean` | `matchesBeneathAnchor(NodeInfo node, NodeInfo anchor, XPathContext context)` Determine whether this pattern matches a given Node within the subtree rooted at a given anchor node.
    `String` | `toString()` Get the original pattern text

    - ### Methods inherited from class net.sf.saxon.pattern.Pattern

      `allocateSlots, bindCurrent, getColumnNumber, getContainerGranularity, getDefaultPriority, getDependencies, getExecutable, getFingerprint, getHostLanguage, getLineNumber, getLocationProvider, getNodeKind, getPublicId, getSystemId, isMotionless, iterateSubExpressions, make, promote, replaceCurrent, replaceSubExpression, selectNodes, setExecutable, setLineNumber, setOriginalText, setSystemId, simplify`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### AnchorPattern

          public AnchorPattern()

  - ### Method Detail

    - #### analyze

          public Pattern analyze(ExpressionVisitor visitor,
                        ExpressionVisitor.ContextItemType contextItemType)
                          throws XPathException

      Type-check the pattern.
      Overrides:
        `analyze` in class `Pattern`
      Parameters:
        `visitor` - the expression visitor
        `contextItemType` - the type of the context item at the point where the pattern is defined. Set to null if it is known that the context item is undefined.
      Returns:
        the optimised Pattern
      Throws:
        `XPathException`

    - #### 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 an error occurs while matching the pattern (the caller will usually treat this the same as a false result)

    - #### 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 an error occurs while matching the pattern (the caller will usually treat this the same as a false result)

    - #### 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 String toString()

      Description copied from class: `Pattern`
      Get the original pattern text
      Overrides:
        `toString` in class `Pattern`

Copyright (c) 2004-2013 Saxonica Limited. All rights reserved.