Package 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
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionabstract void
appendStructure
(StringBuilder builder, Bindings bindings) abstract Object
protected Method
findAccessibleMethod
(Method method) private static Method
findPublicAccessibleMethod
(Method method) Find accessible method.final String
getStructuralId
(Bindings bindings) Get the canonical expression string for this node.final Object
evaluate and return the (optionally coerced) result.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface de.odysseus.el.tree.ExpressionNode
getMethodInfo, getType, getValueReference, invoke, isLeftValue, isLiteralText, isMethodInvocation, isReadOnly, setValue
Methods inherited from interface de.odysseus.el.tree.Node
getCardinality, getChild
-
Constructor Details
-
AstNode
public AstNode()
-
-
Method Details
-
getValue
evaluate and return the (optionally coerced) result.- Specified by:
getValue
in interfaceExpressionNode
- Parameters:
bindings
- bindings containing variables and functionscontext
- evaluation contexttype
- result type- Returns:
- evaluated node, coerced to the expected type
-
appendStructure
-
eval
-
getStructuralId
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>}"
iffoobar
is a bound variable. Otherwise, the structural id would be"${<fn>() + 2 * foobar}"
. If the bindings isnull
, the full canonical subexpression is returned.- Specified by:
getStructuralId
in interfaceExpressionNode
-
findPublicAccessibleMethod
Find accessible method. Searches the inheritance tree of the class declaring the method until it finds a method that can be invoked.- Parameters:
method
- method- Returns:
- accessible method or
null
-
findAccessibleMethod
-