Package org.jaxen
Class JaxenHandler
- java.lang.Object
-
- org.jaxen.JaxenHandler
-
- All Implemented Interfaces:
XPathHandler
- Direct Known Subclasses:
PatternHandler
public class JaxenHandler extends java.lang.Object implements XPathHandler
SAXPathXPathHandler
implementation capable of building Jaxen expression trees which can walk various different object models.
-
-
Field Summary
Fields Modifier and Type Field Description protected boolean
simplified
????protected java.util.LinkedList
stack
This may be changed to an ArrayList in the future (i.e.private XPathExpr
xpath
private XPathFactory
xpathFactory
-
Constructor Summary
Constructors Constructor Description JaxenHandler()
Constructor
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
addParameters(FunctionCallExpr function, java.util.Iterator paramIter)
protected void
addPredicates(Predicated obj, java.util.Iterator predIter)
protected void
addSteps(LocationPath locationPath, java.util.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 callprotected 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 NameStepvoid
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 JaxenXPathFactory
used during the parse to construct the XPath expression tree.void
literal(java.lang.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 java.util.LinkedList
peekFrame()
protected java.lang.Object
pop()
protected java.util.LinkedList
popFrame()
protected void
push(java.lang.Object obj)
protected void
pushFrame()
protected void
returnExpr()
void
setXPathFactory(XPathFactory xpathFactory)
Set the JaxenXPathFactory
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(java.lang.String prefix, java.lang.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, java.lang.String prefix, java.lang.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, java.lang.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(java.lang.String prefix, java.lang.String variableName)
Receive notification of a variable-reference expression.
-
-
-
Field Detail
-
xpathFactory
private XPathFactory xpathFactory
-
xpath
private XPathExpr xpath
-
simplified
protected boolean simplified
????
-
stack
protected java.util.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.
-
-
Method Detail
-
setXPathFactory
public void setXPathFactory(XPathFactory xpathFactory)
Set the JaxenXPathFactory
that constructs the XPath expression tree during the parse.- Parameters:
xpathFactory
- the factory to use during the parse
-
getXPathFactory
public XPathFactory getXPathFactory()
Retrieve the JaxenXPathFactory
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 interfaceXPathHandler
-
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 interfaceXPathHandler
- Throws:
JaxenException
-
startPathExpr
public void startPathExpr()
Description copied from interface:XPathHandler
Receive notification of the start of a path expression.- Specified by:
startPathExpr
in interfaceXPathHandler
-
endPathExpr
public void endPathExpr() throws JaxenException
Description copied from interface:XPathHandler
Receive notification of the end of a path expression.- Specified by:
endPathExpr
in interfaceXPathHandler
- 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 interfaceXPathHandler
- 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 interfaceXPathHandler
- 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 interfaceXPathHandler
- 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 interfaceXPathHandler
- Throws:
JaxenException
-
endLocationPath
protected void endLocationPath() throws JaxenException
- Throws:
JaxenException
-
addSteps
protected void addSteps(LocationPath locationPath, java.util.Iterator stepIter)
-
startNameStep
public void startNameStep(int axis, java.lang.String prefix, java.lang.String localName) throws JaxenException
Description copied from interface:XPathHandler
Receive notification of the start of a name step.- Specified by:
startNameStep
in interfaceXPathHandler
- Parameters:
axis
- the axis of this stepprefix
- the namespace prefix for the name to test, or the empty string if no prefix is specifiedlocalName
- 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 interfaceXPathHandler
-
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 interfaceXPathHandler
- 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 interfaceXPathHandler
-
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 interfaceXPathHandler
- 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 interfaceXPathHandler
-
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 interfaceXPathHandler
- 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 interfaceXPathHandler
-
startProcessingInstructionNodeStep
public void startProcessingInstructionNodeStep(int axis, java.lang.String name) throws JaxenException
Description copied from interface:XPathHandler
Receive notification of the start of a processing-instruction(...) step.- Specified by:
startProcessingInstructionNodeStep
in interfaceXPathHandler
- Parameters:
axis
- the axis of this stepname
- 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 interfaceXPathHandler
-
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 interfaceXPathHandler
-
endPredicate
public void endPredicate() throws JaxenException
Description copied from interface:XPathHandler
Receive notification of the end of a predicate.- Specified by:
endPredicate
in interfaceXPathHandler
- Throws:
JaxenException
-
startFilterExpr
public void startFilterExpr()
Description copied from interface:XPathHandler
Receive notification of the start of a filter expression.- Specified by:
startFilterExpr
in interfaceXPathHandler
-
endFilterExpr
public void endFilterExpr() throws JaxenException
Description copied from interface:XPathHandler
Receive notification of the end of a filter expression.- Specified by:
endFilterExpr
in interfaceXPathHandler
- Throws:
JaxenException
-
addPredicates
protected void addPredicates(Predicated obj, java.util.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 interfaceXPathHandler
-
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 interfaceXPathHandler
- 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 interfaceXPathHandler
-
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 interfaceXPathHandler
- 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 interfaceXPathHandler
-
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 interfaceXPathHandler
- 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 interfaceXPathHandler
-
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 interfaceXPathHandler
- 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 interfaceXPathHandler
-
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 interfaceXPathHandler
- 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 interfaceXPathHandler
-
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 interfaceXPathHandler
- 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 interfaceXPathHandler
-
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 interfaceXPathHandler
- 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 notOperator.NO_OP
, it will always beOperator.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 interfaceXPathHandler
-
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 interfaceXPathHandler
- 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 interfaceXPathHandler
- 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 interfaceXPathHandler
- Parameters:
number
- the number value- Throws:
JaxenException
-
literal
public void literal(java.lang.String literal) throws JaxenException
Description copied from interface:XPathHandler
Receive notification of a literal expression.- Specified by:
literal
in interfaceXPathHandler
- Parameters:
literal
- the string literal value- Throws:
JaxenException
-
variableReference
public void variableReference(java.lang.String prefix, java.lang.String variableName) throws JaxenException
Description copied from interface:XPathHandler
Receive notification of a variable-reference expression.- Specified by:
variableReference
in interfaceXPathHandler
- Parameters:
prefix
- the namespace prefix of the variablevariableName
- the local name of the variable- Throws:
JaxenException
-
startFunction
public void startFunction(java.lang.String prefix, java.lang.String functionName) throws JaxenException
Description copied from interface:XPathHandler
Receive notification of a function call.- Specified by:
startFunction
in interfaceXPathHandler
- Parameters:
prefix
- the namespace prefix of the functionfunctionName
- 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 interfaceXPathHandler
-
addParameters
protected void addParameters(FunctionCallExpr function, java.util.Iterator paramIter)
-
stackSize
protected int stackSize()
-
push
protected void push(java.lang.Object obj)
-
pop
protected java.lang.Object pop()
-
canPop
protected boolean canPop()
-
pushFrame
protected void pushFrame()
-
popFrame
protected java.util.LinkedList popFrame()
-
peekFrame
protected java.util.LinkedList peekFrame()
-
-