## 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
`protected Pattern` `p1`
`protected Pattern` `p2`

Fields inherited from class com.icl.saxon.pattern.Pattern
`originalText, staticContext`

Constructor Summary
`UnionPattern(Pattern p1, Pattern p2)` Constructor

Method Summary
`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