1 package eu.svjatoslav.inspector.java.methods;
4 import java.io.IOException;
5 import java.util.ArrayList;
6 import java.util.HashMap;
10 import eu.svjatoslav.commons.file.FilePathParser;
11 import eu.svjatoslav.commons.string.tokenizer.InvalidSyntaxException;
13 public class ProjectScanner {
15 private final File scanPath;
17 Map<File, Project> projects = new HashMap<File, Project>();
18 public List<JavaFile> javaFiles = new ArrayList<JavaFile>();
20 public ProjectScanner(final File projectPath) {
21 scanPath = projectPath;
25 public List<Clazz> getAllClasses() {
26 final List<Clazz> result = new ArrayList<Clazz>();
28 for (final JavaFile file : javaFiles)
29 for (final Clazz clazz : file.classes)
37 if (!scanPath.exists())
38 System.out.println("Path not found: " + scanPath);
40 if (!scanPath.canRead())
41 System.out.println("Cannot read path: " + scanPath);
43 if (scanPath.isDirectory())
44 parseDirectory(scanPath);
46 if (scanPath.isFile())
50 public void parseDirectory(final File file) {
52 for (final File subFile : file.listFiles()) {
57 if (subFile.isDirectory())
58 parseDirectory(subFile);
62 public void parseFile(final File file) {
63 final String fileExtension = FilePathParser.getFileExtension(file);
64 if ("java".equalsIgnoreCase(fileExtension))
66 final JavaFile javaFile = new JavaFile(file);
67 javaFiles.add(javaFile);
68 } catch (final IOException e) {
69 System.out.println("Error parsing file: " + file.toString()
70 + ": " + e.toString());
71 } catch (final InvalidSyntaxException e) {
72 System.out.println("Syntax error occured while parsing file: "
73 + file.toString() + ": " + e.toString());