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 voidappendStructure(java.lang.StringBuilder b, Bindings bindings)java.lang.Objecteval(Bindings bindings, ELContext context)intgetCardinality()Get the node's number of children.AstNodegetChild(int i)Get i'th childMethodInfogetMethodInfo(Bindings bindings, ELContext context, java.lang.Class<?> returnType, java.lang.Class<?>[] paramTypes)Get method information.java.lang.Class<?>getType(Bindings bindings, ELContext context)Get the value type accepted inExpressionNode.setValue(Bindings, ELContext, Object).ValueReferencegetValueReference(Bindings bindings, ELContext context)Get value reference.java.lang.Objectinvoke(Bindings bindings, ELContext context, java.lang.Class<?> returnType, java.lang.Class<?>[] paramTypes, java.lang.Object[] paramValues)Invoke method.booleanisDeferred()booleanisLeftValue()booleanisLiteralText()booleanisMethodInvocation()booleanisReadOnly(Bindings bindings, ELContext context)Determine whetherExpressionNode.setValue(Bindings, ELContext, Object)will throw aPropertyNotWritableException.voidsetValue(Bindings bindings, ELContext context, java.lang.Object value)Assign value.java.lang.StringtoString()-
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:
trueif 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:
trueif the subtree rooted at this node is a method invocation.
-
getValueReference
public ValueReference getValueReference(Bindings bindings, ELContext context)
Description copied from interface:ExpressionNodeGet value reference.- Returns:
- value reference
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
appendStructure
public void appendStructure(java.lang.StringBuilder b, Bindings bindings)- Specified by:
appendStructurein classAstNode
-
getMethodInfo
public MethodInfo getMethodInfo(Bindings bindings, ELContext context, java.lang.Class<?> returnType, java.lang.Class<?>[] paramTypes)
Description copied from interface:ExpressionNodeGet method information. If this is a non-lvalue node, answernull.- Parameters:
bindings- bindings containing variables and functionscontext- evaluation contextreturnType- expected method return type (may benullmeaning don't care)paramTypes- expected method argument types- Returns:
- method information or
null
-
invoke
public java.lang.Object invoke(Bindings bindings, ELContext context, java.lang.Class<?> returnType, java.lang.Class<?>[] paramTypes, java.lang.Object[] paramValues)
Description copied from interface:ExpressionNodeInvoke method.- Parameters:
bindings- bindings containing variables and functionscontext- evaluation contextreturnType- expected method return type (may benullmeaning don't care)paramTypes- expected method argument typesparamValues- parameter values- Returns:
- result of the method invocation
-
getType
public java.lang.Class<?> getType(Bindings bindings, ELContext context)
Description copied from interface:ExpressionNodeGet the value type accepted inExpressionNode.setValue(Bindings, ELContext, Object).- Parameters:
bindings- bindings containing variables and functionscontext- evaluation context- Returns:
- accepted type or
nullfor non-lvalue nodes
-
isLiteralText
public boolean isLiteralText()
- Returns:
trueif this node represents literal text
-
isReadOnly
public boolean isReadOnly(Bindings bindings, ELContext context)
Description copied from interface:ExpressionNodeDetermine whetherExpressionNode.setValue(Bindings, ELContext, Object)will throw aPropertyNotWritableException.- Parameters:
bindings- bindings containing variables and functionscontext- evaluation context- Returns:
trueif this a read-only expression node
-
setValue
public void setValue(Bindings bindings, ELContext context, java.lang.Object value)
Description copied from interface:ExpressionNodeAssign value.- Parameters:
bindings- bindings containing variables and functionscontext- evaluation contextvalue- value to set
-
getCardinality
public int getCardinality()
Description copied from interface:NodeGet the node's number of children.
-
-