1 26 package net.sf.javaguard.classfile; 27 28 import java.io.*; 29 30 31 36 public class LocalVariableInfo { 37 38 private int startPc; 39 40 private int length; 41 42 private int nameIndex; 43 44 private int descriptorIndex; 45 46 private int index; 47 48 49 50 51 56 public static LocalVariableInfo create(DataInput din) 57 throws IOException { 58 LocalVariableInfo lvi = new LocalVariableInfo(); 59 lvi.read(din); 60 return lvi; 61 } 62 63 64 65 66 68 private LocalVariableInfo() { 69 } 70 71 72 73 77 protected void setStartPc(int pc) { 78 this.startPc = pc; 79 } 80 81 82 86 protected int getStartPc() { 87 return startPc; 88 } 89 90 91 92 93 97 protected void setLength(int len) { 98 this.length = len; 99 } 100 101 102 106 protected int getLength() { 107 return length; 108 } 109 110 111 112 113 117 protected void setNameIndex(int index) { 118 nameIndex = index; 119 } 120 121 122 126 protected int getNameIndex() { 127 return nameIndex; 128 } 129 130 131 132 133 137 protected void setDescriptorIndex(int index) { 138 descriptorIndex = index; 139 } 140 141 142 146 protected int getDescriptorIndex() { 147 return descriptorIndex; 148 } 149 150 151 152 156 protected void setIndex(int index) { 157 this.index = index; 158 } 159 160 161 165 protected int getIndex() { 166 return index; 167 } 168 169 170 171 172 175 protected void markUtf8Refs(ConstantPool pool) { 176 pool.incRefCount(getNameIndex()); 177 pool.incRefCount(getDescriptorIndex()); 178 } 179 180 181 182 183 187 private void read(DataInput din) 188 throws IOException { 189 setStartPc(din.readUnsignedShort()); 190 setLength(din.readUnsignedShort()); 191 setNameIndex(din.readUnsignedShort()); 192 setDescriptorIndex(din.readUnsignedShort()); 193 setIndex(din.readUnsignedShort()); 194 } 195 196 197 201 public void write(DataOutput dout) 202 throws IOException { 203 dout.writeShort(getStartPc()); 204 dout.writeShort(getLength()); 205 dout.writeShort(getNameIndex()); 206 dout.writeShort(getDescriptorIndex()); 207 dout.writeShort(getIndex()); 208 } 209 210 211 212 213 217 public void dump(PrintWriter pw, ClassFile cf) { 218 pw.print("StartPC: "); 219 pw.println(getStartPc()); 220 pw.print("Length: "); 221 pw.println(getLength()); 222 pw.print("Name index: "); 223 pw.println(getNameIndex()); 224 pw.print("Descriptor index: "); 225 pw.println(getDescriptorIndex()); 226 pw.print("Index: "); 227 pw.println(getIndex()); 228 } 229 } 230 | Popular Tags |