package simulator.stats; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import simulator.stats.implementation.MetricsStats; public abstract class AbstractMetricsCalculator implements MetricsCalculator{ protected static final double MILLI_SEC = 1000; protected static final double SEC_IN_HOUR = 3600; protected Map> metricsData = new HashMap>(); protected long startTime; protected long endTime; protected long timestamp; public AbstractMetricsCalculator(long startTime, long endTime, long timestamp) { super(); this.startTime = startTime; this.endTime = endTime; this.timestamp = timestamp; } abstract public List calulateMetrics(); public void addMetricsData(String resourceTypeName, DCwormsAccumulator resourceEnergyAccumulator){ List resourceEnergyAccumulatorList = metricsData.get(resourceTypeName); if(resourceEnergyAccumulatorList == null){ resourceEnergyAccumulatorList = new ArrayList(); } resourceEnergyAccumulatorList.add(resourceEnergyAccumulator); metricsData.put(resourceTypeName, resourceEnergyAccumulatorList); } public Map> getMetricsData(){ return metricsData; } }