Package org.camunda.bpm.impl.juel
Interface ExpressionNode
- All Superinterfaces:
Node
- All Known Implementing Classes:
AstBinary
,AstBoolean
,AstBracket
,AstChoice
,AstComposite
,AstDot
,AstEval
,AstFunction
,AstIdentifier
,AstLiteral
,AstMethod
,AstNested
,AstNode
,AstNull
,AstNumber
,AstParameters
,AstProperty
,AstRightValue
,AstString
,AstText
,AstUnary
Expression node interface. This interface provides all the methods needed for value expressions
and method expressions.
- Author:
- Christoph Beck
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptionjakarta.el.MethodInfo
getMethodInfo
(Bindings bindings, jakarta.el.ELContext context, Class<?> returnType, Class<?>[] paramTypes) Get method information.getStructuralId
(Bindings bindings) Get the canonical expression string for this node.Class<?>
Get the value type accepted insetValue(Bindings, ELContext, Object)
.Evaluate node.jakarta.el.ValueReference
getValueReference
(Bindings bindings, jakarta.el.ELContext context) Get value reference.invoke
(Bindings bindings, jakarta.el.ELContext context, Class<?> returnType, Class<?>[] paramTypes, Object[] paramValues) Invoke method.boolean
boolean
boolean
boolean
isReadOnly
(Bindings bindings, jakarta.el.ELContext context) Determine whethersetValue(Bindings, ELContext, Object)
will throw aPropertyNotWritableException
.void
Assign value.Methods inherited from interface org.camunda.bpm.impl.juel.Node
getCardinality, getChild
-
Method Details
-
isLiteralText
boolean isLiteralText()- Returns:
true
if this node represents literal text
-
isLeftValue
boolean isLeftValue()- Returns:
true
if the subtree rooted at this node could be used as an lvalue expression (identifier or property sequence with non-literal prefix).
-
isMethodInvocation
boolean isMethodInvocation()- Returns:
true
if the subtree rooted at this node is a method invocation.
-
getValue
Evaluate node.- Parameters:
bindings
- bindings containing variables and functionscontext
- evaluation contextexpectedType
- result type- Returns:
- evaluated node, coerced to the expected type
-
getValueReference
Get value reference.- Parameters:
bindings
-context
-- Returns:
- value reference
-
getType
Get the value type accepted insetValue(Bindings, ELContext, Object)
.- Parameters:
bindings
- bindings containing variables and functionscontext
- evaluation context- Returns:
- accepted type or
null
for non-lvalue nodes
-
isReadOnly
Determine whethersetValue(Bindings, ELContext, Object)
will throw aPropertyNotWritableException
.- Parameters:
bindings
- bindings containing variables and functionscontext
- evaluation context- Returns:
true
if this a read-only expression node
-
setValue
Assign value.- Parameters:
bindings
- bindings containing variables and functionscontext
- evaluation contextvalue
- value to set
-
getMethodInfo
jakarta.el.MethodInfo getMethodInfo(Bindings bindings, jakarta.el.ELContext context, Class<?> returnType, Class<?>[] paramTypes) Get method information. If this is a non-lvalue node, answernull
.- Parameters:
bindings
- bindings containing variables and functionscontext
- evaluation contextreturnType
- expected method return type (may benull
meaning don't care)paramTypes
- expected method argument types- Returns:
- method information or
null
-
invoke
Object invoke(Bindings bindings, jakarta.el.ELContext context, Class<?> returnType, Class<?>[] paramTypes, Object[] paramValues) Invoke method.- Parameters:
bindings
- bindings containing variables and functionscontext
- evaluation contextreturnType
- expected method return type (may benull
meaning don't care)paramTypes
- expected method argument typesparamValues
- parameter values- Returns:
- result of the method invocation
-
getStructuralId
Get the canonical expression string for this node. Variable and funtion names will be replaced in a way such that two expression nodes that have the same node structure and bindings will also answer the same value here. For example,"${foo:bar()+2*foobar}"
may lead to"${<fn>() + 2 * <var>}"
iffoobar
is a bound variable. Otherwise, the structural id would be"${<fn>() + 2 * foobar}"
. If the bindings isnull
, the full canonical subexpression is returned.
-