package ru.jkff.antro; import org.apache.tools.ant.*; import java.io.IOException; /** * Created on 14:01:20 02.10.2008 * * @author jkff */ public class Replayer { public static void main(String[] args) throws IOException { ReportReader rr = new ReportReader(); Report report = rr.readReport(args[0]); ProfileListener listener = new ProfileListener(); listener.setDontWriteFile(true); replayTrace(report.getTrace(), listener); } private static void replayTrace(Trace trace, ProfileListener listener) { Call call = trace.getCall(); Project project = null; Target target = null; Task task = null; switch (call.kind) { case BUILD: project = new Project(); listener.buildStarted(new BuildEvent(project)); break; case SUBBUILD: project = new Project(); listener.subBuildStarted(new BuildEvent(project)); break; case TARGET: target = new Target(); target.setName(call.name); target.setLocation(new Location(call.location.fileName, call.location.line, 0)); listener.targetStarted(new BuildEvent(target)); break; case TASK: task = new Task() {}; task.setTaskName(call.name); task.setLocation(new Location(call.location.fileName, call.location.line, 0)); listener.taskStarted(new BuildEvent(task)); break; } for(Trace t : trace.getChildren()) { replayTrace(t, listener); } switch (call.kind) { case BUILD: listener.buildFinished(new BuildEvent(project)); break; case SUBBUILD: listener.subBuildFinished(new BuildEvent(project)); break; case TARGET: listener.targetFinished(new BuildEvent(target)); break; case TASK: listener.taskFinished(new BuildEvent(task)); break; } } }