org.camunda.bpm.engine.impl.juel
Class AstIdentifier

java.lang.Object
  extended by org.camunda.bpm.engine.impl.juel.AstNode
      extended by org.camunda.bpm.engine.impl.juel.AstIdentifier
All Implemented Interfaces:
ExpressionNode, IdentifierNode, Node

public class AstIdentifier
extends AstNode
implements IdentifierNode


Constructor Summary
AstIdentifier(String name, int index)
           
 
Method Summary
 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 child
 int getIndex()
          Get the unique index of this identifier in the expression (e.g.
protected  Method getMethod(Bindings bindings, ELContext context, Class<?> returnType, Class<?>[] paramTypes)
           
 MethodInfo getMethodInfo(Bindings bindings, ELContext context, Class<?> returnType, Class<?>[] paramTypes)
          Get method information.
 String getName()
          Get the identifier name
 Class<?> getType(Bindings bindings, ELContext context)
          Get the value type accepted in ExpressionNode.setValue(Bindings, ELContext, Object).
 ValueReference getValueReference(Bindings bindings, ELContext context)
          Get value reference.
 Object invoke(Bindings bindings, ELContext context, Class<?> returnType, Class<?>[] paramTypes, Object[] params)
          Invoke method.
 boolean isLeftValue()
           
 boolean isLiteralText()
           
 boolean isMethodInvocation()
           
 boolean isReadOnly(Bindings bindings, ELContext context)
          Determine whether ExpressionNode.setValue(Bindings, ELContext, Object) will throw a PropertyNotWritableException.
 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
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

AstIdentifier

public AstIdentifier(String name,
                     int index)
Method Detail

getType

public Class<?> getType(Bindings bindings,
                        ELContext context)
Description copied from interface: ExpressionNode
Get the value type accepted in ExpressionNode.setValue(Bindings, ELContext, Object).

Specified by:
getType in interface ExpressionNode
Parameters:
bindings - bindings containing variables and functions
context - evaluation context
Returns:
accepted type or null for non-lvalue nodes

isLeftValue

public boolean isLeftValue()
Specified by:
isLeftValue in interface ExpressionNode
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 interface ExpressionNode
Returns:
true if the subtree rooted at this node is a method invocation.

isLiteralText

public boolean isLiteralText()
Specified by:
isLiteralText in interface ExpressionNode
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 interface ExpressionNode
Returns:
value reference

eval

public Object eval(Bindings bindings,
                   ELContext context)
Specified by:
eval in class AstNode

setValue

public void setValue(Bindings bindings,
                     ELContext context,
                     Object value)
Description copied from interface: ExpressionNode
Assign value.

Specified by:
setValue in interface ExpressionNode
Parameters:
bindings - bindings containing variables and functions
context - evaluation context
value - value to set

isReadOnly

public boolean isReadOnly(Bindings bindings,
                          ELContext context)
Description copied from interface: ExpressionNode
Determine whether ExpressionNode.setValue(Bindings, ELContext, Object) will throw a PropertyNotWritableException.

Specified by:
isReadOnly in interface ExpressionNode
Parameters:
bindings - bindings containing variables and functions
context - evaluation context
Returns:
true if this a read-only expression node

getMethod

protected Method getMethod(Bindings bindings,
                           ELContext context,
                           Class<?> returnType,
                           Class<?>[] paramTypes)

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, answer null.

Specified by:
getMethodInfo in interface ExpressionNode
Parameters:
bindings - bindings containing variables and functions
context - evaluation context
returnType - expected method return type (may be null 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[] params)
Description copied from interface: ExpressionNode
Invoke method.

Specified by:
invoke in interface ExpressionNode
Parameters:
bindings - bindings containing variables and functions
context - evaluation context
returnType - expected method return type (may be null meaning don't care)
paramTypes - expected method argument types
params - parameter values
Returns:
result of the method invocation

toString

public String toString()
Overrides:
toString in class Object

appendStructure

public void appendStructure(StringBuilder b,
                            Bindings bindings)
Specified by:
appendStructure in class AstNode

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 interface IdentifierNode

getName

public String getName()
Description copied from interface: IdentifierNode
Get the identifier name

Specified by:
getName in interface IdentifierNode

getCardinality

public int getCardinality()
Description copied from interface: Node
Get the node's number of children.

Specified by:
getCardinality in interface Node

getChild

public AstNode getChild(int i)
Description copied from interface: Node
Get i'th child

Specified by:
getChild in interface Node


Copyright © 2017 camunda services GmbH. All rights reserved.