1 package eu.svjatoslav.inspector.java.methods;
3 import java.util.ArrayList;
6 import eu.svjatoslav.inspector.tokenizer.InvalidSyntaxException;
7 import eu.svjatoslav.inspector.tokenizer.Tokenizer;
8 import eu.svjatoslav.inspector.tokenizer.TokenizerMatch;
12 private final String packageName;
13 private final String className;
14 private final boolean isInterface;
16 public ClassReference superClass;
17 public List<ClassReference> implementedInterfaces = new ArrayList<ClassReference>();
19 public Clazz(final String packageName, final String className,
20 final Tokenizer tokenizer, final boolean isInterface)
21 throws InvalidSyntaxException {
23 this.packageName = packageName;
24 this.className = className;
25 this.isInterface = isInterface;
28 final TokenizerMatch match = tokenizer.getNextToken();
30 if ("extends".equals(match.token)) {
31 superClass = new ClassReference(tokenizer);
35 if ("implements".equals(match.token)) {
37 implementedInterfaces.add(new ClassReference(tokenizer));
39 if (tokenizer.probeNextToken(","))
47 if ("{".equals(match.token)) {
48 parseClassBody(tokenizer);
55 public void parseClassBody(final Tokenizer tokenizer) {
56 tokenizer.skipUntilDataEnd();
60 public String toString() {
61 final EnumerationBuffer result = new EnumerationBuffer();
63 result.append(packageName + " -> " + className + " ");
66 result.append("(interface)");
68 result.append("(class)");
71 if (superClass != null)
72 result.append(" super: " + superClass.toString() + "\n");
74 if (implementedInterfaces.size() > 0) {
75 result.append(" implements: ");
76 for (final ClassReference classReference : implementedInterfaces)
77 result.appendEnumeration(classReference.toString());
81 return result.toString();