de.odysseus.el.tree.impl.ast
Class AstRightValue

java.lang.Object
  extended by de.odysseus.el.tree.impl.ast.AstNode
      extended by de.odysseus.el.tree.impl.ast.AstRightValue
All Implemented Interfaces:
ExpressionNode, Node
Direct Known Subclasses:
AstBinary, AstChoice, AstComposite, AstInvocation, AstLiteral, AstNested, AstUnary

public abstract class AstRightValue
extends AstNode

Author:
Christoph Beck

Constructor Summary
AstRightValue()
           
 
Method Summary
 MethodInfo getMethodInfo(Bindings bindings, ELContext context, java.lang.Class<?> returnType, java.lang.Class<?>[] paramTypes)
          Get method information.
 java.lang.Class<?> getType(Bindings bindings, ELContext context)
          according to the spec, the result is undefined for rvalues, so answer null
 java.lang.Object invoke(Bindings bindings, ELContext context, java.lang.Class<?> returnType, java.lang.Class<?>[] paramTypes, java.lang.Object[] paramValues)
          Invoke method.
 boolean isLeftValue()
           
 boolean isLiteralText()
          Answer false
 boolean isReadOnly(Bindings bindings, ELContext context)
          non-lvalues are always readonly, so answer true
 void setValue(Bindings bindings, ELContext context, java.lang.Object value)
          non-lvalues are always readonly, so throw an exception
 
Methods inherited from class de.odysseus.el.tree.impl.ast.AstNode
appendStructure, eval, getStructuralId, getValue
 
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.Node
getCardinality, getChild
 

Constructor Detail

AstRightValue

public AstRightValue()
Method Detail

isLiteralText

public final boolean isLiteralText()
Answer false

Returns:
true if this node represents literal text

getType

public final java.lang.Class<?> getType(Bindings bindings,
                                        ELContext context)
according to the spec, the result is undefined for rvalues, so answer null

Parameters:
bindings - bindings containing variables and functions
context - evaluation context
Returns:
accepted type or null for non-lvalue nodes

isReadOnly

public final boolean isReadOnly(Bindings bindings,
                                ELContext context)
non-lvalues are always readonly, so answer true

Parameters:
bindings - bindings containing variables and functions
context - evaluation context
Returns:
true if this a read-only expression node

setValue

public final void setValue(Bindings bindings,
                           ELContext context,
                           java.lang.Object value)
non-lvalues are always readonly, so throw an exception

Parameters:
bindings - bindings containing variables and functions
context - evaluation context
value - value to set

getMethodInfo

public final MethodInfo getMethodInfo(Bindings bindings,
                                      ELContext context,
                                      java.lang.Class<?> returnType,
                                      java.lang.Class<?>[] paramTypes)
Description copied from interface: ExpressionNode
Get method information. If this is a non-lvalue node, answer null.

Parameters:
bindings - bindings containing variables and functions
context - evaluation context
returnType - expected method return type (may be null meaning don't care)
paramTypes - expected method argument types
Returns:
method information or null

invoke

public final java.lang.Object invoke(Bindings bindings,
                                     ELContext context,
                                     java.lang.Class<?> returnType,
                                     java.lang.Class<?>[] paramTypes,
                                     java.lang.Object[] paramValues)
Description copied from interface: ExpressionNode
Invoke method.

Parameters:
bindings - bindings containing variables and functions
context - evaluation context
returnType - expected method return type (may be null meaning don't care)
paramTypes - expected method argument types
paramValues - parameter values
Returns:
result of the method invocation

isLeftValue

public final boolean isLeftValue()
Returns:
true if the subtree rooted at this node could be used as an lvalue expression (identifier or property sequence with non-literal proefix).

Copyright © 2006-2009 Odysseus Software GmbH.