java syntax parser
[javainspect.git] / src / main / java / eu / svjatoslav / inspector / java / methods / ProjectScanner.java
1 package eu.svjatoslav.inspector.java.methods;
2
3 import java.io.File;
4 import java.io.IOException;
5 import java.util.HashMap;
6 import java.util.Map;
7
8 import eu.svjatoslav.commons.file.FilePathParser;
9 import eu.svjatoslav.inspector.tokenizer.InvalidSyntaxException;
10
11 public class ProjectScanner {
12
13         private final File scanPath;
14
15         Map<File, Project> projects = new HashMap<File, Project>();
16
17         public ProjectScanner(final File projectPath) {
18                 scanPath = projectPath;
19                 parse();
20         }
21
22         public void parse() {
23
24                 if (!scanPath.exists())
25                         System.out.println("Path not found: " + scanPath);
26
27                 if (!scanPath.canRead())
28                         System.out.println("Cannot read path: " + scanPath);
29
30                 if (scanPath.isDirectory())
31                         parseDirectory(scanPath);
32
33                 if (scanPath.isFile())
34                         parseFile(scanPath);
35         }
36
37         public void parseDirectory(final File file) {
38
39                 for (final File subFile : file.listFiles()) {
40
41                         if (subFile.isFile())
42                                 parseFile(subFile);
43
44                         if (subFile.isDirectory())
45                                 parseDirectory(subFile);
46                 }
47         }
48
49         public void parseFile(final File file) {
50                 final String fileExtension = FilePathParser.getFileExtension(file);
51                 if ("java".equalsIgnoreCase(fileExtension))
52                         try {
53                                 final JavaFile javaFile = new JavaFile(file);
54                         } catch (final IOException e) {
55                                 System.out.println("Error parsing file: " + file.toString()
56                                                 + ": " + e.toString());
57                         } catch (final InvalidSyntaxException e) {
58                                 System.out.println("Syntax error occured while parsing file: "
59                                                 + file.toString() + ": " + e.toString());
60                         }
61         }
62
63 }