1 19 20 package org.polepos.reporters; 21 22 import java.util.*; 23 24 import org.polepos.framework.*; 25 26 27 public abstract class GraphReporter extends Reporter{ 28 29 30 private Map<CircuitLap,Graph> mGraphs; 31 private List<Circuit> mCircuits; 32 33 34 @Override  35 public void startSeason() { 36 } 37 38 @Override  39 public boolean append() { 40 return false; 41 } 42 43 @Override  44 public String file() { 45 return "F1Results.txt"; 46 } 47 48 @Override  49 public void reportTaskName(int number, String name){ 50 } 52 53 @Override  54 public void reportTeam(Team team) { 55 } 57 58 @Override  59 public void reportCar(Car car) { 60 } 62 63 @Override  64 public void beginResults() { 65 } 66 67 @Override  68 public void reportResult(Result result) { 69 70 if(mGraphs == null){ 71 mGraphs = new HashMap<CircuitLap,Graph>(); 72 } 73 74 if(mCircuits == null){ 75 mCircuits = new ArrayList <Circuit>(); 76 } 77 78 Circuit circuit = result.getCircuit(); 79 80 if(! mCircuits.contains(circuit)){ 81 mCircuits.add(circuit); 82 } 83 84 CircuitLap cl = new CircuitLap(circuit, result.getLap()); 85 Graph graph = mGraphs.get(cl); 86 if(graph == null){ 87 graph = new Graph(result); 88 mGraphs.put(cl, graph); 89 } 90 graph.addResult(mTeamCar, result); 91 92 } 93 94 @Override  95 public void endSeason() { 96 if(mGraphs != null){ 97 System.out.println("Checking checksums for " + getClass().getName()); 98 for(Circuit circuit : mCircuits){ 99 for(Lap lap : circuit.laps()){ 100 Graph graph =mGraphs.get(new CircuitLap(circuit, lap)); 101 if(graph != null){ 102 graph.compareCheckSums(); 103 report(graph); 104 } 105 } 106 } 107 finish(); 108 } 109 } 110 111 protected abstract void report(Graph graph); 112 protected abstract void finish(); 113 } 114
| Popular Tags
|