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

java.lang.Object
  extended by org.camunda.bpm.engine.impl.juel.AstNode
All Implemented Interfaces:
ExpressionNode, Node
Direct Known Subclasses:
AstEval, AstIdentifier, AstMethod, AstProperty, AstRightValue, AstText

public abstract class AstNode
extends Object
implements ExpressionNode


Constructor Summary
AstNode()
           
 
Method Summary
abstract  void appendStructure(StringBuilder builder, Bindings bindings)
           
abstract  Object eval(Bindings bindings, ELContext context)
           
 String getStructuralId(Bindings bindings)
          Get the canonical expression string for this node.
 Object getValue(Bindings bindings, ELContext context, Class<?> type)
          evaluate and return the (optionally coerced) result.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.camunda.bpm.engine.impl.juel.ExpressionNode
getMethodInfo, getType, getValueReference, invoke, isLeftValue, isLiteralText, isMethodInvocation, isReadOnly, setValue
 
Methods inherited from interface org.camunda.bpm.engine.impl.juel.Node
getCardinality, getChild
 

Constructor Detail

AstNode

public AstNode()
Method Detail

getValue

public final Object getValue(Bindings bindings,
                             ELContext context,
                             Class<?> type)
evaluate and return the (optionally coerced) result.

Specified by:
getValue in interface ExpressionNode
Parameters:
bindings - bindings containing variables and functions
context - evaluation context
type - result type
Returns:
evaluated node, coerced to the expected type

appendStructure

public abstract void appendStructure(StringBuilder builder,
                                     Bindings bindings)

eval

public abstract Object eval(Bindings bindings,
                            ELContext context)

getStructuralId

public final String getStructuralId(Bindings bindings)
Description copied from interface: ExpressionNode
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>}" if foobar is a bound variable. Otherwise, the structural id would be "${<fn>() + 2 * foobar}".

If the bindings is null, the full canonical subexpression is returned.

Specified by:
getStructuralId in interface ExpressionNode


Copyright © 2016 camunda services GmbH. All rights reserved.