bcel API: Class LocalVariableGen

org.apache.bcel.generic
Class LocalVariableGen

java.lang.Object
  |
  +--org.apache.bcel.generic.LocalVariableGen
All Implemented Interfaces:
java.lang.Cloneable, InstructionTargeter, NamedAndTyped

public class LocalVariableGen
extends java.lang.Object
implements InstructionTargeter, NamedAndTyped, java.lang.Cloneable

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.2 2001/12/14 18:32:54 mdahm Exp $
Author:
M. Dahm
See Also:
LocalVariable, MethodGen

Constructor Summary
LocalVariableGen(int index, java.lang.String name, Type type, InstructionHandle start, InstructionHandle end)
          Generate a local variable that with index `index'.
 
Method Summary
 java.lang.Object clone()
           
 boolean containsTarget(InstructionHandle ih)
           
 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.
 InstructionHandle getEnd()
           
 int getIndex()
           
 LocalVariable getLocalVariable(ConstantPoolGen cp)
          Get LocalVariable object.
 java.lang.String getName()
           
 InstructionHandle getStart()
           
 Type getType()
           
 void setEnd(InstructionHandle end)
           
 void setIndex(int index)
           
 void setName(java.lang.String name)
           
 void setStart(InstructionHandle start)
           
 void setType(Type type)
           
 java.lang.String toString()
           
 void updateTarget(InstructionHandle old_ih, InstructionHandle new_ih)
           
 
Methods inherited from class java.lang.Object
finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

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:
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(java.lang.String name)
Specified by:
setName in interface NamedAndTyped

getName

public java.lang.String getName()
Specified by:
getName in interface NamedAndTyped

setType

public void setType(Type type)
Specified by:
setType in interface NamedAndTyped

getType

public Type getType()
Specified by:
getType in interface NamedAndTyped

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(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