1 package serp.bytecode;
2
3 import serp.bytecode.visitor.*;
4
5
6
7
8
9
10
11 public class LocalVariableTable extends LocalTable {
12 LocalVariableTable(int nameIndex, Attributes owner) {
13 super(nameIndex, owner);
14 }
15
16
17
18
19 public LocalVariable[] getLocalVariables() {
20 return (LocalVariable[]) getLocals();
21 }
22
23
24
25
26 public LocalVariable getLocalVariable(int local) {
27 return (LocalVariable) getLocal(local);
28 }
29
30
31
32
33
34 public LocalVariable getLocalVariable(String name) {
35 return (LocalVariable) getLocal(name);
36 }
37
38
39
40
41 public LocalVariable[] getLocalVariables(String name) {
42 return (LocalVariable[]) getLocals(name);
43 }
44
45
46
47
48
49
50
51 public LocalVariable addLocalVariable(LocalVariable local) {
52 return (LocalVariable) addLocal(local);
53 }
54
55
56
57
58 public LocalVariable addLocalVariable() {
59 return (LocalVariable) addLocal();
60 }
61
62
63
64
65 public LocalVariable addLocalVariable(String name, String type) {
66 return (LocalVariable) addLocal(name, type);
67 }
68
69
70
71
72 public LocalVariable addLocalVariable(String name, Class type) {
73 String typeName = (type == null) ? null : type.getName();
74 return addLocalVariable(name, typeName);
75 }
76
77
78
79
80 public LocalVariable addLocalVariable(String name, BCClass type) {
81 String typeName = (type == null) ? null : type.getName();
82 return addLocalVariable(name, typeName);
83 }
84
85 public void acceptVisit(BCVisitor visit) {
86 visit.enterLocalVariableTable(this);
87 LocalVariable[] locals = (LocalVariable[]) getLocals();
88 for (int i = 0; i < locals.length; i++)
89 locals[i].acceptVisit(visit);
90 visit.exitLocalVariableTable(this);
91 }
92
93 protected Local newLocal() {
94 return new LocalVariable(this);
95 }
96
97 protected Local[] newLocalArray(int size) {
98 return new LocalVariable[size];
99 }
100 }