X-Git-Url: http://www2.svjatoslav.eu/gitweb/?p=javainspect.git;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Feu%2Fsvjatoslav%2Finspector%2Fjava%2Fmethods%2FClazz.java;h=585cfd0c69969a8e685e91a35c4257f5f93504ef;hp=fda73d13e842628b3925d6cbcc8c007b4ff66a45;hb=b2f519fd934cd49afbb5cfc88b3d2be396af0afa;hpb=9811fe796d6f549151ab904714e1a65ff2839ee2 diff --git a/src/main/java/eu/svjatoslav/inspector/java/methods/Clazz.java b/src/main/java/eu/svjatoslav/inspector/java/methods/Clazz.java old mode 100644 new mode 100755 index fda73d1..585cfd0 --- a/src/main/java/eu/svjatoslav/inspector/java/methods/Clazz.java +++ b/src/main/java/eu/svjatoslav/inspector/java/methods/Clazz.java @@ -1,73 +1,96 @@ +/* + * JavaInspect - Utility to visualize java software + * Copyright (C) 2013-2020, Svjatoslav Agejenko, svjatoslav@svjatoslav.eu + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of version 3 of the GNU Lesser General Public License + * or later as published by the Free Software Foundation. + */ + package eu.svjatoslav.inspector.java.methods; +import eu.svjatoslav.commons.string.tokenizer.InvalidSyntaxException; +import eu.svjatoslav.commons.string.tokenizer.Tokenizer; +import eu.svjatoslav.commons.string.tokenizer.TokenizerMatch; + import java.util.ArrayList; import java.util.List; -import eu.svjatoslav.inspector.tokenizer.InvalidSyntaxException; -import eu.svjatoslav.inspector.tokenizer.Tokenizer; -import eu.svjatoslav.inspector.tokenizer.TokenizerMatch; - public class Clazz { - private final String packageName; - private final String className; + public final List implementedInterfaces = new ArrayList<>(); + private final String packageName; + private final String className; + private final boolean isInterface; + public ClassReference superClass; + + public Clazz(final String packageName, final String className, + final Tokenizer tokenizer, final boolean isInterface) + throws InvalidSyntaxException { + + this.packageName = packageName; + this.className = className; + this.isInterface = isInterface; + + while (true) { + final TokenizerMatch match = tokenizer.getNextToken(); - public ClassReference superClass; - public List implementedInterfaces = new ArrayList(); + if ("extends".equals(match.token)) { + superClass = new ClassReference(tokenizer); + continue; + } - public Clazz(final String packageName, final String className, - final Tokenizer tokenizer) throws InvalidSyntaxException { - this.packageName = packageName; - this.className = className; + if ("implements".equals(match.token)) { + while (true) { + implementedInterfaces.add(new ClassReference(tokenizer)); - while (true) { - final TokenizerMatch match = tokenizer.getToken(); + if (tokenizer.consumeIfNextToken(",")) + continue; - if ("extends".equals(match.token)) { - superClass = new ClassReference(tokenizer); - continue; - } + break; + } + continue; + } - if ("implements".equals(match.token)) { - while (true) { - implementedInterfaces.add(new ClassReference(tokenizer)); + if ("{".equals(match.token)) { + parseClassBody(tokenizer); + break; + } - if (tokenizer.isNextToken(",")) - continue; + } + } - break; - } - continue; - } + public String getFullName() { + return packageName + "." + className; + } - if ("{".equals(match.token)) { - parseClassBody(tokenizer); - break; - } + public void parseClassBody(final Tokenizer tokenizer) { + tokenizer.skipUntilDataEnd(); + } - } - } + @Override + public String toString() { + final EnumerationBuffer result = new EnumerationBuffer(); - public void parseClassBody(final Tokenizer tokenizer) { - tokenizer.skipUtilEnd(); - } + result.append(packageName + " -> " + className + " "); - @Override - public String toString() { - final EnumerationBuffer result = new EnumerationBuffer(); + if (isInterface) + result.append("(interface)"); + else + result.append("(class)"); + result.append("\n"); - result.append(packageName + " -> " + className + "\n"); - if (superClass != null) - result.append(" super: " + superClass.toString() + "\n"); + if (superClass != null) + result.append(" super: " + superClass.toString() + "\n"); - if (implementedInterfaces.size() > 0) { - result.append(" implements: "); - for (final ClassReference classReference : implementedInterfaces) - result.appendEnumeration(classReference.toString()); - result.append("\n"); - } + if (implementedInterfaces.size() > 0) { + result.append(" implements: "); + for (final ClassReference classReference : implementedInterfaces) + result.appendEnumeration(classReference.toString()); + result.append("\n"); + } - return result.toString(); - } + return result.toString(); + } }