import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileReader; import java.io.FileWriter; import java.util.ArrayList; import java.util.List; import be.jeffcheasey88.peeratcode.parser.Parser; import be.jeffcheasey88.peeratcode.parser.TokenValidator; import be.jeffcheasey88.peeratcode.parser.java.JavaElement; import be.jeffcheasey88.peeratcode.parser.java.JavaFile; import be.jeffcheasey88.peeratcode.parser.java.JavaParser; class GlobalCover { public static void main(String[] args) throws Exception { new GlobalCover().workspace(); } void workspace() throws Exception{ List files = files(new File("C:\\Users\\jeffc\\eclipse-workspace")); long validated = 0; long tokens = 0; int count = 0; boolean hasWriten = false; Parser parser = new JavaParser(); long time = System.currentTimeMillis(); for(File file : files){ if(file.getName().endsWith(".java")){ BufferedReader reader = new BufferedReader(new FileReader(file)); parser.parse(reader, new JavaFile()); reader.close(); if((!hasWriten) && TokenValidator.MAX_VALIDATE < TokenValidator.TOKENS){ parser.build(new BufferedWriter(new FileWriter(new File("/home/ParserV2.txt")))); hasWriten = true; } validated += TokenValidator.MAX_VALIDATE; tokens += TokenValidator.TOKENS; System.out.println(file+" "+validated+" / "+tokens); TokenValidator.MAX_VALIDATE = 0; TokenValidator.TOKENS = 0; count++; } } time = ((System.currentTimeMillis()-time)/1000); String data = "{\"hash\": "+System.currentTimeMillis()+",\"time\": "+time+",\"percentage\": "+String.format("%.3f", ((validated/((double)tokens))*100.0)).replace(",", ".")+",\"validated\": "+validated+",\"files\": "+count+"}"; File file = new File("/home/tmp_.txt"); BufferedWriter writer = new BufferedWriter(new FileWriter(file)); writer.write(data+"\n"); writer.flush(); writer.close(); } private List files(File dir){ List result = new ArrayList<>(); if(dir.isDirectory()){ for(File file : dir.listFiles()) result.addAll(files(file)); }else result.add(dir); return result; } }