package ldbc.snb.datagen.test.csv; import java.io.File; import java.util.ArrayList; import java.util.List; /** * Created by aprat on 18/12/15. */ public class FileChecker { private String fileName = null; private List<Check> checks = null; public FileChecker(String fileName) { this.fileName = fileName; this.checks = new ArrayList<Check>(); } public void addCheck( Check check) { checks.add(check); } public boolean run(int startLine) { File file = new File(fileName); try { CsvFileReader csvReader = new CsvFileReader(file); int lineCount = 1; while(csvReader.hasNext()) { String[] line = csvReader.next(); if(startLine <= lineCount-1) { for (Check c : checks) { List<String> row = new ArrayList<String>(); for (Integer index : c.getColumns()) { row.add(line[index]); } if (!c.check(row)) { System.err.print("Found error at file " + fileName + " at line " + lineCount); System.err.print(" when applying " + c.getCheckName()+" on columns "); for(Integer index : c.getColumns()) { System.err.print(index+" "); } System.err.print(" with values "); for(String index : row) { System.err.print(index+" "); } System.err.println(); return false; } } } lineCount++; } }catch(Exception e) { System.err.println(e.getMessage()); return false; } return true; } }