View Javadoc

1   package org.springframework.beans;
2   
3   import java.io.File;
4   import java.io.FileFilter;
5   import java.io.IOException;
6   import java.util.ArrayList;
7   import java.util.List;
8   
9   public class MisplacedXMLPrologDetector {
10  
11      public static void main(String[] args) {
12          new MisplacedXMLPrologDetector().exec(args);
13      }
14  
15      protected void exec(String[] args) {
16          try {
17              long beg = System.currentTimeMillis();
18              String dir = "c:/eclipse/sts/2.6.1/ide/ws/rice-trunk";
19              FileFilter exclude = new CommonIgnoresFilter();
20              FileFilter include = new FilenameContainsDotXFilter();
21              FileFilter problem = new MisplacedXMLPrologFilter();
22              List<File> files = getFiles(new File(dir), exclude, include);
23              System.out.println(files.size());
24              List<File> problemFiles = getProblemFiles(files, problem);
25              System.out.println(problemFiles.size());
26              for (int i = 0; i < problemFiles.size(); i++) {
27                  File problemFile = problemFiles.get(i);
28                  System.out.println(problemFile.getAbsolutePath());
29              }
30              long end = System.currentTimeMillis();
31              long elapsed = end - beg;
32              double seconds = elapsed / 1000D;
33              System.out.println(seconds);
34          } catch (Throwable t) {
35              t.printStackTrace();
36          }
37      }
38  
39      protected List<File> getProblemFiles(List<File> files, FileFilter problem) throws IOException {
40          List<File> problemFiles = new ArrayList<File>();
41          for (File file : files) {
42              if (problem.accept(file)) {
43                  problemFiles.add(file);
44              }
45          }
46          return problemFiles;
47      }
48  
49      protected List<File> getFiles(File dir, FileFilter exclude, FileFilter include) {
50          File[] contents = dir.listFiles();
51          List<File> files = new ArrayList<File>();
52          for (File file : contents) {
53              if (exclude.accept(file)) {
54                  continue;
55              }
56              if (file.isDirectory()) {
57                  files.addAll(getFiles(file, exclude, include));
58              } else {
59                  if (include.accept(file)) {
60                      files.add(file);
61                  }
62              }
63          }
64          return files;
65      }
66  }