package edu.usc.enl.dynamicmeasurement.process.scripts; import edu.usc.enl.dynamicmeasurement.data.FinishPacket; import edu.usc.enl.dynamicmeasurement.process.EpochPacket; import edu.usc.enl.dynamicmeasurement.process.StepPacketUser; import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException; import java.io.PrintWriter; /** * Created with IntelliJ IDEA. * User: masoud * Date: 9/20/13 * Time: 4:12 PM */ public class TraceRewrite extends StepPacketUser { private PrintWriter pw; private int chop; private int currentStepInChop; private int fileNameIndex; private String prefix; public TraceRewrite(String prefix, int chop) throws IOException { fileNameIndex = 0; currentStepInChop = 1; this.chop = chop; this.prefix = prefix; getWriter(prefix); } private void getWriter(String s) { try { pw = new PrintWriter(new BufferedWriter(new FileWriter(s + "_" + fileNameIndex))); } catch (IOException e) { e.printStackTrace(); System.exit(1); } } @Override protected void process2(edu.usc.enl.dynamicmeasurement.data.DataPacket p) { pw.println(p.print()); } @Override protected void step(EpochPacket p) { if (currentStepInChop < chop) { pw.flush(); currentStepInChop++; } else { currentStepInChop = 1; pw.close(); fileNameIndex++; getWriter(prefix); } } @Override public void finish(FinishPacket p) { pw.close(); } }