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, 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