Class LocalVariableGen

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

    public class LocalVariableGen
    extends java.lang.Object
    implements InstructionTargeter, NamedAndTyped, java.lang.Cloneable
    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
    • 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)
      • LocalVariableGen

        public LocalVariableGen​(int index,
                                java.lang.String name,
                                Type type,
                                InstructionHandle start,
                                InstructionHandle end,
                                int origIndex)
        Generates 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)
        origIndex - index of local variable prior to any changes to index
    • Method Detail

      • getLocalVariable

        public LocalVariable getLocalVariable​(ConstantPoolGen cp)
        Gets 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 due to the conversion from byte code offset to InstructionHandle, it is impossible to tell the difference between a live range that ends BEFORE the last insturction of the method or a live range that ends AFTER the last instruction of the method. Hence the liveToEnd flag to differentiate between these two cases.
        Parameters:
        cp - constant pool
      • setIndex

        public void setIndex​(int index)
      • getIndex

        public int getIndex()
      • getOrigIndex

        public int getOrigIndex()
      • setLiveToEnd

        public void setLiveToEnd​(boolean live_to_end)
      • getLiveToEnd

        public boolean getLiveToEnd()
      • 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
      • 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