1 package gov.nasa.jpf.jvm.bytecode; 20 21 import org.apache.bcel.classfile.ConstantPool; 22 23 27 public abstract class LocalVariableInstruction extends Instruction 28 implements VariableAccessor { 29 int index; 30 String varId; 31 32 public void setPeer (org.apache.bcel.generic.Instruction i, ConstantPool cp) { 33 index = ((org.apache.bcel.generic.LocalVariableInstruction) i).getIndex(); 34 } 35 36 public int getLocalVariableIndex() { 37 return index; 38 } 39 40 public String getLocalVariableName () { 41 String [] names = mi.getLocalVariableNames(); 42 43 if (names != null) { 44 return names[index]; 45 } else { 46 return "?"; 47 } 48 } 49 50 public String getLocalVariableType () { 51 String [] types = mi.getLocalVariableTypes(); 52 53 if (types != null) { 54 return types[index]; 55 } else { 56 return "?"; 57 } 58 } 59 60 public String getVariableId () { 61 if (varId == null) { 62 varId = mi.getClassInfo().getName() + '.' + mi.getUniqueName() + '.' + getLocalVariableName(); 63 } 64 65 return varId; 66 } 67 } 68 69 70 | Popular Tags |