Use common library to read file content.
[javainspect.git] / src / main / java / eu / svjatoslav / inspector / java / methods / ProjectScanner.java
index 91e0148..c68865d 100755 (executable)
@@ -1,7 +1,7 @@
 /*
  * JavaInspect - Utility to visualize java software
- * Copyright (C) 2013-2014, 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.
@@ -9,6 +9,9 @@
 
 package eu.svjatoslav.inspector.java.methods;
 
+import eu.svjatoslav.commons.file.FilePathParser;
+import eu.svjatoslav.commons.string.tokenizer.InvalidSyntaxException;
+
 import java.io.File;
 import java.io.IOException;
 import java.util.ArrayList;
@@ -16,71 +19,69 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-import eu.svjatoslav.commons.file.FilePathParser;
-import eu.svjatoslav.commons.string.tokenizer.InvalidSyntaxException;
-
 public class ProjectScanner {
 
-       private final File scanPath;
+    public final List<JavaFile> javaFiles = new ArrayList<>();
+    private final File scanPath;
+    Map<File, Project> projects = new HashMap<>();
 
-       Map<File, Project> projects = new HashMap<File, Project>();
-       public List<JavaFile> javaFiles = new ArrayList<JavaFile>();
+    public ProjectScanner(final File projectPath) {
+        scanPath = projectPath;
+        parse();
+    }
 
-       public ProjectScanner(final File projectPath) {
-               scanPath = projectPath;
-               parse();
-       }
+    public List<Clazz> getAllClasses() {
+        final List<Clazz> result = new ArrayList<>();
 
-       public List<Clazz> getAllClasses() {
-               final List<Clazz> result = new ArrayList<Clazz>();
+        for (final JavaFile file : javaFiles)
+            result.addAll(file.classes);
 
-               for (final JavaFile file : javaFiles)
-                       for (final Clazz clazz : file.classes)
-                               result.add(clazz);
+        return result;
+    }
 
-               return result;
-       }
+    public void parse() {
 
-       public void parse() {
+        if (!scanPath.exists())
+            System.out.println("Path not found: " + scanPath);
 
-               if (!scanPath.exists())
-                       System.out.println("Path not found: " + scanPath);
+        if (!scanPath.canRead())
+            System.out.println("Cannot read path: " + scanPath);
 
-               if (!scanPath.canRead())
-                       System.out.println("Cannot read path: " + scanPath);
+        if (scanPath.isDirectory())
+            parseDirectory(scanPath);
 
-               if (scanPath.isDirectory())
-                       parseDirectory(scanPath);
+        if (scanPath.isFile())
+            parseFile(scanPath);
+    }
 
-               if (scanPath.isFile())
-                       parseFile(scanPath);
-       }
+    public void parseDirectory(final File file) {
 
-       public void parseDirectory(final File file) {
+        File[] filesList = file.listFiles();
+        if (filesList == null) throw new RuntimeException("Cannot scan directory: " + file);
 
-               for (final File subFile : file.listFiles()) {
+        for (final File subFile : filesList) {
 
-                       if (subFile.isFile())
-                               parseFile(subFile);
+            if (subFile.isFile())
+                parseFile(subFile);
 
-                       if (subFile.isDirectory())
-                               parseDirectory(subFile);
-               }
-       }
+            if (subFile.isDirectory())
+                parseDirectory(subFile);
+        }
+    }
 
-       public void parseFile(final File file) {
-               final String fileExtension = FilePathParser.getFileExtension(file);
-               if ("java".equalsIgnoreCase(fileExtension))
-                       try {
-                               final JavaFile javaFile = new JavaFile(file);
-                               javaFiles.add(javaFile);
-                       } catch (final IOException e) {
-                               System.out.println("Error parsing file: " + file.toString()
-                                               + ": " + e.toString());
-                       } catch (final InvalidSyntaxException e) {
-                               System.out.println("Syntax error occured while parsing file: "
-                                               + file.toString() + ": " + e.toString());
-                       }
-       }
+    public void parseFile(final File file) {
+        final String fileExtension = FilePathParser.getFileExtension(file);
+        if ("java".equalsIgnoreCase(fileExtension))
+            try {
+                final JavaFile javaFile = new JavaFile(file);
+                javaFiles.add(javaFile);
+            } catch (final IOException e) {
+                System.out.println("Error parsing file: " + file.toString()
+                        + ": " + e.toString());
+            } catch (final InvalidSyntaxException e) {
+                System.out.println("Syntax error occured while parsing file: "
+                        + file.toString() + ": " + e.toString());
+            }
+    }
 
 }