bsh
Class LHS

java.lang.Object
  extended bybsh.LHS
All Implemented Interfaces:
ParserConstants, java.io.Serializable

class LHS
extends java.lang.Object
implements ParserConstants, java.io.Serializable

An LHS is a wrapper for an variable, field, or property. It ordinarily holds the "left hand side" of an assignment and may be either resolved to a value or assigned a value.

There is one special case here termed METHOD_EVAL where the LHS is used in an intermediate evaluation of a chain of suffixes and wraps a method invocation. In this case it may only be resolved to a value and cannot be assigned. (You can't assign a value to the result of a method call e.g. "foo() = 5;").


Field Summary
(package private)  java.lang.reflect.Field field
           
(package private) static int FIELD
          Identifiers for the various types of LHS.
(package private)  int index
           
(package private) static int INDEX
          Identifiers for the various types of LHS.
(package private)  boolean localVar
          The assignment should be to a local variable
(package private) static int METHOD_EVAL
          Identifiers for the various types of LHS.
(package private)  NameSpace nameSpace
           
(package private)  java.lang.Object object
           
(package private) static int PROPERTY
          Identifiers for the various types of LHS.
(package private)  java.lang.String propName
           
(package private)  int type
           
(package private) static int VARIABLE
          Identifiers for the various types of LHS.
(package private)  java.lang.String varName
           
 
Fields inherited from interface bsh.ParserConstants
_DEFAULT, ABSTRACT, ANDASSIGN, ANDASSIGNX, ASSIGN, BANG, BIT_AND, BIT_ANDX, BIT_OR, BIT_ORX, BOOL_AND, BOOL_ANDX, BOOL_OR, BOOL_ORX, BOOLEAN, BREAK, BYTE, CASE, CATCH, CHAR, CHARACTER_LITERAL, CLASS, COLON, COMMA, CONST, CONTINUE, DECIMAL_LITERAL, DECR, DEFAULT, DIGIT, DO, DOT, DOUBLE, ELSE, ENUM, EOF, EQ, EXPONENT, EXTENDS, FALSE, FINAL, FINALLY, FLOAT, FLOATING_POINT_LITERAL, FOR, FORMAL_COMMENT, GE, GEX, GOTO, GT, GTX, HASH_BANG_COMMENT, HEX_LITERAL, HOOK, IDENTIFIER, IF, IMPLEMENTS, IMPORT, INCR, INSTANCEOF, INT, INTEGER_LITERAL, INTERFACE, LBRACE, LBRACKET, LE, LETTER, LEX, LONG, LPAREN, LSHIFT, LSHIFTASSIGN, LSHIFTASSIGNX, LSHIFTX, LT, LTX, MINUS, MINUSASSIGN, MOD, MODASSIGN, MULTI_LINE_COMMENT, NATIVE, NE, NEW, NONPRINTABLE, NULL, OCTAL_LITERAL, ORASSIGN, ORASSIGNX, PACKAGE, PLUS, PLUSASSIGN, PRIVATE, PROTECTED, PUBLIC, RBRACE, RBRACKET, RETURN, RPAREN, RSIGNEDSHIFT, RSIGNEDSHIFTASSIGN, RSIGNEDSHIFTASSIGNX, RSIGNEDSHIFTX, RUNSIGNEDSHIFT, RUNSIGNEDSHIFTASSIGN, RUNSIGNEDSHIFTASSIGNX, RUNSIGNEDSHIFTX, SEMICOLON, SHORT, SINGLE_LINE_COMMENT, SLASH, SLASHASSIGN, STAR, STARASSIGN, STATIC, STRICTFP, STRING_LITERAL, SWITCH, SYNCHRONIZED, THROW, THROWS, TILDE, tokenImage, TRANSIENT, TRUE, TRY, VOID, VOLATILE, WHILE, XOR, XORASSIGN
 
Constructor Summary
(package private) LHS(java.lang.reflect.Field field)
          Static field LHS Constructor.
(package private) LHS(NameSpace nameSpace, java.lang.String varName)
          Variable LHS constructor.
(package private) LHS(NameSpace nameSpace, java.lang.String varName, boolean localVar)
           
(package private) LHS(java.lang.Object object, java.lang.reflect.Field field)
          Object field LHS Constructor.
(package private) LHS(java.lang.Object array, int index)
          Array index LHS Constructor.
(package private) LHS(java.lang.Object object, java.lang.String propName)
          Object property LHS Constructor.
 
Method Summary
 java.lang.Object assign(java.lang.Object val, boolean strictJava)
          Assign a value to the LHS.
 java.lang.Object getValue()
           
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

nameSpace

NameSpace nameSpace

localVar

boolean localVar
The assignment should be to a local variable


VARIABLE

static final int VARIABLE
Identifiers for the various types of LHS.

See Also:
Constant Field Values

FIELD

static final int FIELD
Identifiers for the various types of LHS.

See Also:
Constant Field Values

PROPERTY

static final int PROPERTY
Identifiers for the various types of LHS.

See Also:
Constant Field Values

INDEX

static final int INDEX
Identifiers for the various types of LHS.

See Also:
Constant Field Values

METHOD_EVAL

static final int METHOD_EVAL
Identifiers for the various types of LHS.

See Also:
Constant Field Values

type

int type

varName

java.lang.String varName

propName

java.lang.String propName

field

java.lang.reflect.Field field

object

java.lang.Object object

index

int index
Constructor Detail

LHS

LHS(NameSpace nameSpace,
    java.lang.String varName)
Variable LHS constructor.


LHS

LHS(NameSpace nameSpace,
    java.lang.String varName,
    boolean localVar)
Parameters:
localVar - if true the variable is set directly in the This reference's local scope. If false recursion to look for the variable definition in parent's scope is allowed. (e.g. the default case for undefined vars going to global).

LHS

LHS(java.lang.reflect.Field field)
Static field LHS Constructor. This simply calls Object field constructor with null object.


LHS

LHS(java.lang.Object object,
    java.lang.reflect.Field field)
Object field LHS Constructor.


LHS

LHS(java.lang.Object object,
    java.lang.String propName)
Object property LHS Constructor.


LHS

LHS(java.lang.Object array,
    int index)
Array index LHS Constructor.

Method Detail

getValue

public java.lang.Object getValue()
                          throws UtilEvalError
Throws:
UtilEvalError

assign

public java.lang.Object assign(java.lang.Object val,
                               boolean strictJava)
                        throws UtilEvalError
Assign a value to the LHS.

Throws:
UtilEvalError

toString

public java.lang.String toString()