Package org.camunda.bpm.impl.juel
Class TreeValueExpression
java.lang.Object
jakarta.el.Expression
jakarta.el.ValueExpression
org.camunda.bpm.impl.juel.TreeValueExpression
- All Implemented Interfaces:
Serializable
public final class TreeValueExpression
extends jakarta.el.ValueExpression
A value expression is ready to be evaluated (by calling either
getType(ELContext), getValue(ELContext), isReadOnly(ELContext)
or setValue(ELContext, Object).
Instances of this class are usually created using an ExpressionFactoryImpl.- Author:
- Christoph Beck
- See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionTreeValueExpression(TreeStore store, jakarta.el.FunctionMapper functions, jakarta.el.VariableMapper variables, TypeConverter converter, String expr, Class<?> type) Create a new value expression. -
Method Summary
Modifier and TypeMethodDescriptionvoiddump(PrintWriter writer) Print the parse tree.booleanExpressions are compared using the concept of a structural id: variable and function names are anonymized such that two expressions with same tree structure will also have the same structural id and vice versa.Class<?>Class<?>getType(jakarta.el.ELContext context) Evaluates the expression as an lvalue and answers the result type.getValue(jakarta.el.ELContext context) Evaluates the expression as an rvalue and answers the result.jakarta.el.ValueReferencegetValueReference(jakarta.el.ELContext context) inthashCode()booleanAnswertrueif this is a deferred expression (containing sub-expressions starting with#{)booleanAnswertrueif this could be used as an lvalue.booleanbooleanisReadOnly(jakarta.el.ELContext context) Evaluates the expression as an lvalue and determines ifsetValue(ELContext, Object)will always fail.voidEvaluates the expression as an lvalue and assigns the given value.toString()
-
Constructor Details
-
TreeValueExpression
public TreeValueExpression(TreeStore store, jakarta.el.FunctionMapper functions, jakarta.el.VariableMapper variables, TypeConverter converter, String expr, Class<?> type) Create a new value expression.- Parameters:
store- used to get the parse tree from.functions- the function mapper used to bind functionsvariables- the variable mapper used to bind variablesexpr- the expression stringtype- the expected type (may benull)
-
-
Method Details
-
getExpectedType
- Specified by:
getExpectedTypein classjakarta.el.ValueExpression
-
getExpressionString
- Specified by:
getExpressionStringin classjakarta.el.Expression
-
getType
Evaluates the expression as an lvalue and answers the result type.- Specified by:
getTypein classjakarta.el.ValueExpression- Parameters:
context- used to resolve properties (base.propertyandbase[property]) and to determine the result from the last base/property pair- Returns:
- lvalue evaluation type or
nullfor rvalue expressions - Throws:
jakarta.el.ELException- if evaluation fails (e.g. property not found, type conversion failed, ...)
-
getValue
Evaluates the expression as an rvalue and answers the result.- Specified by:
getValuein classjakarta.el.ValueExpression- Parameters:
context- used to resolve properties (base.propertyandbase[property]) and to determine the result from the last base/property pair- Returns:
- rvalue evaluation result
- Throws:
jakarta.el.ELException- if evaluation fails (e.g. property not found, type conversion failed, ...)
-
isReadOnly
public boolean isReadOnly(jakarta.el.ELContext context) throws jakarta.el.ELException Evaluates the expression as an lvalue and determines ifsetValue(ELContext, Object)will always fail.- Specified by:
isReadOnlyin classjakarta.el.ValueExpression- Parameters:
context- used to resolve properties (base.propertyandbase[property]) and to determine the result from the last base/property pair- Returns:
trueifsetValue(ELContext, Object)always fails.- Throws:
jakarta.el.ELException- if evaluation fails (e.g. property not found, type conversion failed, ...)
-
setValue
Evaluates the expression as an lvalue and assigns the given value.- Specified by:
setValuein classjakarta.el.ValueExpression- Parameters:
context- used to resolve properties (base.propertyandbase[property]) and to perform the assignment to the last base/property pair- Throws:
jakarta.el.ELException- if evaluation fails (e.g. property not found, type conversion failed, assignment failed...)
-
isLiteralText
public boolean isLiteralText()- Specified by:
isLiteralTextin classjakarta.el.Expression- Returns:
trueif this is a literal text expression
-
getValueReference
public jakarta.el.ValueReference getValueReference(jakarta.el.ELContext context) - Overrides:
getValueReferencein classjakarta.el.ValueExpression
-
isLeftValue
public boolean isLeftValue()Answertrueif this could be used as an lvalue. This is the case for eval expressions consisting of a simple identifier or a nonliteral prefix, followed by a sequence of property operators (.or[]) -
isDeferred
public boolean isDeferred()Answertrueif this is a deferred expression (containing sub-expressions starting with#{) -
equals
Expressions are compared using the concept of a structural id: variable and function names are anonymized such that two expressions with same tree structure will also have the same structural id and vice versa. Two value expressions are equal if- their structural id's are equal
- their bindings are equal
- their expected types are equal
- Specified by:
equalsin classjakarta.el.Expression
-
hashCode
public int hashCode()- Specified by:
hashCodein classjakarta.el.Expression
-
toString
-
dump
Print the parse tree.- Parameters:
writer-
-