public abstract class AstProperty extends AstNode
| Modifier and Type | Field and Description |
|---|---|
protected boolean |
lvalue |
protected AstNode |
prefix |
protected boolean |
strict |
| Constructor and Description |
|---|
AstProperty(AstNode prefix,
boolean lvalue,
boolean strict) |
| Modifier and Type | Method and Description |
|---|---|
Object |
eval(Bindings bindings,
ELContext context) |
protected Method |
findMethod(String name,
Class<?> clazz,
Class<?> returnType,
Class<?>[] paramTypes) |
AstNode |
getChild(int i)
Get i'th child
|
MethodInfo |
getMethodInfo(Bindings bindings,
ELContext context,
Class<?> returnType,
Class<?>[] paramTypes)
Get method information.
|
protected AstNode |
getPrefix() |
protected abstract Object |
getProperty(Bindings bindings,
ELContext context) |
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 |
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.
|
appendStructure, getStructuralId, getValueclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitgetCardinalityprotected final AstNode prefix
protected final boolean lvalue
protected final boolean strict
public AstProperty(AstNode prefix, boolean lvalue, boolean strict)
protected abstract Object getProperty(Bindings bindings, ELContext context) throws ELException
ELExceptionprotected AstNode getPrefix()
public ValueReference getValueReference(Bindings bindings, ELContext context)
ExpressionNodepublic final boolean isLiteralText()
true if this node represents literal textpublic final 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 Class<?> getType(Bindings bindings, ELContext context)
ExpressionNodeExpressionNode.setValue(Bindings, ELContext, Object).bindings - bindings containing variables and functionscontext - evaluation contextnull for non-lvalue nodespublic boolean isReadOnly(Bindings bindings, ELContext context) throws ELException
ExpressionNodeExpressionNode.setValue(Bindings, ELContext, Object) will throw a
PropertyNotWritableException.bindings - bindings containing variables and functionscontext - evaluation contexttrue if this a read-only expression nodeELExceptionpublic void setValue(Bindings bindings, ELContext context, Object value) throws ELException
ExpressionNodebindings - bindings containing variables and functionscontext - evaluation contextvalue - value to setELExceptionprotected Method findMethod(String name, Class<?> clazz, Class<?> returnType, Class<?>[] paramTypes)
public 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 valuesCopyright © 2022. All rights reserved.