SlicDiagnostics/src/org/lcsim/slic/diagnostics
diff -N Runner.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ Runner.java 1 Aug 2005 06:33:09 -0000 1.1
@@ -0,0 +1,127 @@
+/*
+/*
+ * Runner.java
+ *
+ * Created on July 28, 2005, 2:07 PM
+ */
+package org.lcsim.slic.diagnostics;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.util.List;
+import java.util.ArrayList;
+import org.lcsim.util.loop.LCIOEventSource;
+import org.lcsim.util.loop.LCSimLoop;
+
+/**
+ *
+ * @author jeremym
+ *
+ * Helper class to run SlicDiagnostics on a file or list of files.
+ *
+ * For multiple input files, it will automatically name the output AIDA file
+ * after the first one in the list.
+ *
+ */
+public class Runner
+{
+ SlicDiagnosticsDriver slicDiag = new SlicDiagnosticsDriver();
+ List<String> fileNames = new ArrayList<String>();
+ List<File> fileList = new ArrayList<File>();
+
+ Runner()
+ {}
+
+ public void addFile(String filename)
+ {
+// System.out.println("slic.diagnostics.Runner - Added file: " + filename);
+ this.fileNames.add(filename);
+ }
+
+ public void addFiles(String filelist)
+ {
+ try
+ {
+ BufferedReader lines = getBufferedReader(filelist);
+ String line;
+
+ while ( (line = lines.readLine()) != null)
+ {
+ addFile(line.trim());
+ }
+ }
+ catch (Exception e)
+ {
+ throw new RuntimeException("Problem running from file.", e);
+ }
+ }
+
+ public void addFiles(List<String> fileNamesIn)
+ {
+ for ( String file : fileNamesIn )
+ {
+ addFile(file);
+ }
+ }
+
+ public void addFiles(String[] fileNamesIn)
+ {
+ for ( String file : fileNamesIn)
+ {
+ addFile(file);
+ }
+ }
+
+ public void run()
+ {
+ try
+ {
+ run(this.fileNames);
+ }
+ catch (Exception e)
+ {
+ throw new RuntimeException("Problem running files.", e);
+ }
+ }
+
+ /** Run SlicAnalysisDriver on files from list in fileName. */
+ private void run(List<String> files) throws Exception
+ {
+ slicDiag.setAidaFileName(files.get(0).toString());
+
+ for ( String f : files)
+ {
+ File fileIn = new File(f);
+ this.fileList.add(fileIn);
+ }
+
+ LCIOEventSource src = new LCIOEventSource("SlicDiagnostics", fileList);
+
+ LCSimLoop loop = new LCSimLoop();
+ loop.setLCIORecordSource(src);
+ loop.add(slicDiag);
+
+ try
+ {
+ loop.loop(-1);
+ }
+ catch (Exception e)
+ {
+ System.out.println(e.getMessage());
+ }
+
+// System.out.println("DONE");
+ loop.dispose();
+
+ this.fileList.clear();
+ }
+
+ static private BufferedReader getBufferedReader(String fileName) throws IOException
+ {
+ FileInputStream fin = new FileInputStream(fileName);
+ return new BufferedReader(new InputStreamReader(fin));
+ }
+}
\ No newline at end of file