001 package org.springframework.beans; 002 003 import java.io.File; 004 import java.io.FileFilter; 005 import java.io.IOException; 006 import java.util.ArrayList; 007 import java.util.List; 008 009 public class MisplacedXMLPrologDetector { 010 011 public static void main(String[] args) { 012 new MisplacedXMLPrologDetector().exec(args); 013 } 014 015 protected void exec(String[] args) { 016 try { 017 long beg = System.currentTimeMillis(); 018 String dir = "c:/eclipse/sts/2.6.1/ide/ws/rice-trunk"; 019 FileFilter exclude = new CommonIgnoresFilter(); 020 FileFilter include = new FilenameContainsDotXFilter(); 021 FileFilter problem = new MisplacedXMLPrologFilter(); 022 List<File> files = getFiles(new File(dir), exclude, include); 023 System.out.println(files.size()); 024 List<File> problemFiles = getProblemFiles(files, problem); 025 System.out.println(problemFiles.size()); 026 for (int i = 0; i < problemFiles.size(); i++) { 027 File problemFile = problemFiles.get(i); 028 System.out.println(problemFile.getAbsolutePath()); 029 } 030 long end = System.currentTimeMillis(); 031 long elapsed = end - beg; 032 double seconds = elapsed / 1000D; 033 System.out.println(seconds); 034 } catch (Throwable t) { 035 t.printStackTrace(); 036 } 037 } 038 039 protected List<File> getProblemFiles(List<File> files, FileFilter problem) throws IOException { 040 List<File> problemFiles = new ArrayList<File>(); 041 for (File file : files) { 042 if (problem.accept(file)) { 043 problemFiles.add(file); 044 } 045 } 046 return problemFiles; 047 } 048 049 protected List<File> getFiles(File dir, FileFilter exclude, FileFilter include) { 050 File[] contents = dir.listFiles(); 051 List<File> files = new ArrayList<File>(); 052 for (File file : contents) { 053 if (exclude.accept(file)) { 054 continue; 055 } 056 if (file.isDirectory()) { 057 files.addAll(getFiles(file, exclude, include)); 058 } else { 059 if (include.accept(file)) { 060 files.add(file); 061 } 062 } 063 } 064 return files; 065 } 066 }