public final class AstEval extends AstNode
| Constructor and Description |
|---|
AstEval(AstNode child,
boolean deferred) |
| Modifier and Type | Method and Description |
|---|---|
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
|
MethodInfo |
getMethodInfo(Bindings bindings,
ELContext context,
Class<?> returnType,
Class<?>[] paramTypes)
Get method information.
|
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[] paramValues)
Invoke method.
|
boolean |
isDeferred() |
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() |
getStructuralId, getValuepublic AstEval(AstNode child, boolean deferred)
public boolean isDeferred()
public boolean isLeftValue()
true if the subtree rooted at this node could be used as an lvalue
expression (identifier or property sequence with non-literal prefix).public boolean isMethodInvocation()
true if the subtree rooted at this node is a method invocation.public ValueReference getValueReference(Bindings bindings, ELContext context)
ExpressionNodepublic void appendStructure(StringBuilder b, Bindings bindings)
appendStructure in class AstNodepublic MethodInfo getMethodInfo(Bindings bindings, ELContext context, Class<?> returnType, Class<?>[] paramTypes)
ExpressionNodenull.bindings - bindings containing variables and functionscontext - evaluation contextreturnType - expected method return type (may be null meaning don't care)paramTypes - expected method argument typesnullpublic Object invoke(Bindings bindings, ELContext context, Class<?> returnType, Class<?>[] paramTypes, Object[] paramValues)
ExpressionNodebindings - bindings containing variables and functionscontext - evaluation contextreturnType - expected method return type (may be null meaning don't care)paramTypes - expected method argument typesparamValues - parameter valuespublic Class<?> getType(Bindings bindings, ELContext context)
ExpressionNodeExpressionNode.setValue(Bindings, ELContext, Object).bindings - bindings containing variables and functionscontext - evaluation contextnull for non-lvalue nodespublic boolean isLiteralText()
true if this node represents literal textpublic boolean isReadOnly(Bindings bindings, ELContext context)
ExpressionNodeExpressionNode.setValue(Bindings, ELContext, Object) will throw a
PropertyNotWritableException.bindings - bindings containing variables and functionscontext - evaluation contexttrue if this a read-only expression nodepublic void setValue(Bindings bindings, ELContext context, Object value)
ExpressionNodebindings - bindings containing variables and functionscontext - evaluation contextvalue - value to setpublic int getCardinality()
NodeCopyright © 2018. All rights reserved.