private class UnifiedJEXL.CompositeExpression extends UnifiedJEXL.Expression
Modifier and Type | Field and Description |
---|---|
protected UnifiedJEXL.Expression[] |
exprs
The list of sub-expression resulting from parsing.
|
private int |
meta
Bit encoded (deferred count > 0) bit 1, (immediate count > 0) bit 0.
|
source
Constructor and Description |
---|
CompositeExpression(int[] counters,
java.util.ArrayList<UnifiedJEXL.Expression> list,
UnifiedJEXL.Expression src)
Creates a composite expression.
|
Modifier and Type | Method and Description |
---|---|
java.lang.StringBuilder |
asString(java.lang.StringBuilder strb)
Adds this expression's string representation to a StringBuilder.
|
protected java.lang.Object |
evaluate(Interpreter interpreter)
Intreprets a sub-expression.
|
(package private) UnifiedJEXL.ExpressionType |
getType()
Gets this expression type.
|
java.util.Set<java.util.List<java.lang.String>> |
getVariables()
Gets the list of variables accessed by this expression.
|
boolean |
isImmediate()
Checks whether this expression is immediate.
|
protected UnifiedJEXL.Expression |
prepare(Interpreter interpreter)
Prepares a sub-expression for interpretation.
|
asString, evaluate, getSource, getVariables, isDeferred, prepare, toString
private final int meta
protected final UnifiedJEXL.Expression[] exprs
CompositeExpression(int[] counters, java.util.ArrayList<UnifiedJEXL.Expression> list, UnifiedJEXL.Expression src)
counters
- counters of expression per typelist
- the sub-expressionssrc
- the source for this expresion if anypublic boolean isImmediate()
isImmediate
in class UnifiedJEXL.Expression
UnifiedJEXL.ExpressionType getType()
getType
in class UnifiedJEXL.Expression
public java.lang.StringBuilder asString(java.lang.StringBuilder strb)
asString
in class UnifiedJEXL.Expression
strb
- the builder to fillpublic java.util.Set<java.util.List<java.lang.String>> getVariables()
This method will visit all nodes of the sub-expressions and extract all variables whether they are written in 'dot' or 'bracketed' notation. (a.b is equivalent to a['b']).
getVariables
in class UnifiedJEXL.Expression
protected UnifiedJEXL.Expression prepare(Interpreter interpreter)
prepare
in class UnifiedJEXL.Expression
interpreter
- a JEXL interpreterprotected java.lang.Object evaluate(Interpreter interpreter)
evaluate
in class UnifiedJEXL.Expression
interpreter
- a JEXL interpreter