Author: [log in to unmask] Date: Wed Jan 7 17:06:35 2015 New Revision: 3483 Log: Have Driver add slcio file extension if necessary. Modified: projects/lcsim/trunk/event-processing/src/main/java/org/lcsim/util/loop/LCIODriver.java Modified: projects/lcsim/trunk/event-processing/src/main/java/org/lcsim/util/loop/LCIODriver.java ============================================================================= --- projects/lcsim/trunk/event-processing/src/main/java/org/lcsim/util/loop/LCIODriver.java (original) +++ projects/lcsim/trunk/event-processing/src/main/java/org/lcsim/util/loop/LCIODriver.java Wed Jan 7 17:06:35 2015 @@ -12,154 +12,123 @@ import org.lcsim.lcio.LCIOWriter; /** - * A driver for writing out LCIO events. + * A driver for writing out LCIO events. * - * By default this will write out the entire event, but you can control - * what collections are written out by using {@link #setIgnoreCollection(String)}, - * {@link #setIgnoreCollections(String[])}, {@link #setWriteOnlyCollection(String)}, - * and {@link #setWriteOnlyCollections(String[])}. + * By default this will write out the entire event, but you can control what collections are written + * out by using {@link #setIgnoreCollection(String)}, {@link #setIgnoreCollections(String[])}, + * {@link #setWriteOnlyCollection(String)}, and {@link #setWriteOnlyCollections(String[])}. * * @author tonyj * @see org.lcsim.util.lcio.LCIOWriter */ -public class LCIODriver extends Driver -{ - private LCIOWriter writer; - private Set<String> listIgnore = new HashSet<String>(); - private Set<String> listKeep = new HashSet<String>(); - private File outputFile; - - public LCIODriver(String file) - { - this(file, null); - } - - public LCIODriver(File file) - { - this(file, null); - } - - public LCIODriver(String file, Collection<String> listIgnore) - { - this(new File(file),listIgnore); - } - - public LCIODriver(File file, Collection<String> listIgnore) - { +public class LCIODriver extends Driver { + private LCIOWriter writer; + private Set<String> listIgnore = new HashSet<String>(); + private Set<String> listKeep = new HashSet<String>(); + private File outputFile; + + public LCIODriver(String file) { + this(addFileExtension(file), null); + } + + public LCIODriver(File file) { + this(file, null); + } + + public LCIODriver(String file, Collection<String> listIgnore) { + this(new File(addFileExtension(file)), listIgnore); + } + + public LCIODriver(File file, Collection<String> listIgnore) { this.outputFile = file; - if (listIgnore != null) - { + if (listIgnore != null) { this.listIgnore.addAll(listIgnore); } - } - - public LCIODriver() - {} - - public void setOutputFilePath(String filePath) - { - if (!filePath.endsWith(".slcio")) - filePath += ".slcio"; - outputFile = new File(filePath); - } - - public void setIgnoreCollections(String[] ignoreCollections) - { - listIgnore.addAll(Arrays.asList(ignoreCollections)); - } - - public void setWriteOnlyCollections(String [] keepCollections) - { - listKeep.addAll(Arrays.asList(keepCollections)); - } + } - public void setIgnoreCollection(String ignoreCollection) - { + public LCIODriver() { + } + + public void setOutputFilePath(String filePath) { + outputFile = new File(addFileExtension(filePath)); + } + + public void setIgnoreCollections(String[] ignoreCollections) { + listIgnore.addAll(Arrays.asList(ignoreCollections)); + } + + public void setWriteOnlyCollections(String[] keepCollections) { + listKeep.addAll(Arrays.asList(keepCollections)); + } + + public void setIgnoreCollection(String ignoreCollection) { listIgnore.add(ignoreCollection); } - public void setWriteOnlyCollection(String writeOnlyCollection) - { + public void setWriteOnlyCollection(String writeOnlyCollection) { listKeep.add(writeOnlyCollection); } - - private void setupWriter() - { - // Cleanup existing writer. - if (writer != null) - { - try - { - writer.flush(); - writer.close(); - writer = null; - } - catch (IOException x) - { - System.err.println(x.getMessage()); - } - } - - // Setup new writer. - try - { - writer = new LCIOWriter(outputFile); + + private void setupWriter() { + // Cleanup existing writer. + if (writer != null) { + try { + writer.flush(); + writer.close(); + writer = null; + } catch (IOException x) { + System.err.println(x.getMessage()); + } } - catch (IOException x) - { - throw new RuntimeException("Error creating writer",x); + + // Setup new writer. + try { + writer = new LCIOWriter(outputFile); + } catch (IOException x) { + throw new RuntimeException("Error creating writer", x); } writer.addAllIgnore(listIgnore); writer.addAllWriteOnly(listKeep); - - try - { + + try { writer.reOpen(); - } - catch (IOException x) - { - throw new RuntimeException("Error rewinding LCIO file",x); - } + } catch (IOException x) { + throw new RuntimeException("Error rewinding LCIO file", x); + } } - - protected void startOfData() - { + + protected void startOfData() { setupWriter(); - } - - protected void endOfData() - { - try - { - writer.close(); - } - catch (IOException x) - { - throw new RuntimeException("Error rewinding LCIO file",x); - } - } - - protected void process(EventHeader event) - { - try - { - writer.write(event); - } - catch (IOException x) - { - throw new RuntimeException("Error writing LCIO file",x); - } - } + } - protected void suspend() - { - try - { - writer.flush(); - } - catch (IOException x) - { - throw new RuntimeException("Error flushing LCIO file",x); - } - } + protected void endOfData() { + try { + writer.close(); + } catch (IOException x) { + throw new RuntimeException("Error rewinding LCIO file", x); + } + } + + protected void process(EventHeader event) { + try { + writer.write(event); + } catch (IOException x) { + throw new RuntimeException("Error writing LCIO file", x); + } + } + + protected void suspend() { + try { + writer.flush(); + } catch (IOException x) { + throw new RuntimeException("Error flushing LCIO file", x); + } + } + + private static String addFileExtension(String filePath) { + if (!filePath.endsWith(".slcio")) { + return filePath + ".slcio"; + } else + return filePath; + } } ######################################################################## Use REPLY-ALL to reply to list To unsubscribe from the LCDET-SVN list, click the following link: https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=LCDET-SVN&A=1