Class TemplateEngine.TemplateExpression
- All Implemented Interfaces:
JxltEngine.Expression
- Direct Known Subclasses:
TemplateEngine.CompositeExpression
,TemplateEngine.ConstantExpression
,TemplateEngine.JexlBasedExpression
- Enclosing class:
- TemplateEngine
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final TemplateEngine.TemplateExpression
The source of this template expression(seeprepare(org.apache.commons.jexl3.JexlContext)
). -
Constructor Summary
ConstructorsConstructorDescriptionCreates an TemplateExpression. -
Method Summary
Modifier and TypeMethodDescriptionasString()
Generates this expression's string representation.protected abstract Object
evaluate
(Interpreter interpreter) Interprets a sub-expression.final Object
evaluate
(JexlContext context) Evaluates this expression.protected final Object
evaluate
(JexlContext context, Frame frame, JexlOptions options) Evaluates this expression.(package private) JexlInfo
getInfo()
Retrieves this expression's source expression.(package private) abstract TemplateEngine.ExpressionType
getType()
Gets this TemplateExpression type.Gets the list of variables accessed by this expression.protected void
getVariables
(Engine.VarCollector collector) Fills up the list of variables accessed by this unified expression.final boolean
Checks whether this expression is deferred.boolean
Checks whether this expression is immediate.protected JexlOptions
options
(JexlContext context) The options to use during evaluation.protected TemplateEngine.TemplateExpression
prepare
(Interpreter interpreter) Prepares a sub-expression for interpretation.prepare
(JexlContext context) Evaluates the immediate sub-expressions.protected final TemplateEngine.TemplateExpression
prepare
(JexlContext context, Frame frame, JexlOptions opts) Prepares this expression.final String
toString()
Formats this expression, adding its source string representation in comments if available: 'expression /*= source *\/'' .Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.apache.commons.jexl3.JxltEngine.Expression
asString
-
Field Details
-
source
The source of this template expression(seeprepare(org.apache.commons.jexl3.JexlContext)
).
-
-
Constructor Details
-
TemplateExpression
TemplateExpression(TemplateEngine.TemplateExpression src) Creates an TemplateExpression.- Parameters:
src
- the source TemplateExpression if any
-
-
Method Details
-
isImmediate
public boolean isImmediate()Description copied from interface:JxltEngine.Expression
Checks whether this expression is immediate.- Specified by:
isImmediate
in interfaceJxltEngine.Expression
- Returns:
- true if immediate, false otherwise
-
isDeferred
public final boolean isDeferred()Description copied from interface:JxltEngine.Expression
Checks whether this expression is deferred.- Specified by:
isDeferred
in interfaceJxltEngine.Expression
- Returns:
- true if deferred, false otherwise
-
getType
Gets this TemplateExpression type.- Returns:
- its type
-
getInfo
JexlInfo getInfo()- Returns:
- the info
-
toString
Description copied from interface:JxltEngine.Expression
Formats this expression, adding its source string representation in comments if available: 'expression /*= source *\/'' .- Specified by:
toString
in interfaceJxltEngine.Expression
- Overrides:
toString
in classObject
- Returns:
- the formatted expression string
-
asString
Description copied from interface:JxltEngine.Expression
Generates this expression's string representation.- Specified by:
asString
in interfaceJxltEngine.Expression
- Returns:
- the string representation
-
getVariables
Description copied from interface:JxltEngine.Expression
Gets the list of variables accessed by this expression.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']).
- Specified by:
getVariables
in interfaceJxltEngine.Expression
- Returns:
- the set of variables, each as a list of strings (ant-ish variables use more than 1 string) or the empty set if no variables are used
-
getSource
Description copied from interface:JxltEngine.Expression
Retrieves this expression's source expression.If this expression was prepared, this allows to retrieve the original expression that lead to it.
Other expressions return themselves.
- Specified by:
getSource
in interfaceJxltEngine.Expression
- Returns:
- the source expression
-
getVariables
Fills up the list of variables accessed by this unified expression.- Parameters:
collector
- the variable collector
-
prepare
Description copied from interface:JxltEngine.Expression
Evaluates the immediate sub-expressions.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 and composite expressions that contain differed and immediate sub-expressions.
If the underlying JEXL engine is silent, errors will be logged through its logger as warning.*
- Specified by:
prepare
in interfaceJxltEngine.Expression
- Parameters:
context
- the context to use for immediate expression evaluations- Returns:
- an
JxltEngine.Expression
or null if an error occurs and theJexlEngine
is running in silent mode
-
prepare
protected final TemplateEngine.TemplateExpression prepare(JexlContext context, Frame frame, JexlOptions opts) Prepares this expression.- Parameters:
frame
- the frame storing parameters and local variablescontext
- the context storing global variables- Returns:
- the expression value
- Throws:
JexlException
-
prepare
Prepares a sub-expression for interpretation.- Parameters:
interpreter
- a JEXL interpreter- Returns:
- a prepared unified expression
- Throws:
JexlException
- (only for nested and composite)
-
evaluate
Description copied from interface:JxltEngine.Expression
Evaluates this expression.If the underlying JEXL engine is silent, errors will be logged through its logger as warning.
- Specified by:
evaluate
in interfaceJxltEngine.Expression
- Parameters:
context
- the variable context- Returns:
- the result of this expression evaluation or null if an error occurs and the
JexlEngine
is running in silent mode
-
options
The options to use during evaluation.- Parameters:
context
- the context- Returns:
- the options
-
evaluate
Evaluates this expression.- Parameters:
frame
- the frame storing parameters and local variablescontext
- the context storing global variables- Returns:
- the expression value
- Throws:
JexlException
-
evaluate
Interprets a sub-expression.- Parameters:
interpreter
- a JEXL interpreter- Returns:
- the result of interpretation
- Throws:
JexlException
- (only for nested and composite)
-