Package org.camunda.bpm.engine.impl.juel
Class AstIdentifier
- java.lang.Object
-
- org.camunda.bpm.engine.impl.juel.AstNode
-
- org.camunda.bpm.engine.impl.juel.AstIdentifier
-
- All Implemented Interfaces:
ExpressionNode
,IdentifierNode
,Node
public class AstIdentifier extends AstNode implements IdentifierNode
-
-
Constructor Summary
Constructors Constructor Description AstIdentifier(java.lang.String name, int index)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
appendStructure(java.lang.StringBuilder b, Bindings bindings)
java.lang.Object
eval(Bindings bindings, ELContext context)
int
getCardinality()
Get the node's number of children.AstNode
getChild(int i)
Get i'th childint
getIndex()
Get the unique index of this identifier in the expression (e.g.protected java.lang.reflect.Method
getMethod(Bindings bindings, ELContext context, java.lang.Class<?> returnType, java.lang.Class<?>[] paramTypes)
MethodInfo
getMethodInfo(Bindings bindings, ELContext context, java.lang.Class<?> returnType, java.lang.Class<?>[] paramTypes)
Get method information.java.lang.String
getName()
Get the identifier namejava.lang.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.java.lang.Object
invoke(Bindings bindings, ELContext context, java.lang.Class<?> returnType, java.lang.Class<?>[] paramTypes, java.lang.Object[] params)
Invoke method.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, java.lang.Object value)
Assign value.java.lang.String
toString()
-
Methods inherited from class org.camunda.bpm.engine.impl.juel.AstNode
getStructuralId, getValue
-
-
-
-
Method Detail
-
getType
public java.lang.Class<?> getType(Bindings bindings, ELContext context)
Description copied from interface:ExpressionNode
Get the value type accepted inExpressionNode.setValue(Bindings, ELContext, Object)
.- Specified by:
getType
in interfaceExpressionNode
- Parameters:
bindings
- bindings containing variables and functionscontext
- evaluation context- Returns:
- accepted type or
null
for non-lvalue nodes
-
isLeftValue
public boolean isLeftValue()
- Specified by:
isLeftValue
in interfaceExpressionNode
- 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()
- Specified by:
isMethodInvocation
in interfaceExpressionNode
- Returns:
true
if the subtree rooted at this node is a method invocation.
-
isLiteralText
public boolean isLiteralText()
- Specified by:
isLiteralText
in interfaceExpressionNode
- Returns:
true
if this node represents literal text
-
getValueReference
public ValueReference getValueReference(Bindings bindings, ELContext context)
Description copied from interface:ExpressionNode
Get value reference.- Specified by:
getValueReference
in interfaceExpressionNode
- Returns:
- value reference
-
setValue
public void setValue(Bindings bindings, ELContext context, java.lang.Object value)
Description copied from interface:ExpressionNode
Assign value.- Specified by:
setValue
in interfaceExpressionNode
- Parameters:
bindings
- bindings containing variables and functionscontext
- evaluation contextvalue
- value to set
-
isReadOnly
public boolean isReadOnly(Bindings bindings, ELContext context)
Description copied from interface:ExpressionNode
Determine whetherExpressionNode.setValue(Bindings, ELContext, Object)
will throw aPropertyNotWritableException
.- Specified by:
isReadOnly
in interfaceExpressionNode
- Parameters:
bindings
- bindings containing variables and functionscontext
- evaluation context- Returns:
true
if this a read-only expression node
-
getMethod
protected java.lang.reflect.Method getMethod(Bindings bindings, ELContext context, java.lang.Class<?> returnType, java.lang.Class<?>[] paramTypes)
-
getMethodInfo
public MethodInfo getMethodInfo(Bindings bindings, ELContext context, java.lang.Class<?> returnType, java.lang.Class<?>[] paramTypes)
Description copied from interface:ExpressionNode
Get method information. If this is a non-lvalue node, answernull
.- Specified by:
getMethodInfo
in interfaceExpressionNode
- 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 java.lang.Object invoke(Bindings bindings, ELContext context, java.lang.Class<?> returnType, java.lang.Class<?>[] paramTypes, java.lang.Object[] params)
Description copied from interface:ExpressionNode
Invoke method.- Specified by:
invoke
in interfaceExpressionNode
- Parameters:
bindings
- bindings containing variables and functionscontext
- evaluation contextreturnType
- expected method return type (may benull
meaning don't care)paramTypes
- expected method argument typesparams
- parameter values- Returns:
- result of the method invocation
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
appendStructure
public void appendStructure(java.lang.StringBuilder b, Bindings bindings)
- Specified by:
appendStructure
in classAstNode
-
getIndex
public int getIndex()
Description copied from interface:IdentifierNode
Get the unique index of this identifier in the expression (e.g. preorder index)- Specified by:
getIndex
in interfaceIdentifierNode
-
getName
public java.lang.String getName()
Description copied from interface:IdentifierNode
Get the identifier name- Specified by:
getName
in interfaceIdentifierNode
-
getCardinality
public int getCardinality()
Description copied from interface:Node
Get the node's number of children.- Specified by:
getCardinality
in interfaceNode
-
-