Class TreeMethodExpression
java.lang.Object
javax.el.Expression
javax.el.MethodExpression
de.odysseus.el.TreeMethodExpression
- All Implemented Interfaces:
Serializable
public final class TreeMethodExpression
extends javax.el.MethodExpression
A method expression is ready to be evaluated (by calling either
invoke(ELContext, Object[]) or getMethodInfo(ELContext)).
Instances of this class are usually created using an ExpressionFactoryImpl.- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final Bindingsprivate final TreeBuilderprivate final booleanprivate final Stringprivate ExpressionNodeprivate static final longprivate Stringprivate final Class<?> private final Class<?>[] -
Constructor Summary
ConstructorsConstructorDescriptionTreeMethodExpression(TreeStore store, javax.el.FunctionMapper functions, javax.el.VariableMapper variables, TypeConverter converter, String expr, Class<?> returnType, Class<?>[] paramTypes) Create a new method expression. -
Method Summary
Modifier and TypeMethodDescriptionvoiddump(PrintWriter writer) Print the parse tree.booleanExpressions are compared using the concept of a structural id: variable and function names are anonymized such that two expressions with same tree structure will also have the same structural id and vice versa.javax.el.MethodInfogetMethodInfo(javax.el.ELContext context) Evaluates the expression and answers information about the methodprivate StringinthashCode()Evaluates the expression and invokes the method.booleanAnswertrueif this is a deferred expression (starting with#{)booleanbooleanprivate voidtoString()Methods inherited from class javax.el.MethodExpression
isParametersProvided
-
Field Details
-
serialVersionUID
private static final long serialVersionUID- See Also:
-
builder
-
bindings
-
expr
-
type
-
types
-
deferred
private final boolean deferred -
node
-
structure
-
-
Constructor Details
-
TreeMethodExpression
public TreeMethodExpression(TreeStore store, javax.el.FunctionMapper functions, javax.el.VariableMapper variables, TypeConverter converter, String expr, Class<?> returnType, Class<?>[] paramTypes) Create a new method expression. The expression must be an lvalue expression or literal text. The expected return type may benull, meaning "don't care". If it is an lvalue expression, the parameter types must not benull. If it is literal text, the expected return type must not bevoid.- Parameters:
store- used to get the parse tree from.functions- the function mapper used to bind functionsvariables- the variable mapper used to bind variablesexpr- the expression stringreturnType- the expected return type (may benull)paramTypes- the expected parameter types (must not benullfor lvalues)
-
-
Method Details
-
getStructuralId
-
getMethodInfo
public javax.el.MethodInfo getMethodInfo(javax.el.ELContext context) throws javax.el.ELException Evaluates the expression and answers information about the method- Specified by:
getMethodInfoin classjavax.el.MethodExpression- Parameters:
context- used to resolve properties (base.propertyandbase[property])- Returns:
- method information or
nullfor literal expressions - Throws:
javax.el.ELException- if evaluation fails (e.g. suitable method not found)
-
getExpressionString
- Specified by:
getExpressionStringin classjavax.el.Expression
-
invoke
Evaluates the expression and invokes the method.- Specified by:
invokein classjavax.el.MethodExpression- Parameters:
context- used to resolve properties (base.propertyandbase[property])paramValues-- Returns:
- method result or
nullif this is a literal text expression - Throws:
javax.el.ELException- if evaluation fails (e.g. suitable method not found)
-
isLiteralText
public boolean isLiteralText()- Specified by:
isLiteralTextin classjavax.el.Expression- Returns:
trueif this is a literal text expression
-
isParmetersProvided
public boolean isParmetersProvided()- Overrides:
isParmetersProvidedin classjavax.el.MethodExpression- Returns:
trueif this is a method invocation expression
-
isDeferred
public boolean isDeferred()Answertrueif this is a deferred expression (starting with#{) -
equals
Expressions are compared using the concept of a structural id: variable and function names are anonymized such that two expressions with same tree structure will also have the same structural id and vice versa. Two method expressions are equal if- their builders are equal
- their structural id's are equal
- their bindings are equal
- their expected types match
- their parameter types are equal
- Specified by:
equalsin classjavax.el.Expression
-
hashCode
public int hashCode()- Specified by:
hashCodein classjavax.el.Expression
-
toString
-
dump
-
readObject
- Throws:
IOExceptionClassNotFoundException
-