com.icl.saxon.pattern

## Class UnionPattern

- java.lang.Object
- - com.icl.saxon.pattern.Pattern
  - - com.icl.saxon.pattern.UnionPattern

-     public class UnionPattern
      extends Pattern

  A pattern formed as the union (or) of two other patterns

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected Pattern` | `p1`
    `protected Pattern` | `p2`

    - ### Fields inherited from class com.icl.saxon.pattern.Pattern

      `originalText, staticContext`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `UnionPattern(Pattern p1, Pattern p2)` Constructor

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `Pattern` | `getLHS()` Get the LHS of the union
    `short` | `getNodeType()` Determine the types of nodes to which this pattern applies.
    `Pattern` | `getRHS()` Get the RHS of the union
    `boolean` | `matches(NodeInfo e, Context c)` Determine if the supplied node matches the pattern
    `void` | `setOriginalText(java.lang.String pattern)` Set the original text
    `Pattern` | `simplify()` Simplify the pattern: perform any context-independent optimisations

    - ### Methods inherited from class com.icl.saxon.pattern.Pattern

      `getDefaultPriority, getFingerprint, getLineNumber, getStaticContext, getSystemId, make, setStaticContext, toString`

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

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

- - ### Field Detail

    - #### p1

          protected Pattern p1

    - #### p2

          protected Pattern p2

  - ### Constructor Detail

    - #### UnionPattern

          public UnionPattern(Pattern p1,
                      Pattern p2)

      Constructor
      Parameters:
        `p1` - the left-hand operand
        `p2` - the right-hand operand

  - ### Method Detail

    - #### simplify

          public Pattern simplify()
                           throws XPathException

      Simplify the pattern: perform any context-independent optimisations
      Overrides:
        `simplify` in class `Pattern`
      Returns:
        the optimised Pattern
      Throws:
        `XPathException`

    - #### setOriginalText

          public void setOriginalText(java.lang.String pattern)

      Set the original text
      Overrides:
        `setOriginalText` in class `Pattern`

    - #### matches

          public boolean matches(NodeInfo e,
                        Context c)
                          throws XPathException

      Determine if the supplied node matches the pattern
      Specified by:
        `matches` in class `Pattern`
      Parameters:
        `e` - 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 either of the operand patterns
      Throws:
        `XPathException`

    - #### getNodeType

          public short getNodeType()

      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:
        `getNodeType` in class `Pattern`
      Returns:
        the type of node matched by this pattern. e.g. Node.ELEMENT or Node.TEXT

    - #### getLHS

          public Pattern getLHS()

      Get the LHS of the union

    - #### getRHS

          public Pattern getRHS()

      Get the RHS of the union