Updated copyright info
[javainspect.git] / src / main / java / eu / svjatoslav / inspector / java / methods / JavaFile.java
index 29f1a1c..09469f8 100755 (executable)
@@ -1,7 +1,7 @@
 /*
  * JavaInspect - Utility to visualize java software
- * Copyright (C) 2013-2015, 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<Import> imports = new ArrayList<Import>();
+    public final List<Clazz> classes = new ArrayList<>();
+    final StringBuffer contents = new StringBuffer();
+    private final List<Import> imports = new ArrayList<>();
     private final File file;
-    public List<Clazz> classes = new ArrayList<Clazz>();
-    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();