Package org.apache.commons.jexl3.parser
Class JexlNode
java.lang.Object
org.apache.commons.jexl3.parser.SimpleNode
org.apache.commons.jexl3.parser.JexlNode
- All Implemented Interfaces:
Node
- Direct Known Subclasses:
ASTAddNode
,ASTAmbiguous
,ASTAndNode
,ASTAnnotatedStatement
,ASTAnnotation
,ASTArguments
,ASTAssignment
,ASTBitwiseAndNode
,ASTBitwiseComplNode
,ASTBitwiseOrNode
,ASTBitwiseXorNode
,ASTBreak
,ASTConstructorNode
,ASTContinue
,ASTDecrementGetNode
,ASTDefineVars
,ASTDivNode
,ASTDoWhileStatement
,ASTEmptyFunction
,ASTEQNode
,ASTEQSNode
,ASTERNode
,ASTEWNode
,ASTExtendedLiteral
,ASTFalseNode
,ASTFunctionNode
,ASTGENode
,ASTGetDecrementNode
,ASTGetIncrementNode
,ASTGTNode
,ASTIdentifier
,ASTIdentifierAccess
,ASTIfStatement
,ASTIncrementGetNode
,ASTInstanceOf
,ASTJxltLiteral
,ASTLENode
,ASTLTNode
,ASTMapEntry
,ASTMethodNode
,ASTModNode
,ASTMulNode
,ASTNENode
,ASTNESNode
,ASTNEWNode
,ASTNotInstanceOf
,ASTNotNode
,ASTNRNode
,ASTNSWNode
,ASTNullLiteral
,ASTNullpNode
,ASTNumberLiteral
,ASTOrNode
,ASTQualifiedIdentifier
,ASTRangeNode
,ASTReference
,ASTReferenceExpression
,ASTRegexLiteral
,ASTReturnStatement
,ASTSetAddNode
,ASTSetAndNode
,ASTSetDivNode
,ASTSetModNode
,ASTSetMultNode
,ASTSetOrNode
,ASTSetShiftLeftNode
,ASTSetShiftRightNode
,ASTSetShiftRightUnsignedNode
,ASTSetSubNode
,ASTSetXorNode
,ASTShiftLeftNode
,ASTShiftRightNode
,ASTShiftRightUnsignedNode
,ASTSizeFunction
,ASTStringLiteral
,ASTSubNode
,ASTSWNode
,ASTTernaryNode
,ASTThrowStatement
,ASTTrueNode
,ASTTryStatement
,ASTUnaryMinusNode
,ASTUnaryPlusNode
,ASTWhileStatement
,ExtensibleNode
,JexlLexicalNode
Base class for parser nodes - holds an 'image' of the token for later use.
- Since:
- 2.0
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic interface
A marker interface for constants.static interface
Marker interface for cachable function calls.static class
An info bound to its node. -
Field Summary
FieldsFields inherited from class org.apache.commons.jexl3.parser.SimpleNode
id
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
Clears any cached value of type JexlProperty{G,S}et or JexlMethod.int
int
getLine()
boolean
Whether this node is a constant node.protected boolean
isConstant
(boolean literal) boolean
boolean
Whether this node is a left value.boolean
isSafeLhs
(boolean safe) Whether this node is the left-hand side of a safe access identifier as in.boolean
isStrictOperator
(JexlArithmetic arithmetic) Checks whether this node is an operator that accepts a null argument even when arithmetic is in strict mode.jexlInfo()
Gets the associated JexlInfo instance.void
void
Methods inherited from class org.apache.commons.jexl3.parser.SimpleNode
childrenAccept, dump, dumpOut, getId, jjtAccept, jjtAddChild, jjtClose, jjtGetChild, jjtGetNumChildren, jjtGetParent, jjtGetValue, jjtOpen, jjtSetChildren, jjtSetParent, jjtSetValue, toString, toString
-
Field Details
-
serialVersionUID
private static final long serialVersionUID- See Also:
-
lc
private int lc
-
-
Constructor Details
-
JexlNode
public JexlNode(int id) -
JexlNode
Deprecated.UseJexlNode(int)
.Constructs a new instance.- Parameters:
p
- not used.id
- the node type identifier
-
-
Method Details
-
clearCache
public void clearCache()Clears any cached value of type JexlProperty{G,S}et or JexlMethod.This is called when the engine detects the evaluation of a script occurs with a class loader different that the one that created it.
-
getColumn
public int getColumn() -
getLine
public int getLine() -
isConstant
public boolean isConstant()Whether this node is a constant node.Its value can not change after the first evaluation and can be cached indefinitely.
- Returns:
- true if constant, false otherwise
-
isConstant
protected boolean isConstant(boolean literal) -
isGlobalVar
public boolean isGlobalVar()- Returns:
- true if this node looks like a global var
-
isLeftValue
public boolean isLeftValue()Whether this node is a left value.- Returns:
- true if node is assignable, false otherwise
-
isSafeLhs
public boolean isSafeLhs(boolean safe) Whether this node is the left-hand side of a safe access identifier as in. For instance, in 'x?.y' , 'x' is safe.- Parameters:
safe
- whether the engine is in safe-navigation mode- Returns:
- true if safe lhs, false otherwise
-
isStrictOperator
Checks whether this node is an operator that accepts a null argument even when arithmetic is in strict mode. The default cases are equals and not equals.- Parameters:
arithmetic
- the node to test- Returns:
- true if node accepts null arguments, false otherwise
-
jexlInfo
Gets the associated JexlInfo instance.- Returns:
- the info
-
jjtSetFirstToken
-
jjtSetLastToken
-
JexlNode(int)
.