Class LocalVariableGen

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable, InstructionTargeter, NamedAndTyped

    public class LocalVariableGen
    extends java.lang.Object
    implements InstructionTargeter, NamedAndTyped, java.lang.Cloneable, java.io.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.
    See Also:
    LocalVariable, MethodGen, Serialized Form
    • Constructor Detail

      • LocalVariableGen

        public LocalVariableGen​(int index,
                                java.lang.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 Detail

      • getLocalVariable

        public LocalVariable getLocalVariable​(ConstantPoolGen 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:
        cp - constant pool
      • setIndex

        public void setIndex​(int index)
      • getIndex

        public int getIndex()
      • setName

        public void setName​(java.lang.String name)
        Specified by:
        setName in interface NamedAndTyped
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
        Returns:
        a hash code value for the object.
      • equals

        public boolean equals​(java.lang.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 java.lang.Object
      • toString

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

        public java.lang.Object clone()
        Overrides:
        clone in class java.lang.Object