1 package eu.svjatoslav.inspector.java.methods;
3 import java.util.ArrayList;
6 import eu.svjatoslav.commons.string.tokenizer.InvalidSyntaxException;
7 import eu.svjatoslav.commons.string.tokenizer.Tokenizer;
8 import eu.svjatoslav.commons.string.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 String getFullName() {
56 return packageName + "." + className;
59 public void parseClassBody(final Tokenizer tokenizer) {
60 tokenizer.skipUntilDataEnd();
64 public String toString() {
65 final EnumerationBuffer result = new EnumerationBuffer();
67 result.append(packageName + " -> " + className + " ");
70 result.append("(interface)");
72 result.append("(class)");
75 if (superClass != null)
76 result.append(" super: " + superClass.toString() + "\n");
78 if (implementedInterfaces.size() > 0) {
79 result.append(" implements: ");
80 for (final ClassReference classReference : implementedInterfaces)
81 result.appendEnumeration(classReference.toString());
85 return result.toString();