X-Git-Url: http://www2.svjatoslav.eu/gitweb/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Feu%2Fsvjatoslav%2Finspector%2Fjava%2Fmethods%2FProjectScanner.java;h=c68865d08c52602635df338c68b6622a2ddbe9d6;hb=b2f519fd934cd49afbb5cfc88b3d2be396af0afa;hp=3ed5a316e1cb97e5fa7cacf0854b081b33c8f39a;hpb=9811fe796d6f549151ab904714e1a65ff2839ee2;p=javainspect.git diff --git a/src/main/java/eu/svjatoslav/inspector/java/methods/ProjectScanner.java b/src/main/java/eu/svjatoslav/inspector/java/methods/ProjectScanner.java old mode 100644 new mode 100755 index 3ed5a31..c68865d --- a/src/main/java/eu/svjatoslav/inspector/java/methods/ProjectScanner.java +++ b/src/main/java/eu/svjatoslav/inspector/java/methods/ProjectScanner.java @@ -1,63 +1,87 @@ +/* + * 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.file.FilePathParser; +import eu.svjatoslav.commons.string.tokenizer.InvalidSyntaxException; + import java.io.File; import java.io.IOException; +import java.util.ArrayList; import java.util.HashMap; +import java.util.List; import java.util.Map; -import eu.svjatoslav.commons.file.FilePathParser; -import eu.svjatoslav.inspector.tokenizer.InvalidSyntaxException; - public class ProjectScanner { - private final File scanPath; + public final List javaFiles = new ArrayList<>(); + private final File scanPath; + Map projects = new HashMap<>(); + + public ProjectScanner(final File projectPath) { + scanPath = projectPath; + parse(); + } + + public List getAllClasses() { + final List result = new ArrayList<>(); + + for (final JavaFile file : javaFiles) + result.addAll(file.classes); - Map projects = new HashMap(); + return result; + } - public ProjectScanner(final File projectPath) { - scanPath = projectPath; - parse(); - } + 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); - } 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()); + } + } }