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