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;
15 public ClassReference superClass;
16 public List<ClassReference> implementedInterfaces = new ArrayList<ClassReference>();
18 public Clazz(final String packageName, final String className,
19 final Tokenizer tokenizer) throws InvalidSyntaxException {
20 this.packageName = packageName;
21 this.className = className;
24 final TokenizerMatch match = tokenizer.getToken();
26 if ("extends".equals(match.token)) {
27 superClass = new ClassReference(tokenizer);
31 if ("implements".equals(match.token)) {
33 implementedInterfaces.add(new ClassReference(tokenizer));
35 if (tokenizer.isNextToken(","))
43 if ("{".equals(match.token)) {
44 parseClassBody(tokenizer);
51 public void parseClassBody(final Tokenizer tokenizer) {
52 tokenizer.skipUtilEnd();
56 public String toString() {
57 final EnumerationBuffer result = new EnumerationBuffer();
59 result.append(packageName + " -> " + className + "\n");
60 if (superClass != null)
61 result.append(" super: " + superClass.toString() + "\n");
63 if (implementedInterfaces.size() > 0) {
64 result.append(" implements: ");
65 for (final ClassReference classReference : implementedInterfaces)
66 result.appendEnumeration(classReference.toString());
70 return result.toString();