X-Git-Url: http://www2.svjatoslav.eu/gitweb/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Feu%2Fsvjatoslav%2Finspector%2Fjava%2Fmethods%2FJavaFile.java;h=09469f80123d896886fff1f706c274543228a6d4;hb=7d1259aea992843c47f29c932434a88ea9364f7e;hp=df53ee89301cd331c3691a3e5c7a4cae5a1bee0a;hpb=93d3fd571ed634437334b78bec8fd725f4c90701;p=javainspect.git diff --git a/src/main/java/eu/svjatoslav/inspector/java/methods/JavaFile.java b/src/main/java/eu/svjatoslav/inspector/java/methods/JavaFile.java index df53ee8..09469f8 100755 --- a/src/main/java/eu/svjatoslav/inspector/java/methods/JavaFile.java +++ b/src/main/java/eu/svjatoslav/inspector/java/methods/JavaFile.java @@ -1,7 +1,7 @@ /* * JavaInspect - Utility to visualize java software - * Copyright (C) 2013-2017, Svjatoslav Agejenko, svjatoslav@svjatoslav.eu - * + * 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. @@ -17,13 +17,16 @@ import java.io.*; import java.util.ArrayList; import java.util.List; +import static eu.svjatoslav.commons.string.tokenizer.Terminator.TerminationStrategy.DROP; +import static eu.svjatoslav.commons.string.tokenizer.Terminator.TerminationStrategy.PRESERVE; + public class JavaFile { public static final String UTF_8 = "UTF-8"; - private final List imports = new ArrayList(); + public final List classes = new ArrayList<>(); + final StringBuffer contents = new StringBuffer(); + private final List imports = new ArrayList<>(); private final File file; - public List classes = new ArrayList(); - StringBuffer contents = new StringBuffer(); private String packageName; public JavaFile(final File file) throws IOException, InvalidSyntaxException { @@ -39,25 +42,25 @@ public class JavaFile { final Tokenizer tokenizer = new Tokenizer(contents.toString()); // empty space - tokenizer.addTerminator(" ", true); - tokenizer.addTerminator("\t", true); - tokenizer.addTerminator("\n", true); - - tokenizer.addTerminator(";", false); - tokenizer.addTerminator("{", false); - tokenizer.addTerminator("}", false); - tokenizer.addTerminator("(", false); - tokenizer.addTerminator(")", false); - tokenizer.addTerminator("[", false); - tokenizer.addTerminator("]", false); - tokenizer.addTerminator("<", false); - tokenizer.addTerminator(">", false); - tokenizer.addTerminator(",", false); - tokenizer.addTerminator("@", false); + tokenizer.addTerminator(" ", DROP); + tokenizer.addTerminator("\t", DROP); + tokenizer.addTerminator("\n", DROP); + + tokenizer.addTerminator(";", PRESERVE); + tokenizer.addTerminator("{", PRESERVE); + tokenizer.addTerminator("}", PRESERVE); + tokenizer.addTerminator("(", PRESERVE); + tokenizer.addTerminator(")", PRESERVE); + tokenizer.addTerminator("[", PRESERVE); + tokenizer.addTerminator("]", PRESERVE); + tokenizer.addTerminator("<", PRESERVE); + tokenizer.addTerminator(">", PRESERVE); + tokenizer.addTerminator(",", PRESERVE); + tokenizer.addTerminator("@", PRESERVE); // comments - tokenizer.addTerminator("//", "\n", true); - tokenizer.addTerminator("/*", "*/", true); + tokenizer.addTerminator("//", "\n", DROP); + tokenizer.addTerminator("/*", "*/", DROP); final Modifiers modifiers = new Modifiers(); @@ -129,7 +132,7 @@ public class JavaFile { imports.add(imp); - tokenizer.expectNextToken(";"); + tokenizer.expectAndConsumeNextToken(";"); } private void parseInterface(final Tokenizer tokenizer) @@ -148,7 +151,7 @@ public class JavaFile { packageName = match.token; - tokenizer.expectNextToken(";"); + tokenizer.expectAndConsumeNextToken(";"); } private void readFile() throws IOException { @@ -170,7 +173,7 @@ public class JavaFile { inputStream.close(); } - public void skipUntilSemicolon(final Tokenizer tokenizer) { + public void skipUntilSemicolon(final Tokenizer tokenizer) throws InvalidSyntaxException { while (true) { final TokenizerMatch token = tokenizer.getNextToken();