Package org.camunda.bpm.engine.impl.juel
Class AstProperty
- java.lang.Object
-
- org.camunda.bpm.engine.impl.juel.AstNode
-
- org.camunda.bpm.engine.impl.juel.AstProperty
-
- All Implemented Interfaces:
ExpressionNode,Node
- Direct Known Subclasses:
AstBracket,AstDot
public abstract class AstProperty extends AstNode
-
-
Constructor Summary
Constructors Constructor Description AstProperty(AstNode prefix, boolean lvalue, boolean strict)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description java.lang.Objecteval(Bindings bindings, ELContext context)protected java.lang.reflect.MethodfindMethod(java.lang.String name, java.lang.Class<?> clazz, java.lang.Class<?> returnType, java.lang.Class<?>[] paramTypes)AstNodegetChild(int i)Get i'th childMethodInfogetMethodInfo(Bindings bindings, ELContext context, java.lang.Class<?> returnType, java.lang.Class<?>[] paramTypes)Get method information.protected AstNodegetPrefix()protected abstract java.lang.ObjectgetProperty(Bindings bindings, ELContext context)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.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.-
Methods inherited from class org.camunda.bpm.engine.impl.juel.AstNode
appendStructure, getStructuralId, getValue
-
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.Node
getCardinality
-
-
-
-
Field Detail
-
prefix
protected final AstNode prefix
-
lvalue
protected final boolean lvalue
-
strict
protected final boolean strict
-
-
Constructor Detail
-
AstProperty
public AstProperty(AstNode prefix, boolean lvalue, boolean strict)
-
-
Method Detail
-
getProperty
protected abstract java.lang.Object getProperty(Bindings bindings, ELContext context) throws ELException
- Throws:
ELException
-
getPrefix
protected AstNode getPrefix()
-
getValueReference
public ValueReference getValueReference(Bindings bindings, ELContext context)
Description copied from interface:ExpressionNodeGet value reference.- Returns:
- value reference
-
isLiteralText
public final boolean isLiteralText()
- Returns:
trueif this node represents literal text
-
isLeftValue
public final 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.
-
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
-
isReadOnly
public boolean isReadOnly(Bindings bindings, ELContext context) throws ELException
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- Throws:
ELException
-
setValue
public void setValue(Bindings bindings, ELContext context, java.lang.Object value) throws ELException
Description copied from interface:ExpressionNodeAssign value.- Parameters:
bindings- bindings containing variables and functionscontext- evaluation contextvalue- value to set- Throws:
ELException
-
findMethod
protected java.lang.reflect.Method findMethod(java.lang.String name, java.lang.Class<?> clazz, 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: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
-
-