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 }