org.apache.xpath.patterns
Class UnionPattern

java.lang.Object
  extended byorg.apache.xpath.Expression
      extended byorg.apache.xpath.patterns.UnionPattern
All Implemented Interfaces:
ExpressionNode, Serializable, javax.xml.transform.SourceLocator, XPathVisitable

public class UnionPattern
extends Expression

This class represents a union pattern, which can have multiple individual StepPattern patterns.

See Also:
Serialized Form

Nested Class Summary
(package private)  class UnionPattern.UnionPathPartOwner
           
 
Field Summary
private  StepPattern[] m_patterns
          Array of the contained step patterns to be tested.
 
Fields inherited from class org.apache.xpath.Expression
 
Constructor Summary
UnionPattern()
           
 
Method Summary
 void callVisitors(ExpressionOwner owner, XPathVisitor visitor)
          This will traverse the heararchy, calling the visitor for each member.
 boolean canTraverseOutsideSubtree()
          Tell if this expression or it's subexpressions can traverse outside the current subtree.
 boolean deepEquals(Expression expr)
          Compare this object with another object and see if they are equal, include the sub heararchy.
 XObject execute(XPathContext xctxt)
          Test a node to see if it matches any of the patterns in the union.
 void fixupVariables(Vector vars, int globalsSize)
          No arguments to process, so this does nothing.
 StepPattern[] getPatterns()
          Get the contained step patterns to be tested.
 void setPatterns(StepPattern[] patterns)
          Set the contained step patterns to be tested.
 
Methods inherited from class org.apache.xpath.Expression
asIterator, asIteratorRaw, asNode, assertion, bool, error, execute, execute, execute, executeCharsToContentHandler, exprAddChild, exprGetChild, exprGetNumChildren, exprGetParent, exprSetParent, getColumnNumber, getExpressionOwner, getLineNumber, getPublicId, getSystemId, isNodesetExpr, isSameClass, isStableNumber, num, warn, xstr
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

m_patterns

private StepPattern[] m_patterns
Array of the contained step patterns to be tested.

Constructor Detail

UnionPattern

public UnionPattern()
Method Detail

fixupVariables

public void fixupVariables(Vector vars,
                           int globalsSize)
No arguments to process, so this does nothing.

Specified by:
fixupVariables in class Expression
Parameters:
vars - List of QNames that correspond to variables. This list should be searched backwards for the first qualified name that corresponds to the variable reference qname. The position of the QName in the vector from the start of the vector will be its position in the stack frame (but variables above the globalsTop value will need to be offset to the current stack frame). NEEDSDOC @param globalsSize

canTraverseOutsideSubtree

public boolean canTraverseOutsideSubtree()
Tell if this expression or it's subexpressions can traverse outside the current subtree.

Overrides:
canTraverseOutsideSubtree in class Expression
Returns:
true if traversal outside the context node's subtree can occur.

setPatterns

public void setPatterns(StepPattern[] patterns)
Set the contained step patterns to be tested.

Parameters:
patterns - the contained step patterns to be tested.

getPatterns

public StepPattern[] getPatterns()
Get the contained step patterns to be tested.

Returns:
an array of the contained step patterns to be tested.

execute

public XObject execute(XPathContext xctxt)
                throws javax.xml.transform.TransformerException
Test a node to see if it matches any of the patterns in the union.

Specified by:
execute in class Expression
Parameters:
xctxt - XPath runtime context.
Returns:
NodeTest.SCORE_NODETEST, NodeTest.SCORE_NONE, NodeTest.SCORE_NSWILD, NodeTest.SCORE_QNAME, or NodeTest.SCORE_OTHER.
Throws:
javax.xml.transform.TransformerException

callVisitors

public void callVisitors(ExpressionOwner owner,
                         XPathVisitor visitor)
Description copied from interface: XPathVisitable
This will traverse the heararchy, calling the visitor for each member. If the called visitor method returns false, the subtree should not be called.

Parameters:
owner - The owner of the visitor, where that path may be rewritten if needed.
visitor - The visitor whose appropriate method will be called.
See Also:
XPathVisitable#callVisitors(ExpressionOwner, XPathVisitor)

deepEquals

public boolean deepEquals(Expression expr)
Description copied from class: Expression
Compare this object with another object and see if they are equal, include the sub heararchy.

Specified by:
deepEquals in class Expression
Parameters:
expr - Another expression object.
Returns:
true if this objects class and the expr object's class are the same, and the data contained within both objects are considered equal.
See Also:
Expression.deepEquals(Expression)