1 30 31 package oracle.toplink.libraries.asm.tree; 32 33 import oracle.toplink.libraries.asm.ClassVisitor; 34 import oracle.toplink.libraries.asm.Attribute; 35 36 import java.util.List ; 37 import java.util.ArrayList ; 38 import java.util.Arrays ; 39 40 45 46 public class ClassNode { 47 48 51 52 public int version; 53 54 58 59 public int access; 60 61 65 66 public String name; 67 68 74 75 public String superName; 76 77 82 83 public final List interfaces; 84 85 89 90 public String sourceFile; 91 92 96 97 public final List innerClasses; 98 99 103 104 public final List fields; 105 106 110 111 public final List methods; 112 113 116 117 public Attribute attrs; 118 119 137 138 public ClassNode ( 139 final int version, 140 final int access, 141 final String name, 142 final String superName, 143 final String [] interfaces, 144 final String sourceFile) 145 { 146 this.version = version; 147 this.access = access; 148 this.name = name; 149 this.superName = superName; 150 this.interfaces = new ArrayList (); 151 this.sourceFile = sourceFile; 152 this.innerClasses = new ArrayList (); 153 this.fields = new ArrayList (); 154 this.methods = new ArrayList (); 155 if (interfaces != null) { 156 this.interfaces.addAll(Arrays.asList(interfaces)); 157 } 158 } 159 160 165 166 public void accept (final ClassVisitor cv) { 167 String [] interfaces = new String [this.interfaces.size()]; 169 this.interfaces.toArray(interfaces); 170 cv.visit(version, access, name, superName, interfaces, sourceFile); 171 int i; 173 for (i = 0; i < innerClasses.size(); ++i) { 174 ((InnerClassNode)innerClasses.get(i)).accept(cv); 175 } 176 for (i = 0; i < fields.size(); ++i) { 178 ((FieldNode)fields.get(i)).accept(cv); 179 } 180 for (i = 0; i < methods.size(); ++i) { 182 ((MethodNode)methods.get(i)).accept(cv); 183 } 184 Attribute attrs = this.attrs; 186 while (attrs != null) { 187 cv.visitAttribute(attrs); 188 attrs = attrs.next; 189 } 190 cv.visitEnd(); 192 } 193 } 194 | Popular Tags |