Package de.odysseus.el.tree.impl.ast
Class AstMethod
- java.lang.Object
-
- de.odysseus.el.tree.impl.ast.AstNode
-
- de.odysseus.el.tree.impl.ast.AstMethod
-
- All Implemented Interfaces:
ExpressionNode
,Node
public class AstMethod extends AstNode
-
-
Field Summary
Fields Modifier and Type Field Description private AstParameters
params
private AstProperty
property
-
Constructor Summary
Constructors Constructor Description AstMethod(AstProperty property, AstParameters params)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
appendStructure(java.lang.StringBuilder builder, Bindings bindings)
java.lang.Object
eval(Bindings bindings, javax.el.ELContext context)
protected java.lang.Object
eval(Bindings bindings, javax.el.ELContext context, boolean answerNullIfBaseIsNull)
int
getCardinality()
Get the node's number of children.Node
getChild(int i)
Get i'th childjavax.el.MethodInfo
getMethodInfo(Bindings bindings, javax.el.ELContext context, java.lang.Class<?> returnType, java.lang.Class<?>[] paramTypes)
Get method information.java.lang.Class<?>
getType(Bindings bindings, javax.el.ELContext context)
Get the value type accepted inExpressionNode.setValue(Bindings, ELContext, Object)
.javax.el.ValueReference
getValueReference(Bindings bindings, javax.el.ELContext context)
Get value reference.java.lang.Object
invoke(Bindings bindings, javax.el.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, javax.el.ELContext context)
Determine whetherExpressionNode.setValue(Bindings, ELContext, Object)
will throw aPropertyNotWritableException
.void
setValue(Bindings bindings, javax.el.ELContext context, java.lang.Object value)
Assign value.java.lang.String
toString()
-
Methods inherited from class de.odysseus.el.tree.impl.ast.AstNode
findAccessibleMethod, getStructuralId, getValue
-
-
-
-
Field Detail
-
property
private final AstProperty property
-
params
private final AstParameters params
-
-
Constructor Detail
-
AstMethod
public AstMethod(AstProperty property, AstParameters params)
-
-
Method Detail
-
isLiteralText
public boolean isLiteralText()
- Returns:
true
if this node represents literal text
-
getType
public java.lang.Class<?> getType(Bindings bindings, javax.el.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, javax.el.ELContext context)
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
-
setValue
public void setValue(Bindings bindings, javax.el.ELContext context, java.lang.Object value)
Description copied from interface:ExpressionNode
Assign value.- Parameters:
bindings
- bindings containing variables and functionscontext
- evaluation contextvalue
- value to set
-
getMethodInfo
public javax.el.MethodInfo getMethodInfo(Bindings bindings, javax.el.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
-
isLeftValue
public 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.
-
getValueReference
public final javax.el.ValueReference getValueReference(Bindings bindings, javax.el.ELContext context)
Description copied from interface:ExpressionNode
Get value reference.- Returns:
- value reference
-
appendStructure
public void appendStructure(java.lang.StringBuilder builder, Bindings bindings)
- Specified by:
appendStructure
in classAstNode
-
eval
protected java.lang.Object eval(Bindings bindings, javax.el.ELContext context, boolean answerNullIfBaseIsNull)
-
eval
public java.lang.Object eval(Bindings bindings, javax.el.ELContext context)
-
invoke
public java.lang.Object invoke(Bindings bindings, javax.el.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
-
getCardinality
public int getCardinality()
Description copied from interface:Node
Get the node's number of children.
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-