de.odysseus.el.tree.impl.ast
Class AstNode
java.lang.Object
de.odysseus.el.tree.impl.ast.AstNode
- All Implemented Interfaces:
- ExpressionNode, Node
- Direct Known Subclasses:
- AstEval, AstIdentifier, AstMethod, AstProperty, AstRightValue, AstText
public abstract class AstNode
- extends java.lang.Object
- implements ExpressionNode
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
AstNode
public AstNode()
getValue
public final java.lang.Object getValue(Bindings bindings,
ELContext context,
java.lang.Class<?> type)
- evaluate and return the (optionally coerced) result.
- Specified by:
getValue
in interface ExpressionNode
- Parameters:
bindings
- bindings containing variables and functionscontext
- evaluation contexttype
- result type
- Returns:
- evaluated node, coerced to the expected type
appendStructure
public abstract void appendStructure(java.lang.StringBuilder builder,
Bindings bindings)
eval
public abstract java.lang.Object eval(Bindings bindings,
ELContext context)
getStructuralId
public final java.lang.String getStructuralId(Bindings bindings)
- Description copied from interface:
ExpressionNode
- Get the canonical expression string for this node. Variable and funtion names will be
replaced in a way such that two expression nodes that have the same node structure and
bindings will also answer the same value here.
For example,
"${foo:bar()+2*foobar}"
may lead to
"${<fn>() + 2 * <var>}"
if foobar
is a bound variable.
Otherwise, the structural id would be "${<fn>() + 2 * foobar}"
.
If the bindings is null
, the full canonical subexpression is returned.
- Specified by:
getStructuralId
in interface ExpressionNode
findAccessibleMethod
protected java.lang.reflect.Method findAccessibleMethod(java.lang.reflect.Method method)
- Find accessible method. Searches the inheritance tree of the class declaring
the method until it finds a method that can be made accessible.
- Parameters:
method
- method
- Returns:
- accessible method or
null