package dslog; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Paths; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; class Main { public static void dslog2csv(String[] args) throws IOException { for (String filename : args) { System.out.println("Filename: "+filename); DslogReader file = new DslogReader(Files.newInputStream(Paths.get(filename))); System.out.println("Format Version: "+file.version); System.out.println("Start Time: "+file.startTime); CsvWriter.Dslog2CSV(file, System.out); } } public static class LogSet { public DslogReader dslog; public DseventsReader dsevents; public PdplogReader pdplog; } private static LogSet getSet(Map sets, String name) { LogSet set; synchronized (sets) { set = sets.get(name); if (set == null) { set = new LogSet(); sets.put(name, set); } } return set; } public static void main(String[] args) throws IOException { for (String dirname : args) { Map logsets = new HashMap(); List errs = new ArrayList(); Files.list(Paths.get(dirname)).parallel().forEach(filepath->{ try { String filename = filepath.getFileName().toString(); if (filename.endsWith(".dslog")) { String setname = filename.substring(0, filename.lastIndexOf('.')); getSet(logsets, setname).dslog = new DslogReader(Files.newInputStream(filepath)); } else if (filename.endsWith(".dsevents")) { String setname = filename.substring(0, filename.lastIndexOf('.')); getSet(logsets, setname).dsevents = new DseventsReader(Files.newInputStream(filepath)); } else if (filename.endsWith(".pdplog")) { String setname = filename.substring(0, filename.lastIndexOf('.')); getSet(logsets, setname).pdplog = new PdplogReader(Files.newInputStream(filepath)); } } catch (Exception e) { synchronized (errs) { errs.add(new IOException("Could not read file: "+filepath.toString(), e)); } } }); } } }