| java.lang.Object javax.el.Expression javax.el.MethodExpression org.apache.el.MethodExpressionImpl
MethodExpressionImpl | final public class MethodExpressionImpl extends MethodExpression implements Externalizable(Code) | | An Expression that refers to a method on an object.
The
ExpressionFactory.createMethodExpression method
can be used to parse an expression string and return a concrete instance
of MethodExpression that encapsulates the parsed expression.
The
FunctionMapper is used at parse time, not evaluation time,
so one is not needed to evaluate an expression using this class.
However, the
ELContext is needed at evaluation time.
The
MethodExpressionImpl.getMethodInfo and
MethodExpressionImpl.invoke methods will evaluate the
expression each time they are called. The
ELResolver in the
ELContext is used to resolve the top-level variables and to
determine the behavior of the . and []
operators. For any of the two methods, the
ELResolver.getValue
method is used to resolve all properties up to but excluding the last
one. This provides the base object on which the method
appears. If the base object is null, a
NullPointerException must be thrown. At the last resolution,
the final property is then coerced to a String ,
which provides the name of the method to be found. A method matching the
name and expected parameters provided at parse time is found and it is
either queried or invoked (depending on the method called on this
MethodExpression ).
See the notes about comparison, serialization and immutability in
the
Expression javadocs.
See Also: javax.el.ELResolver See Also: javax.el.Expression See Also: javax.el.ExpressionFactory See Also: javax.el.MethodExpression author: Jacob Hookom [jacob@hookom.net] version: $Change: 181177 $$DateTime: 2001/06/26 08:45:09 $$Author: markt $ |
Method Summary | |
public boolean | equals(Object obj) Determines whether the specified object is equal to this
Expression .
The result is true if and only if the argument is not
null , is an Expression object that is the
of the same type (ValueExpression or
MethodExpression ), and has an identical parsed
representation.
Note that two expressions can be equal if their expression Strings are
different. | public String | getExpressionString() Returns the original String used to create this Expression ,
unmodified.
This is used for debugging purposes but also for the purposes of
comparison (e.g. | public MethodInfo | getMethodInfo(ELContext context) Evaluates the expression relative to the provided context, and returns
information about the actual referenced method.
Parameters: context - The context of this evaluation an instance of MethodInfo containing informationabout the method the expression evaluated to. throws: NullPointerException - if context is null or the base object isnull on the last resolution. throws: PropertyNotFoundException - if one of the property resolutions failed because a specifiedvariable or property does not exist or is not readable. throws: MethodNotFoundException - if no suitable method can be found. throws: ELException - if an exception was thrown while performing property orvariable resolution. | public int | hashCode() Returns the hash code for this Expression .
See the note in the
MethodExpressionImpl.equals method on how two expressions can be
equal if their expression Strings are different. | public Object | invoke(ELContext context, Object[] params) Evaluates the expression relative to the provided context, invokes the
method that was found using the supplied parameters, and returns the
result of the method invocation.
Parameters: context - The context of this evaluation. Parameters: params - The parameters to pass to the method, or null if no parameters. | public boolean | isLiteralText() | public void | readExternal(ObjectInput in) | public void | writeExternal(ObjectOutput out) |
MethodExpressionImpl | public MethodExpressionImpl()(Code) | | |
MethodExpressionImpl | public MethodExpressionImpl(String expr, Node node, FunctionMapper fnMapper, VariableMapper varMapper, Class expectedType, Class[] paramTypes)(Code) | | Parameters: expr - Parameters: node - Parameters: fnMapper - Parameters: expectedType - Parameters: paramTypes - |
equals | public boolean equals(Object obj)(Code) | | Determines whether the specified object is equal to this
Expression .
The result is true if and only if the argument is not
null , is an Expression object that is the
of the same type (ValueExpression or
MethodExpression ), and has an identical parsed
representation.
Note that two expressions can be equal if their expression Strings are
different. For example, ${fn1:foo()} and
${fn2:foo()} are equal if their corresponding
FunctionMapper s mapped fn1:foo and
fn2:foo to the same method.
Parameters: obj - the Object to test for equality. true if obj equals thisExpression ; false otherwise. See Also: java.util.Hashtable See Also: java.lang.Object.equals(java.lang.Object) |
getExpressionString | public String getExpressionString()(Code) | | Returns the original String used to create this Expression ,
unmodified.
This is used for debugging purposes but also for the purposes of
comparison (e.g. to ensure the expression in a configuration file has not
changed).
This method does not provide sufficient information to re-create an
expression. Two different expressions can have exactly the same
expression string but different function mappings. Serialization should
be used to save and restore the state of an Expression .
The original expression String. See Also: javax.el.Expression.getExpressionString |
hashCode | public int hashCode()(Code) | | Returns the hash code for this Expression .
See the note in the
MethodExpressionImpl.equals method on how two expressions can be
equal if their expression Strings are different. Recall that if two
objects are equal according to the equals(Object) method,
then calling the hashCode method on each of the two
objects must produce the same integer result. Implementations must take
special note and implement hashCode correctly.
The hash code for this Expression . See Also: MethodExpressionImpl.equals See Also: java.util.Hashtable See Also: java.lang.Object.hashCode |
invoke | public Object invoke(ELContext context, Object[] params) throws PropertyNotFoundException, MethodNotFoundException, ELException(Code) | | Evaluates the expression relative to the provided context, invokes the
method that was found using the supplied parameters, and returns the
result of the method invocation.
Parameters: context - The context of this evaluation. Parameters: params - The parameters to pass to the method, or null if no parameters. the result of the method invocation (null if themethod has a void return type). throws: NullPointerException - if context is null or the base object isnull on the last resolution. throws: PropertyNotFoundException - if one of the property resolutions failed because a specifiedvariable or property does not exist or is not readable. throws: MethodNotFoundException - if no suitable method can be found. throws: ELException - if an exception was thrown while performing property orvariable resolution. The thrown exception must be included asthe cause property of this exception, if available. If theexception thrown is an InvocationTargetException ,extract its cause and pass it to theELException constructor. See Also: javax.el.MethodExpression.invoke(javax.el.ELContextjava.lang.Object[]) |
isLiteralText | public boolean isLiteralText()(Code) | | |
|
|