Checking in updates
[IRC.git] / Robust / src / IR / Tree / ClassNode.java
1 package IR.Tree;
2 import java.util.Vector;
3 import IR.FieldDescriptor;
4 import IR.MethodDescriptor;
5 import IR.NameDescriptor;
6
7 class ClassNode extends TreeNode {
8     ClassNode() {
9         classname=null;
10         superclass=null;
11         fields=new Vector();
12         methods=new Vector();
13     }
14     String classname;
15     NameDescriptor superclass;
16     Modifiers modifiers;
17     Vector fields;
18     Vector methods;
19     
20     public String printNode() {
21         String st=modifiers.toString()+classname;
22         if (superclass!=null) 
23             st+="extends "+superclass.toString();
24         st+=" {\n";
25         for(int i=0;i<fields.size();i++) {
26             FieldDescriptor fd=(FieldDescriptor)fields.get(i);
27             st+=fd.toString()+"\n";
28         }
29
30         for(int i=0;i<methods.size();i++) {
31             MethodDescriptor md=(MethodDescriptor)methods.get(i);
32             st+=md.toString()+"\n";
33         }
34         st+="}\n";
35         return st;
36     }
37
38     public void addField(FieldDescriptor fd) {
39         fields.add(fd);
40     }
41
42     public void addMethod(MethodDescriptor md) {
43         methods.add(md);
44     }
45
46     public void setModifiers(Modifiers modifiers) {
47         this.modifiers=modifiers;
48     }
49     void setName(String name) {
50         classname=name;
51     }
52     void setSuper(NameDescriptor superclass) {
53         this.superclass=superclass;
54     }
55 }