net.janino
Class  Java.ArrayAccessExpression
java.lang.Object
  |
  +--net.janino.Java.Located
        |
        +--net.janino.Java.Atom
              |
              +--net.janino.Java.Rvalue
                    |
                    +--net.janino.Java.Lvalue
                          |
                          +--net.janino.Java.ArrayAccessExpression
- All Implemented Interfaces: 
- Java.Locatable
- Enclosing class: 
- Java
- public static class Java.ArrayAccessExpression
- extends Java.Lvalue
This class implements an array access.
 
 
 
 
 
| Methods inherited from class net.janino.Java.Atom | 
| addConstantFloatInfo, addConstantIntegerInfo, addConstantStringInfo, allocateLocalVariable, compileError, createDummyCodeAttribute, getLocation, isType, newInserter, newOffset, newUnsetOffset, popInserter, pushInserter, restoreLocalVariables, saveLocalVariables, throwParseException, toLvalueOrCE, toLvalueOrPE, toRvalueOrCE, toRvalueOrPE, toType, toTypeOrCE, toTypeOrPE, write, writeBranch, writeByte, writeConstantClassInfo, writeConstantDoubleInfo, writeConstantFieldrefInfo, writeConstantFloatInfo, writeConstantIntegerInfo, writeConstantInterfaceMethodrefInfo, writeConstantLongInfo, writeConstantMethodrefInfo, writeConstantStringInfo, writeInt, writeOffset, writeOpcode, writeShort | 
 
| Methods inherited from class java.lang.Object | 
| clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | 
 
Java.ArrayAccessExpression
public Java.ArrayAccessExpression(Scanner.Location location,
                                  Java.Rvalue lhs,
                                  Java.Rvalue index)
getType
public IClass getType()
               throws Java.CompileException
- 
- Overrides:
- getTypein class- Java.Atom
 
compileContext
public int compileContext()
                   throws Java.CompileException
- Description copied from class: Java.Rvalue
- Generates code that determines the context of the Java.Rvalueand puts it on the operand stack. Most expressions
 do not have a "context", but some do. E.g. for "x[y]", the context
 is "x, y". The bottom line is that for statements like "x[y] += 3"
 the context is only evaluated once.
- 
- Overrides:
- compileContextin class- Java.Rvalue
 
- Following copied from class: net.janino.Java.Rvalue
- 
- Returns:
- The size of the context on the operand stack
 
compileGet
public IClass compileGet()
                  throws Java.CompileException
- Description copied from class: Java.Rvalue
- Generates code that determines the value of the Java.Rvalueand puts it on the operand stack. This method relies on that the
 "context" of theJava.Rvalueis on top of the operand stack
 (seeJava.Rvalue.compileContext()).
- 
- Overrides:
- compileGetin class- Java.Rvalue
 
- Following copied from class: net.janino.Java.Rvalue
- 
- Returns:
- The type of the Java.Rvalue
 
compileSet
public void compileSet(IClass valueType,
                       java.lang.Object optionalConstantValue)
                throws Java.CompileException
- Description copied from class: Java.Lvalue
- Generates code that stores a value in the Java.Lvalue.
 Expects theJava.Lvalue's context (seeJava.Rvalue.compileContext()) and a value of type "valueType" on the operand
 stack.
 If optionalConstantValueis not null, then the stack
 top value is identical to it; this allows for "primitive constant
 assignment conversion" (JLS 5.2).
 
- 
- Overrides:
- compileSetin class- Java.Lvalue