Class LocalVariableGen

java.lang.Object
org.aspectj.apache.bcel.generic.LocalVariableGen
All Implemented Interfaces:
Serializable, Cloneable, InstructionTargeter

public class LocalVariableGen extends Object implements InstructionTargeter, Cloneable, Serializable
This class represents a local variable within a method. It contains its scope, name and type. The generated LocalVariable object can be obtained with getLocalVariable which needs the instruction list and the constant pool as parameters.
Version:
$Id: LocalVariableGen.java,v 1.7 2008/08/28 00:04:23 aclement Exp $
Author:
M. Dahm
See Also:
LocalVariable, MethodGen, Serialized Form
  • Constructor Details

    • LocalVariableGen

      public LocalVariableGen(int index, String name, Type type, InstructionHandle start, InstructionHandle end)
      Generate a local variable that with index `index'. Note that double and long variables need two indexs. Index indices have to be provided by the user.
      Parameters:
      index - index of local variable
      name - its name
      type - its type
      start - from where the instruction is valid (null means from the start)
      end - until where the instruction is valid (null means to the end)
  • Method Details

    • getLocalVariable

      public LocalVariable getLocalVariable(ConstantPool cp)
      Get LocalVariable object. This relies on that the instruction list has already been dumped to byte code or or that the `setPositions' methods has been called for the instruction list. Note that for local variables whose scope end at the last instruction of the method's code, the JVM specification is ambiguous: both a start_pc+length ending at the last instruction and start_pc+length ending at first index beyond the end of the code are valid.
      Parameters:
      il - instruction list (byte code) which this variable belongs to
      cp - constant pool
    • setIndex

      public void setIndex(int index)
    • getIndex

      public int getIndex()
    • setName

      public void setName(String name)
    • getName

      public String getName()
    • setType

      public void setType(Type type)
    • getType

      public Type getType()
    • getStart

      public InstructionHandle getStart()
    • getEnd

      public InstructionHandle getEnd()
    • setStart

      public void setStart(InstructionHandle start)
    • setEnd

      public void setEnd(InstructionHandle end)
    • updateTarget

      public void updateTarget(InstructionHandle old_ih, InstructionHandle new_ih)
      Specified by:
      updateTarget in interface InstructionTargeter
      Parameters:
      old_ih - old target, either start or end
      new_ih - new target
    • containsTarget

      public boolean containsTarget(InstructionHandle ih)
      Specified by:
      containsTarget in interface InstructionTargeter
      Returns:
      true, if ih is target of this variable
    • equals

      public boolean equals(Object o)
      We consider to local variables to be equal, if the use the same index and are valid in the same range.
      Overrides:
      equals in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • clone

      public Object clone()
      Overrides:
      clone in class Object