org.omegahat.Environment.Parser.Parse
Class DynamicFieldAccess

java.lang.Object
  |
  +--antlr.BaseAST
        |
        +--antlr.CommonAST
              |
              +--org.omegahat.Environment.Parser.Parse.BasicExpression
                    |
                    +--org.omegahat.Environment.Parser.Parse.ElementAccess
                          |
                          +--org.omegahat.Environment.Parser.Parse.FieldAccess
                                |
                                +--org.omegahat.Environment.Parser.Parse.DynamicFieldAccess
All Implemented Interfaces:
antlr.collections.AST, Evaluable, ExpressionInt, OmegaTokenTypes, java.lang.Runnable, java.io.Serializable, Subsettable, TreeNodeInt

public class DynamicFieldAccess
extends FieldAccess

Provides the regular field access for an object and additional facilities for probing objects which implement the DynamicFieldAccessInt for entries that are not officially fields - e.g. a named entry in a Hashtable.

See Also:
Serialized Form

Fields inherited from class org.omegahat.Environment.Parser.Parse.ElementAccess
elementName, isGlobal, isSuper, qualifier
 
Fields inherited from class org.omegahat.Environment.Parser.Parse.BasicExpression
children, comments, isActive, parent, POST, PRE
 
Fields inherited from class antlr.BaseAST
down, right
 
Fields inherited from interface org.omegahat.Environment.Parser.AntlrParser.OmegaTokenTypes
ABSTRACT, ARG_LIST, ARRAY_DECLARATOR, ARRAY_INIT, ASSIGN, BAND, BAND_ASSIGN, BLOCK, BNOT, BOR, BOR_ASSIGN, BREAK, BSR, BSR_ASSIGN, BXOR, BXOR_ASSIGN, CHAR_LITERAL, CLASS_DEF, COLON, COMMA, CONTINUE, CTOR_DEF, DEC, DIV, DIV_ASSIGN, DOT, DOTS, EAGER, ELEMENT_OP, EOF, EQUAL, ESC, EXPONENT, EXPONENT_OP, EXPR, EXTENDS_CLAUSE, FINAL, FLOAT_SUFFIX, FUNCTION, GE, GT, HEX_DIGIT, IDENT, IMPLEMENTS_CLAUSE, IMPORT, INC, INDEX_OP, INSTANCE_INIT, INSTANCEOF, INTERFACE_DEF, LABELED_STAT, LAND, LAZY, LBRACK, LCURLY, LE, LITERAL_abstract, LITERAL_boolean, LITERAL_break, LITERAL_byte, LITERAL_case, LITERAL_catch, LITERAL_char, LITERAL_class, LITERAL_const, LITERAL_continue, LITERAL_default, LITERAL_do, LITERAL_double, LITERAL_eager, LITERAL_else, LITERAL_extends, LITERAL_false, LITERAL_final, LITERAL_finally, LITERAL_float, LITERAL_for, LITERAL_function, LITERAL_global, LITERAL_if, LITERAL_implements, LITERAL_import, LITERAL_in, LITERAL_instanceof, LITERAL_int, LITERAL_interface, LITERAL_lazy, LITERAL_long, LITERAL_method, LITERAL_native, LITERAL_new, LITERAL_null, LITERAL_private, LITERAL_protected, LITERAL_public, LITERAL_return, LITERAL_short, LITERAL_static, LITERAL_super, LITERAL_switch, LITERAL_synchronized, LITERAL_this, LITERAL_threadsafe, LITERAL_throw, LITERAL_throws, LITERAL_transient, LITERAL_true, LITERAL_try, LITERAL_void, LITERAL_while, LNOT, LOR, LPAREN, LT, METHOD, METHOD_CALL, METHOD_DEF, MINUS, MINUS_ASSIGN, MISSING_ARG, ML_COMMENT, MOD, MOD_ASSIGN, MODIFIERS, NOT_EQUAL, NULL_TREE_LOOKAHEAD, NUM_FLOAT, NUM_INT, NUM_LONG, OBJBLOCK, PACKAGE_DEF, PARAMETER_DEF, PARAMETERS, PLUS, PLUS_ASSIGN, POST_DEC, POST_INC, QUESTION, RBRACK, RCURLY, RETURN, RPAREN, SEMI, SEQUENCE_OP, SL, SL_ASSIGN, SL_COMMENT, SLIST, SR, SR_ASSIGN, STAR, STAR_ASSIGN, STATIC_INIT, STRING_LITERAL, SYNCHRONIZED, THROW, TRANSIENT, TYPE, TYPECAST, UNARY_MINUS, UNARY_PLUS, VARIABLE_DEF, VOCAB, WS
 
Constructor Summary
DynamicFieldAccess(ExpressionInt qualifier, java.lang.String id)
           
DynamicFieldAccess(Name n)
           
DynamicFieldAccess(java.lang.String n)
          Version that has no qualifier and just identifies the field name, used when constructing incomplete specifications for example in loops
 
Method Summary
 java.lang.Object getFieldValue(java.lang.Object src, java.lang.Class cl, Evaluator evaluator)
           
 
Methods inherited from class org.omegahat.Environment.Parser.Parse.FieldAccess
eval, fieldName, fieldName, findMethod, getField, getFieldValue, getReferencedVariables, getTargetObject, toString
 
Methods inherited from class org.omegahat.Environment.Parser.Parse.ElementAccess
elementName, elementName, getFirstChild, isGlobal, isGlobal, isSuper, isSuper, qualifier, qualifier, qualifierEval
 
Methods inherited from class org.omegahat.Environment.Parser.Parse.BasicExpression
addChild, addComment, apply, apply, apply, children, children, comment, comment, depth, error, eval, evalInit, evaluationFrame, evaluator, getReferencedVariables, getReferencedVariables, getReferencedVariables, isActive, isActive, parent, parent, postComment, postComment, preComment, preComment, render, replaceChild, resolve, run, setParent, setParent, setParent, setParent, showComments, showComments, subset, substitute, substitute
 
Methods inherited from class antlr.CommonAST
getText, getType, initialize, initialize, initialize, setText, setType
 
Methods inherited from class antlr.BaseAST
addChild, equals, equalsList, equalsListPartial, equalsTree, equalsTreePartial, findAll, findAllPartial, getNextSibling, removeChildren, setFirstChild, setNextSibling, setVerboseStringConversion, toStringList, toStringTree
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.omegahat.Environment.Parser.Parse.ExpressionInt
error, resolve, substitute
 
Methods inherited from interface org.omegahat.Environment.Parser.Parse.TreeNodeInt
addChild, children, depth, parent, parent, replaceChild
 
Methods inherited from interface org.omegahat.Environment.Language.Evaluable
eval
 

Constructor Detail

DynamicFieldAccess

public DynamicFieldAccess(ExpressionInt qualifier,
                          java.lang.String id)

DynamicFieldAccess

public DynamicFieldAccess(Name n)

DynamicFieldAccess

public DynamicFieldAccess(java.lang.String n)
Version that has no qualifier and just identifies the field name, used when constructing incomplete specifications for example in loops
Method Detail

getFieldValue

public java.lang.Object getFieldValue(java.lang.Object src,
                                      java.lang.Class cl,
                                      Evaluator evaluator)
                               throws java.lang.Throwable
Overrides:
getFieldValue in class FieldAccess