public abstract class UnifiedJEXL.Expression extends java.lang.Object
Modifier and Type | Field | Description |
---|---|---|
protected UnifiedJEXL.Expression |
source |
The source of this expression (see
prepare(org.apache.commons.jexl2.JexlContext) ). |
Modifier and Type | Method | Description |
---|---|---|
java.lang.String |
asString() |
Generates this expression's string representation.
|
abstract java.lang.StringBuilder |
asString(java.lang.StringBuilder strb) |
Adds this expression's string representation to a StringBuilder.
|
protected abstract java.lang.Object |
evaluate(Interpreter interpreter) |
Intreprets a sub-expression.
|
java.lang.Object |
evaluate(JexlContext context) |
Evaluates this expression.
|
UnifiedJEXL.Expression |
getSource() |
Retrieves this expression's source expression.
|
java.util.Set<java.util.List<java.lang.String>> |
getVariables() |
Gets the list of variables accessed by this expression.
|
protected void |
getVariables(java.util.Set<java.util.List<java.lang.String>> refs) |
Fills up the list of variables accessed by this expression.
|
boolean |
isDeferred() |
Checks whether this expression is deferred.
|
boolean |
isImmediate() |
Checks whether this expression is immediate.
|
protected UnifiedJEXL.Expression |
prepare(Interpreter interpreter) |
Prepares a sub-expression for interpretation.
|
UnifiedJEXL.Expression |
prepare(JexlContext context) |
Evaluates the immediate sub-expressions.
|
java.lang.String |
toString() |
Formats this expression, adding its source string representation in
comments if available: 'expression /*= source *\/'' .
|
protected final UnifiedJEXL.Expression source
prepare(org.apache.commons.jexl2.JexlContext)
).public boolean isImmediate()
public final boolean isDeferred()
public java.lang.String toString()
toString
in class java.lang.Object
public java.lang.String asString()
public abstract java.lang.StringBuilder asString(java.lang.StringBuilder strb)
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']).
protected void getVariables(java.util.Set<java.util.List<java.lang.String>> refs)
refs
- the set of variable being filledpublic UnifiedJEXL.Expression prepare(JexlContext context)
When the expression is dependant upon immediate and deferred sub-expressions, evaluates the immediate sub-expressions with the context passed as parameter and returns this expression deferred form.
In effect, this binds the result of the immediate sub-expressions evaluation in the context, allowing to differ evaluation of the remaining (deferred) expression within another context. This only has an effect to nested & composite expressions that contain differed & immediate sub-expressions.
If the underlying JEXL engine is silent, errors will be logged through its logger as warning.
Note: do not override; will be made final in a future release.context
- the context to use for immediate expression evaluationsJexlEngine
is running in silent modeUnifiedJEXL.Exception
- if an error occurs and the JexlEngine
is not in silent modepublic java.lang.Object evaluate(JexlContext context)
If the underlying JEXL engine is silent, errors will be logged through its logger as warning.
Note: do not override; will be made final in a future release.context
- the variable contextJexlEngine
is
running in silent modeUnifiedJEXL.Exception
- if an error occurs and the JexlEngine
is not silentpublic final UnifiedJEXL.Expression getSource()
protected UnifiedJEXL.Expression prepare(Interpreter interpreter)
interpreter
- a JEXL interpreterJexlException
- (only for nested & composite)protected abstract java.lang.Object evaluate(Interpreter interpreter)
interpreter
- a JEXL interpreterJexlException
- (only for nested & composite)