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.Objectimplements 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
Methods inherited from class java.lang.Object
finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
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 variablename
- its nametype
- its typestart
- from where the instruction is valid (null means from the start)end
- until where the instruction is valid (null means to the end)
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 tocp
- 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 endnew_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