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

java.lang.Object
  extended by de.odysseus.el.tree.impl.ast.AstNode
      extended by de.odysseus.el.tree.impl.ast.AstProperty
All Implemented Interfaces:
ExpressionNode, Node
Direct Known Subclasses:
AstBracket, AstDot

public abstract class AstProperty
extends AstNode


Constructor Summary
AstProperty(AstNode prefix, boolean lvalue, boolean strict)
           
 
Method Summary
 java.lang.Object eval(Bindings bindings, ELContext context)
           
 AstNode getChild(int i)
          Get i'th child
 MethodInfo getMethodInfo(Bindings bindings, ELContext context, java.lang.Class<?> returnType, java.lang.Class<?>[] paramTypes)
          Get method information.
protected abstract  java.lang.Object getProperty(Bindings bindings, ELContext context)
           
 java.lang.Class<?> getType(Bindings bindings, ELContext context)
          Get the value type accepted in ExpressionNode.setValue(Bindings, ELContext, Object).
 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()
           
 boolean isReadOnly(Bindings bindings, ELContext context)
          Determine whether ExpressionNode.setValue(Bindings, ELContext, Object) will throw a PropertyNotWritableException.
 void setValue(Bindings bindings, ELContext context, java.lang.Object value)
          Assign value.
 
Methods inherited from class de.odysseus.el.tree.impl.ast.AstNode
appendStructure, 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
 

Constructor Detail

AstProperty

public AstProperty(AstNode prefix,
                   boolean lvalue,
                   boolean strict)
Method Detail

getProperty

protected abstract java.lang.Object getProperty(Bindings bindings,
                                                ELContext context)
                                         throws ELException
Throws:
ELException

eval

public final java.lang.Object eval(Bindings bindings,
                                   ELContext context)
Specified by:
eval in class AstNode

isLiteralText

public final boolean isLiteralText()
Returns:
true if this node represents literal text

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).

getType

public final java.lang.Class<?> getType(Bindings bindings,
                                        ELContext context)
Description copied from interface: ExpressionNode
Get the value type accepted in ExpressionNode.setValue(Bindings, ELContext, Object).

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)
                         throws ELException
Description copied from interface: ExpressionNode
Determine whether ExpressionNode.setValue(Bindings, ELContext, Object) will throw a PropertyNotWritableException.

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

setValue

public final void setValue(Bindings bindings,
                           ELContext context,
                           java.lang.Object value)
                    throws ELException
Description copied from interface: ExpressionNode
Assign value.

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

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

getChild

public AstNode getChild(int i)
Description copied from interface: Node
Get i'th child


Copyright © 2006, 2007 Odysseus Software GmbH.