| de.odysseus.el.tree.ExpressionNode
All known Subclasses: de.odysseus.el.tree.impl.ast.AstNode,
ExpressionNode | public interface ExpressionNode extends Node(Code) | | Expression node interface.
This interface provides all the methods needed for value expressions and method
expressions.
See Also: de.odysseus.el.tree.Tree author: Christoph Beck |
Method Summary | |
public MethodInfo | getMethodInfo(Bindings bindings, ELContext context, Class> returnType, Class>[] paramTypes) Get method information. | public String | getStructuralId(Bindings bindings) Get the canonical expression string for this node. | public Class> | getType(Bindings bindings, ELContext context) Get the value type accepted in
ExpressionNode.setValue(Bindings,ELContext,Object) . | public Object | getValue(Bindings bindings, ELContext context, Class> expectedType) Evaluate node. | public Object | invoke(Bindings bindings, ELContext context, Class> returnType, Class>[] paramTypes, Object[] paramValues) Invoke method. | public boolean | isLeftValue() | public boolean | isLiteralText() | public boolean | isReadOnly(Bindings bindings, ELContext context) Determine whether
ExpressionNode.setValue(Bindings,ELContext,Object) will throw a
javax.el.PropertyNotWritableException . | public void | setValue(Bindings bindings, ELContext context, Object value) Assign value. |
getMethodInfo | public MethodInfo getMethodInfo(Bindings bindings, ELContext context, Class> returnType, Class>[] paramTypes)(Code) | | Get method information.
If this is a non-lvalue node, answer null .
Parameters: bindings - bindings containing variables and functions Parameters: context - evaluation context Parameters: returnType - expected method return type (may be null meaning don't care) Parameters: paramTypes - expected method argument types method information or null |
getStructuralId | public String getStructuralId(Bindings bindings)(Code) | | 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.
|
getValue | public Object getValue(Bindings bindings, ELContext context, Class> expectedType)(Code) | | Evaluate node.
Parameters: bindings - bindings containing variables and functions Parameters: context - evaluation context Parameters: expectedType - result type evaluated node, coerced to the expected type |
invoke | public Object invoke(Bindings bindings, ELContext context, Class> returnType, Class>[] paramTypes, Object[] paramValues)(Code) | | Invoke method.
Parameters: bindings - bindings containing variables and functions Parameters: context - evaluation context Parameters: returnType - expected method return type (may be null meaning don't care) Parameters: paramTypes - expected method argument types Parameters: paramValues - parameter values result of the method invocation |
isLeftValue | public boolean isLeftValue()(Code) | | true if the subtree rooted at this node could be used asan lvalue expression (identifier or property sequence with non-literal proefix). |
isLiteralText | public boolean isLiteralText()(Code) | | true if this node represents literal text |
setValue | public void setValue(Bindings bindings, ELContext context, Object value)(Code) | | Assign value.
Parameters: bindings - bindings containing variables and functions Parameters: context - evaluation context Parameters: value - value to set |
|
|