Package org.camunda.bpm.engine.impl.juel
Class AstEval
- java.lang.Object
-
- org.camunda.bpm.engine.impl.juel.AstNode
-
- org.camunda.bpm.engine.impl.juel.AstEval
-
- All Implemented Interfaces:
ExpressionNode
,Node
public final class AstEval extends AstNode
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
appendStructure(StringBuilder b, Bindings bindings)
Object
eval(Bindings bindings, ELContext context)
int
getCardinality()
Get the node's number of children.AstNode
getChild(int i)
Get i'th childMethodInfo
getMethodInfo(Bindings bindings, ELContext context, Class<?> returnType, Class<?>[] paramTypes)
Get method information.Class<?>
getType(Bindings bindings, ELContext context)
Get the value type accepted inExpressionNode.setValue(Bindings, ELContext, Object)
.ValueReference
getValueReference(Bindings bindings, ELContext context)
Get value reference.Object
invoke(Bindings bindings, ELContext context, Class<?> returnType, Class<?>[] paramTypes, Object[] paramValues)
Invoke method.boolean
isDeferred()
boolean
isLeftValue()
boolean
isLiteralText()
boolean
isMethodInvocation()
boolean
isReadOnly(Bindings bindings, ELContext context)
Determine whetherExpressionNode.setValue(Bindings, ELContext, Object)
will throw aPropertyNotWritableException
.void
setValue(Bindings bindings, ELContext context, Object value)
Assign value.String
toString()
-
Methods inherited from class org.camunda.bpm.engine.impl.juel.AstNode
getStructuralId, getValue
-
-
-
-
Constructor Detail
-
AstEval
public AstEval(AstNode child, boolean deferred)
-
-
Method Detail
-
isDeferred
public boolean isDeferred()
-
isLeftValue
public 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
public boolean isMethodInvocation()
- Returns:
true
if the subtree rooted at this node is a method invocation.
-
getValueReference
public ValueReference getValueReference(Bindings bindings, ELContext context)
Description copied from interface:ExpressionNode
Get value reference.- Returns:
- value reference
-
appendStructure
public void appendStructure(StringBuilder b, Bindings bindings)
- Specified by:
appendStructure
in classAstNode
-
getMethodInfo
public MethodInfo getMethodInfo(Bindings bindings, ELContext context, Class<?> returnType, Class<?>[] paramTypes)
Description copied from interface:ExpressionNode
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
public Object invoke(Bindings bindings, ELContext context, Class<?> returnType, Class<?>[] paramTypes, Object[] paramValues)
Description copied from interface:ExpressionNode
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
-
getType
public Class<?> getType(Bindings bindings, ELContext context)
Description copied from interface:ExpressionNode
Get the value type accepted inExpressionNode.setValue(Bindings, ELContext, Object)
.- Parameters:
bindings
- bindings containing variables and functionscontext
- evaluation context- Returns:
- accepted type or
null
for non-lvalue nodes
-
isLiteralText
public boolean isLiteralText()
- Returns:
true
if this node represents literal text
-
isReadOnly
public boolean isReadOnly(Bindings bindings, ELContext context)
Description copied from interface:ExpressionNode
Determine whetherExpressionNode.setValue(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
public void setValue(Bindings bindings, ELContext context, Object value)
Description copied from interface:ExpressionNode
Assign value.- Parameters:
bindings
- bindings containing variables and functionscontext
- evaluation contextvalue
- value to set
-
getCardinality
public int getCardinality()
Description copied from interface:Node
Get the node's number of children.
-
-