org.jaxen
Class JaxenHandler

java.lang.Object
  extended by org.jaxen.JaxenHandler
All Implemented Interfaces:
XPathHandler
Direct Known Subclasses:
PatternHandler

public class JaxenHandler
extends Object
implements XPathHandler

SAXPath XPathHandler implementation capable of building Jaxen expression trees which can walk various different object models.

Author:
bob mcwhirter (bob@werken.com)

Field Summary
protected  boolean simplified
          ????
protected  LinkedList stack
          This may be changed to an ArrayList in the future (i.e.
 
Constructor Summary
JaxenHandler()
          Constructor
 
Method Summary
protected  void addParameters(FunctionCallExpr function, Iterator paramIter)
           
protected  void addPredicates(Predicated obj, Iterator predIter)
           
protected  void addSteps(LocationPath locationPath, Iterator stepIter)
           
protected  boolean canPop()
           
 void endAbsoluteLocationPath()
          Receive notification of the end of an absolute location path expression.
 void endAdditiveExpr(int operator)
          Receive notification of the end of an additive ('+' or '-') expression.
 void endAllNodeStep()
          Receive notification of the end of a node() step.
 void endAndExpr(boolean create)
          Receive notification of the end of an 'and' expression.
 void endCommentNodeStep()
          Receive notification of the end of a comment() step.
 void endEqualityExpr(int operator)
          Receive notification of the end of an equality ('=' or '!=') expression.
 void endFilterExpr()
          Receive notification of the end of a filter expression.
 void endFunction()
          Receive notification of the end of a function call
protected  void endLocationPath()
           
 void endMultiplicativeExpr(int operator)
          Receive notification of the start of a multiplicative ('*', 'div' or 'mod') expression.
 void endNameStep()
          Receive notification of the end of a NameStep
 void endOrExpr(boolean create)
          Receive notification of the end of an 'or' expression.
 void endPathExpr()
          Receive notification of the end of a path expression.
 void endPredicate()
          Receive notification of the end of a predicate.
 void endProcessingInstructionNodeStep()
          Receive notification of the end of a processing-instruction(...) step.
 void endRelationalExpr(int operator)
          Receive notification of the start of a relational ('<', '>', '<=', or '>=') expression.
 void endRelativeLocationPath()
          Receive notification of the end of a relative location path expression.
protected  void endStep()
           
 void endTextNodeStep()
          Receive notification of the end of a text() step.
 void endUnaryExpr(int operator)
          Receive notification of the end of a unary ('+' or '-') expression.
 void endUnionExpr(boolean create)
          Receive notification of the end of a union ('|') expression.
 void endXPath()
          Receive notification of the end of an XPath expression parse.
 XPathExpr getXPathExpr()
          Retrieve the simplified Jaxen XPath expression tree.
 XPathExpr getXPathExpr(boolean shouldSimplify)
          Retrieve the Jaxen XPath expression tree, optionally simplified.
 XPathFactory getXPathFactory()
          Retrieve the Jaxen XPathFactory used during the parse to construct the XPath expression tree.
 void literal(String literal)
          Receive notification of a literal expression.
 void number(double number)
          Receive notification of a number expression.
 void number(int number)
          Receive notification of a number expression.
protected  LinkedList peekFrame()
           
protected  Object pop()
           
protected  LinkedList popFrame()
           
protected  void push(Object obj)
           
protected  void pushFrame()
           
protected  void returnExpr()
           
 void setXPathFactory(XPathFactory xpathFactory)
          Set the Jaxen XPathFactory that constructs the XPath expression tree during the parse.
protected  int stackSize()
           
 void startAbsoluteLocationPath()
          Receive notification of the start of an absolute location path expression.
 void startAdditiveExpr()
          Receive notification of the start of an additive ('+' or '-') expression.
 void startAllNodeStep(int axis)
          Receive notification of the start of a node() step.
 void startAndExpr()
          Receive notification of the start of an 'and' expression.
 void startCommentNodeStep(int axis)
          Receive notification of the start of a comment() step.
 void startEqualityExpr()
          Receive notification of the start of an equality ('=' or '!=') expression.
 void startFilterExpr()
          Receive notification of the start of a filter expression.
 void startFunction(String prefix, String functionName)
          Receive notification of a function call.
 void startMultiplicativeExpr()
          Receive notification of the start of a multiplicative ('*', 'div' or 'mod') expression.
 void startNameStep(int axis, String prefix, String localName)
          Receive notification of the start of a name step.
 void startOrExpr()
          Receive notification of the start of an 'or' expression.
 void startPathExpr()
          Receive notification of the start of a path expression.
 void startPredicate()
          Receive notification of the start of a predicate.
 void startProcessingInstructionNodeStep(int axis, String name)
          Receive notification of the start of a processing-instruction(...) step.
 void startRelationalExpr()
          Receive notification of the start of a relational ('<', '>', '<=', or '>=') expression.
 void startRelativeLocationPath()
          Receive notification of the start of a relative location path expression.
 void startTextNodeStep(int axis)
          Receive notification of the start of a text() step.
 void startUnaryExpr()
          Receive notification of the start of a unary ('+' or '-') expression.
 void startUnionExpr()
          Receive notification of the start of a union ('|') expression.
 void startXPath()
          Receive notification of the start of an XPath expression parse.
 void variableReference(String prefix, String variableName)
          Receive notification of a variable-reference expression.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

simplified

protected boolean simplified
????


stack

protected LinkedList stack
This may be changed to an ArrayList in the future (i.e. version >= 1.2). You really shouldn't be accessing this field directly, but if you are please try to use it as a generic List. Don't use the methods that are only available in LinkedList.

Constructor Detail

JaxenHandler

public JaxenHandler()
Constructor

Method Detail

setXPathFactory

public void setXPathFactory(XPathFactory xpathFactory)
Set the Jaxen XPathFactory that constructs the XPath expression tree during the parse.

Parameters:
xpathFactory - the factory to use during the parse

getXPathFactory

public XPathFactory getXPathFactory()
Retrieve the Jaxen XPathFactory used during the parse to construct the XPath expression tree.

Returns:
the XPathFactory used during the parse.

getXPathExpr

public XPathExpr getXPathExpr()
Retrieve the simplified Jaxen XPath expression tree.

This method is only valid once XPathReader.parse(...) successfully returned.

Returns:
the XPath expression tree

getXPathExpr

public XPathExpr getXPathExpr(boolean shouldSimplify)
Retrieve the Jaxen XPath expression tree, optionally simplified.

This method is only valid once XPathReader.parse(...) successfully returned.

Parameters:
shouldSimplify - ????
Returns:
the XPath expression tree

startXPath

public void startXPath()
Description copied from interface: XPathHandler
Receive notification of the start of an XPath expression parse.

Specified by:
startXPath in interface XPathHandler

endXPath

public void endXPath()
              throws JaxenException
Description copied from interface: XPathHandler
Receive notification of the end of an XPath expression parse.

Specified by:
endXPath in interface XPathHandler
Throws:
JaxenException

startPathExpr

public void startPathExpr()
Description copied from interface: XPathHandler
Receive notification of the start of a path expression.

Specified by:
startPathExpr in interface XPathHandler

endPathExpr

public void endPathExpr()
                 throws JaxenException
Description copied from interface: XPathHandler
Receive notification of the end of a path expression.

Specified by:
endPathExpr in interface XPathHandler
Throws:
JaxenException

startAbsoluteLocationPath

public void startAbsoluteLocationPath()
                               throws JaxenException
Description copied from interface: XPathHandler
Receive notification of the start of an absolute location path expression.

Specified by:
startAbsoluteLocationPath in interface XPathHandler
Throws:
JaxenException

endAbsoluteLocationPath

public void endAbsoluteLocationPath()
                             throws JaxenException
Description copied from interface: XPathHandler
Receive notification of the end of an absolute location path expression.

Specified by:
endAbsoluteLocationPath in interface XPathHandler
Throws:
JaxenException

startRelativeLocationPath

public void startRelativeLocationPath()
                               throws JaxenException
Description copied from interface: XPathHandler
Receive notification of the start of a relative location path expression.

Specified by:
startRelativeLocationPath in interface XPathHandler
Throws:
JaxenException

endRelativeLocationPath

public void endRelativeLocationPath()
                             throws JaxenException
Description copied from interface: XPathHandler
Receive notification of the end of a relative location path expression.

Specified by:
endRelativeLocationPath in interface XPathHandler
Throws:
JaxenException

endLocationPath

protected void endLocationPath()
                        throws JaxenException
Throws:
JaxenException

addSteps

protected void addSteps(LocationPath locationPath,
                        Iterator stepIter)

startNameStep

public void startNameStep(int axis,
                          String prefix,
                          String localName)
                   throws JaxenException
Description copied from interface: XPathHandler
Receive notification of the start of a name step.

Specified by:
startNameStep in interface XPathHandler
Parameters:
axis - the axis of this step
prefix - the namespace prefix for the name to test, or the empty string if no prefix is specified
localName - the local part of the name to test
Throws:
JaxenException

endNameStep

public void endNameStep()
Description copied from interface: XPathHandler
Receive notification of the end of a NameStep

Specified by:
endNameStep in interface XPathHandler

startTextNodeStep

public void startTextNodeStep(int axis)
                       throws JaxenException
Description copied from interface: XPathHandler
Receive notification of the start of a text() step.

Specified by:
startTextNodeStep in interface XPathHandler
Parameters:
axis - the axis of this step
Throws:
JaxenException

endTextNodeStep

public void endTextNodeStep()
Description copied from interface: XPathHandler
Receive notification of the end of a text() step.

Specified by:
endTextNodeStep in interface XPathHandler

startCommentNodeStep

public void startCommentNodeStep(int axis)
                          throws JaxenException
Description copied from interface: XPathHandler
Receive notification of the start of a comment() step.

Specified by:
startCommentNodeStep in interface XPathHandler
Parameters:
axis - the axis of this step
Throws:
JaxenException

endCommentNodeStep

public void endCommentNodeStep()
Description copied from interface: XPathHandler
Receive notification of the end of a comment() step.

Specified by:
endCommentNodeStep in interface XPathHandler

startAllNodeStep

public void startAllNodeStep(int axis)
                      throws JaxenException
Description copied from interface: XPathHandler
Receive notification of the start of a node() step.

Specified by:
startAllNodeStep in interface XPathHandler
Parameters:
axis - the axis of this step
Throws:
JaxenException

endAllNodeStep

public void endAllNodeStep()
Description copied from interface: XPathHandler
Receive notification of the end of a node() step.

Specified by:
endAllNodeStep in interface XPathHandler

startProcessingInstructionNodeStep

public void startProcessingInstructionNodeStep(int axis,
                                               String name)
                                        throws JaxenException
Description copied from interface: XPathHandler
Receive notification of the start of a processing-instruction(...) step.

Specified by:
startProcessingInstructionNodeStep in interface XPathHandler
Parameters:
axis - the axis of this step
name - the name of the processing-instruction, or the empty string if none is specified
Throws:
JaxenException

endProcessingInstructionNodeStep

public void endProcessingInstructionNodeStep()
Description copied from interface: XPathHandler
Receive notification of the end of a processing-instruction(...) step.

Specified by:
endProcessingInstructionNodeStep in interface XPathHandler

endStep

protected void endStep()

startPredicate

public void startPredicate()
Description copied from interface: XPathHandler
Receive notification of the start of a predicate.

Specified by:
startPredicate in interface XPathHandler

endPredicate

public void endPredicate()
                  throws JaxenException
Description copied from interface: XPathHandler
Receive notification of the end of a predicate.

Specified by:
endPredicate in interface XPathHandler
Throws:
JaxenException

startFilterExpr

public void startFilterExpr()
Description copied from interface: XPathHandler
Receive notification of the start of a filter expression.

Specified by:
startFilterExpr in interface XPathHandler

endFilterExpr

public void endFilterExpr()
                   throws JaxenException
Description copied from interface: XPathHandler
Receive notification of the end of a filter expression.

Specified by:
endFilterExpr in interface XPathHandler
Throws:
JaxenException

addPredicates

protected void addPredicates(Predicated obj,
                             Iterator predIter)

returnExpr

protected void returnExpr()

startOrExpr

public void startOrExpr()
Description copied from interface: XPathHandler
Receive notification of the start of an 'or' expression.

Specified by:
startOrExpr in interface XPathHandler

endOrExpr

public void endOrExpr(boolean create)
               throws JaxenException
Description copied from interface: XPathHandler
Receive notification of the end of an 'or' expression.

Specified by:
endOrExpr in interface XPathHandler
Parameters:
create - flag that indicates if this expression should truly be instantiated, or if it was just a pass-through, based upon the grammar productions
Throws:
JaxenException

startAndExpr

public void startAndExpr()
Description copied from interface: XPathHandler
Receive notification of the start of an 'and' expression.

Specified by:
startAndExpr in interface XPathHandler

endAndExpr

public void endAndExpr(boolean create)
                throws JaxenException
Description copied from interface: XPathHandler
Receive notification of the end of an 'and' expression.

Specified by:
endAndExpr in interface XPathHandler
Parameters:
create - flag that indicates if this expression should truly be instantiated, or if it was just a pass-through, based upon the grammar productions
Throws:
JaxenException

startEqualityExpr

public void startEqualityExpr()
Description copied from interface: XPathHandler
Receive notification of the start of an equality ('=' or '!=') expression.

Specified by:
startEqualityExpr in interface XPathHandler

endEqualityExpr

public void endEqualityExpr(int operator)
                     throws JaxenException
Description copied from interface: XPathHandler
Receive notification of the end of an equality ('=' or '!=') expression.

Specified by:
endEqualityExpr in interface XPathHandler
Parameters:
operator - the operator specific to this particular equality expression. If null, this expression is only a pass-through, and should not actually be instantiated.
Throws:
JaxenException

startRelationalExpr

public void startRelationalExpr()
Description copied from interface: XPathHandler
Receive notification of the start of a relational ('<', '>', '<=', or '>=') expression.

Specified by:
startRelationalExpr in interface XPathHandler

endRelationalExpr

public void endRelationalExpr(int operator)
                       throws JaxenException
Description copied from interface: XPathHandler
Receive notification of the start of a relational ('<', '>', '<=', or '>=') expression.

Specified by:
endRelationalExpr in interface XPathHandler
Parameters:
operator - the operator specific to this particular relational expression. If NO_OP, this expression is only a pass-through, and should not actually be instantiated.
Throws:
JaxenException

startAdditiveExpr

public void startAdditiveExpr()
Description copied from interface: XPathHandler
Receive notification of the start of an additive ('+' or '-') expression.

Specified by:
startAdditiveExpr in interface XPathHandler

endAdditiveExpr

public void endAdditiveExpr(int operator)
                     throws JaxenException
Description copied from interface: XPathHandler
Receive notification of the end of an additive ('+' or '-') expression.

Specified by:
endAdditiveExpr in interface XPathHandler
Parameters:
operator - the operator specific to this particular additive expression. If NO_OP, this expression is only a pass-through, and should not actually be instantiated.
Throws:
JaxenException

startMultiplicativeExpr

public void startMultiplicativeExpr()
Description copied from interface: XPathHandler
Receive notification of the start of a multiplicative ('*', 'div' or 'mod') expression.

Specified by:
startMultiplicativeExpr in interface XPathHandler

endMultiplicativeExpr

public void endMultiplicativeExpr(int operator)
                           throws JaxenException
Description copied from interface: XPathHandler
Receive notification of the start of a multiplicative ('*', 'div' or 'mod') expression.

Specified by:
endMultiplicativeExpr in interface XPathHandler
Parameters:
operator - the operator specific to this particular multiplicative expression. If null, this expression is only a pass-through, and should not actually be instantiated.
Throws:
JaxenException

startUnaryExpr

public void startUnaryExpr()
Description copied from interface: XPathHandler
Receive notification of the start of a unary ('+' or '-') expression.

Specified by:
startUnaryExpr in interface XPathHandler

endUnaryExpr

public void endUnaryExpr(int operator)
                  throws JaxenException
Description copied from interface: XPathHandler
Receive notification of the end of a unary ('+' or '-') expression.

Specified by:
endUnaryExpr in interface XPathHandler
Parameters:
operator - the operator specific to this particular unary expression. If NO_OP, this expression is only a pass-through, and should not actually be instantiated. If not Operator.NO_OP, it will always be Operator.NEGATIVE.
Throws:
JaxenException

startUnionExpr

public void startUnionExpr()
Description copied from interface: XPathHandler
Receive notification of the start of a union ('|') expression.

Specified by:
startUnionExpr in interface XPathHandler

endUnionExpr

public void endUnionExpr(boolean create)
                  throws JaxenException
Description copied from interface: XPathHandler
Receive notification of the end of a union ('|') expression.

Specified by:
endUnionExpr in interface XPathHandler
Parameters:
create - flag that indicates if this expression should truly be instantiated, or if it was just a pass-through, based upon the grammar productions
Throws:
JaxenException

number

public void number(int number)
            throws JaxenException
Description copied from interface: XPathHandler
Receive notification of a number expression.

Specified by:
number in interface XPathHandler
Parameters:
number - the number value
Throws:
JaxenException

number

public void number(double number)
            throws JaxenException
Description copied from interface: XPathHandler
Receive notification of a number expression.

Specified by:
number in interface XPathHandler
Parameters:
number - the number value
Throws:
JaxenException

literal

public void literal(String literal)
             throws JaxenException
Description copied from interface: XPathHandler
Receive notification of a literal expression.

Specified by:
literal in interface XPathHandler
Parameters:
literal - the string literal value
Throws:
JaxenException

variableReference

public void variableReference(String prefix,
                              String variableName)
                       throws JaxenException
Description copied from interface: XPathHandler
Receive notification of a variable-reference expression.

Specified by:
variableReference in interface XPathHandler
Parameters:
prefix - the namespace prefix of the variable
variableName - the local name of the variable
Throws:
JaxenException

startFunction

public void startFunction(String prefix,
                          String functionName)
                   throws JaxenException
Description copied from interface: XPathHandler
Receive notification of a function call.

Specified by:
startFunction in interface XPathHandler
Parameters:
prefix - the namespace prefix of the function
functionName - the local name of the function
Throws:
JaxenException

endFunction

public void endFunction()
Description copied from interface: XPathHandler
Receive notification of the end of a function call

Specified by:
endFunction in interface XPathHandler

addParameters

protected void addParameters(FunctionCallExpr function,
                             Iterator paramIter)

stackSize

protected int stackSize()

push

protected void push(Object obj)

pop

protected Object pop()

canPop

protected boolean canPop()

pushFrame

protected void pushFrame()

popFrame

protected LinkedList popFrame()

peekFrame

protected LinkedList peekFrame()


Copyright © 2001-2008 Codehaus. All Rights Reserved.