public final class TreeValueExpression extends ValueExpression
getType(ELContext), getValue(ELContext), isReadOnly(ELContext)
or setValue(ELContext, Object).
Instances of this class are usually created using an ExpressionFactoryImpl.| Constructor and Description |
|---|
TreeValueExpression(TreeStore store,
FunctionMapper functions,
VariableMapper variables,
TypeConverter converter,
String expr,
Class<?> type)
Create a new value expression.
|
| Modifier and Type | Method and Description |
|---|---|
void |
dump(PrintWriter writer)
Print the parse tree.
|
boolean |
equals(Object obj)
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.
|
Class<?> |
getExpectedType() |
String |
getExpressionString() |
Class<?> |
getType(ELContext context)
Evaluates the expression as an lvalue and answers the result type.
|
Object |
getValue(ELContext context)
Evaluates the expression as an rvalue and answers the result.
|
ValueReference |
getValueReference(ELContext context) |
int |
hashCode() |
boolean |
isDeferred()
Answer
true if this is a deferred expression (containing
sub-expressions starting with #{) |
boolean |
isLeftValue()
Answer
true if this could be used as an lvalue. |
boolean |
isLiteralText() |
boolean |
isReadOnly(ELContext context)
Evaluates the expression as an lvalue and determines if
setValue(ELContext, Object)
will always fail. |
void |
setValue(ELContext context,
Object value)
Evaluates the expression as an lvalue and assigns the given value.
|
String |
toString() |
public TreeValueExpression(TreeStore store, FunctionMapper functions, VariableMapper variables, TypeConverter converter, String expr, Class<?> type)
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 stringtype - the expected type (may be null)public Class<?> getExpectedType()
getExpectedType in class ValueExpressionpublic String getExpressionString()
getExpressionString in class Expressionpublic Class<?> getType(ELContext context) throws ELException
getType in class ValueExpressioncontext - used to resolve properties (base.property and base[property])
and to determine the result from the last base/property pairnull for rvalue expressionsELException - if evaluation fails (e.g. property not found, type conversion failed, ...)public Object getValue(ELContext context) throws ELException
getValue in class ValueExpressioncontext - used to resolve properties (base.property and base[property])
and to determine the result from the last base/property pairELException - if evaluation fails (e.g. property not found, type conversion failed, ...)public boolean isReadOnly(ELContext context) throws ELException
setValue(ELContext, Object)
will always fail.isReadOnly in class ValueExpressioncontext - used to resolve properties (base.property and base[property])
and to determine the result from the last base/property pairtrue if setValue(ELContext, Object) always fails.ELException - if evaluation fails (e.g. property not found, type conversion failed, ...)public void setValue(ELContext context, Object value) throws ELException
setValue in class ValueExpressioncontext - used to resolve properties (base.property and base[property])
and to perform the assignment to the last base/property pairELException - if evaluation fails (e.g. property not found, type conversion failed, assignment failed...)public boolean isLiteralText()
isLiteralText in class Expressiontrue if this is a literal text expressionpublic ValueReference getValueReference(ELContext context)
getValueReference in class ValueExpressionpublic boolean isLeftValue()
true if this could be used as an lvalue.
This is the case for eval expressions consisting of a simple identifier or
a nonliteral prefix, followed by a sequence of property operators (. or [])public boolean isDeferred()
true if this is a deferred expression (containing
sub-expressions starting with #{)public boolean equals(Object obj)
equals in class Expressionpublic int hashCode()
hashCode in class Expressionpublic void dump(PrintWriter writer)
writer - Copyright © 2006-2013 Odysseus Software GmbH. All Rights Reserved.