Class UnionPattern

java.lang.Object
net.sf.saxon.pattern.Pattern
net.sf.saxon.pattern.UnionPattern
All Implemented Interfaces:
Serializable, SourceLocator, Container

public class UnionPattern extends Pattern
A pattern formed as the union (or) of two other patterns
See Also:
  • Field Details

  • Constructor Details

    • UnionPattern

      public UnionPattern(Pattern p1, Pattern p2)
      Constructor
      Parameters:
      p1 - the left-hand operand
      p2 - the right-hand operand
  • Method Details

    • simplify

      public Pattern simplify(StaticContext env) throws XPathException
      Simplify the pattern: perform any context-independent optimisations
      Overrides:
      simplify in class Pattern
      Returns:
      the optimised Pattern
      Throws:
      XPathException
    • analyze

      public Pattern analyze(StaticContext env, ItemType contextItemType) throws XPathException
      Type-check the pattern. This is only needed for patterns that contain variable references or function calls.
      Overrides:
      analyze in class Pattern
      Returns:
      the optimised Pattern
      Throws:
      XPathException
    • setOriginalText

      public void setOriginalText(String pattern)
      Set the original text
      Overrides:
      setOriginalText in class Pattern
    • matches

      public boolean matches(NodeInfo e, XPathContext context) throws XPathException
      Determine if the supplied node matches the pattern
      Specified by:
      matches in class Pattern
      Parameters:
      e - the node to be compared
      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 either of the operand patterns
      Throws:
      XPathException
    • getNodeKind

      public int getNodeKind()
      Determine the types of nodes to which this pattern applies. Used for optimisation. For patterns that match nodes of several types, return Node.NODE
      Overrides:
      getNodeKind in class Pattern
      Returns:
      the type of node matched by this pattern. e.g. Node.ELEMENT or Node.TEXT
    • getNodeTest

      public NodeTest getNodeTest()
      Get a NodeTest that all the nodes matching this pattern must satisfy
      Specified by:
      getNodeTest in class Pattern
    • getLHS

      public Pattern getLHS()
      Get the LHS of the union
    • getRHS

      public Pattern getRHS()
      Get the RHS of the union
    • setSystemId

      public void setSystemId(String systemId)
      Override method to set the system ID, so it's set on both halves
      Overrides:
      setSystemId in class Pattern
    • setLineNumber

      public void setLineNumber(int lineNumber)
      Override method to set the system ID, so it's set on both halves
      Overrides:
      setLineNumber in class Pattern