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.Object
eval(Bindings bindings, ELContext context)
protected java.lang.reflect.Method
findMethod(java.lang.String name, java.lang.Class<?> clazz, java.lang.Class<?> returnType, java.lang.Class<?>[] paramTypes)
AstNode
getChild(int i)
Get i'th childMethodInfo
getMethodInfo(Bindings bindings, ELContext context, java.lang.Class<?> returnType, java.lang.Class<?>[] paramTypes)
Get method information.protected AstNode
getPrefix()
protected abstract java.lang.Object
getProperty(Bindings bindings, ELContext context)
java.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[] paramValues)
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.-
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:ExpressionNode
Get value reference.- Returns:
- value reference
-
isLiteralText
public final boolean isLiteralText()
- Returns:
true
if this node represents literal text
-
isLeftValue
public final boolean isLeftValue()
- 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()
- Returns:
true
if the subtree rooted at this node is a method invocation.
-
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)
.- Parameters:
bindings
- bindings containing variables and functionscontext
- evaluation context- Returns:
- accepted type or
null
for non-lvalue nodes
-
isReadOnly
public boolean isReadOnly(Bindings bindings, ELContext context) throws ELException
Description copied from interface:ExpressionNode
Determine whetherExpressionNode.setValue(Bindings, ELContext, Object)
will throw aPropertyNotWritableException
.- Parameters:
bindings
- bindings containing variables and functionscontext
- evaluation context- Returns:
true
if 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:ExpressionNode
Assign 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:ExpressionNode
Get method information. If this is a non-lvalue node, answernull
.- 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[] paramValues)
Description copied from interface:ExpressionNode
Invoke method.- Parameters:
bindings
- bindings containing variables and functionscontext
- evaluation contextreturnType
- expected method return type (may benull
meaning don't care)paramTypes
- expected method argument typesparamValues
- parameter values- Returns:
- result of the method invocation
-
-