Package org.camunda.bpm.impl.juel
Class TreeMethodExpression
java.lang.Object
jakarta.el.Expression
jakarta.el.MethodExpression
org.camunda.bpm.impl.juel.TreeMethodExpression
- All Implemented Interfaces:
Serializable
public final class TreeMethodExpression
extends jakarta.el.MethodExpression
A method expression is ready to be evaluated (by calling either
invoke(ELContext, Object[])
or getMethodInfo(ELContext)
).
Instances of this class are usually created using an ExpressionFactoryImpl
.- Author:
- Christoph Beck
- See Also:
-
Constructor Summary
ConstructorDescriptionTreeMethodExpression
(TreeStore store, jakarta.el.FunctionMapper functions, jakarta.el.VariableMapper variables, TypeConverter converter, String expr, Class<?> returnType, Class<?>[] paramTypes) Create a new method expression. -
Method Summary
Modifier and TypeMethodDescriptionvoid
dump
(PrintWriter writer) Print the parse tree.boolean
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.jakarta.el.MethodInfo
getMethodInfo
(jakarta.el.ELContext context) Evaluates the expression and answers information about the methodint
hashCode()
Evaluates the expression and invokes the method.boolean
Answertrue
if this is a deferred expression (starting with#{
)boolean
boolean
toString()
Methods inherited from class jakarta.el.MethodExpression
getMethodReference
-
Constructor Details
-
TreeMethodExpression
public TreeMethodExpression(TreeStore store, jakarta.el.FunctionMapper functions, jakarta.el.VariableMapper variables, TypeConverter converter, String expr, Class<?> returnType, Class<?>[] paramTypes) Create a new method expression. The expression must be an lvalue expression or literal text. The expected return type may benull
, meaning "don't care". If it is an lvalue expression, the parameter types must not benull
. If it is literal text, the expected return type must not bevoid
.- 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 stringreturnType
- the expected return type (may benull
)paramTypes
- the expected parameter types (must not benull
for lvalues)
-
-
Method Details
-
getMethodInfo
public jakarta.el.MethodInfo getMethodInfo(jakarta.el.ELContext context) throws jakarta.el.ELException Evaluates the expression and answers information about the method- Specified by:
getMethodInfo
in classjakarta.el.MethodExpression
- Parameters:
context
- used to resolve properties (base.property
andbase[property]
)- Returns:
- method information or
null
for literal expressions - Throws:
jakarta.el.ELException
- if evaluation fails (e.g. suitable method not found)
-
getExpressionString
- Specified by:
getExpressionString
in classjakarta.el.Expression
-
invoke
public Object invoke(jakarta.el.ELContext context, Object[] paramValues) throws jakarta.el.ELException Evaluates the expression and invokes the method.- Specified by:
invoke
in classjakarta.el.MethodExpression
- Parameters:
context
- used to resolve properties (base.property
andbase[property]
)paramValues
-- Returns:
- method result or
null
if this is a literal text expression - Throws:
jakarta.el.ELException
- if evaluation fails (e.g. suitable method not found)
-
isLiteralText
public boolean isLiteralText()- Specified by:
isLiteralText
in classjakarta.el.Expression
- Returns:
true
if this is a literal text expression
-
isParametersProvided
public boolean isParametersProvided()- Overrides:
isParametersProvided
in classjakarta.el.MethodExpression
- Returns:
true
if this is a method invocation expression
-
isDeferred
public boolean isDeferred()Answertrue
if this is a deferred expression (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 method expressions are equal if- their builders are equal
- their structural id's are equal
- their bindings are equal
- their expected types match
- their parameter types are equal
- Specified by:
equals
in classjakarta.el.Expression
-
hashCode
public int hashCode()- Specified by:
hashCode
in classjakarta.el.Expression
-
toString
-
dump
Print the parse tree.- Parameters:
writer
-
-