4 import IR.FieldDescriptor;
5 import IR.MethodDescriptor;
6 import IR.NameDescriptor;
8 public class ClassDescriptor {
9 public ClassDescriptor() {
16 NameDescriptor superclass;
21 public Iterator getMethods() {
22 return methods.iterator();
25 public String printTree(State state) {
27 String st=modifiers.toString()+"class "+classname;
29 st+="extends "+superclass.toString();
31 indent=TreeNode.INDENT;
32 for(int i=0;i<fields.size();i++) {
33 FieldDescriptor fd=(FieldDescriptor)fields.get(i);
34 st+=TreeNode.printSpace(indent)+fd.toString()+"\n";
39 for(int i=0;i<methods.size();i++) {
40 MethodDescriptor md=(MethodDescriptor)methods.get(i);
41 st+=TreeNode.printSpace(indent)+md.toString()+" ";
42 BlockNode bn=state.getMethodBody(md);
43 st+=bn.printNode(indent)+"\n\n";
49 public void addField(FieldDescriptor fd) {
53 public void addMethod(MethodDescriptor md) {
57 public void setModifiers(Modifiers modifiers) {
58 this.modifiers=modifiers;
61 public void setName(String name) {
65 public void setSuper(NameDescriptor superclass) {
66 this.superclass=superclass;