package cz.agents.agentpolis.darptestbed.siminfrastructure.logger.analyser.init; import java.util.Map; import com.google.inject.Injector; import cz.agents.agentpolis.darptestbed.siminfrastructure.logger.analyser.TestbedLogAnalyser; import cz.agents.agentpolis.darptestbed.siminfrastructure.logger.analyser.processor.TestbedEmissionProcessor; import cz.agents.agentpolis.darptestbed.siminfrastructure.logger.analyser.processor.TestbedEnergyConsumptionProcessor; import cz.agents.agentpolis.darptestbed.siminfrastructure.logger.analyser.processor.TotalVehicleDistanceProcessor; import cz.agents.agentpolis.simmodel.environment.model.citymodel.transportnetwork.Graph; import cz.agents.agentpolis.simmodel.environment.model.citymodel.transportnetwork.GraphType; import cz.agents.agentpolis.simmodel.environment.model.citymodel.transportnetwork.TransportNetworks; import cz.agents.agentpolis.simmodel.environment.model.vehiclemodel.VehicleDataModel; import cz.agents.agentpolis.simulator.creator.initializator.InitFactory; public class TestbedAnalyserProcessorInit implements InitFactory { private final TestbedLogAnalyser testbedLogAnalyser; public TestbedAnalyserProcessorInit(TestbedLogAnalyser testbedLogAnalyser) { super(); this.testbedLogAnalyser = testbedLogAnalyser; } @Override public void initRestEnvironment(Injector injector) { final TransportNetworks transportNetworks = injector.getInstance(TransportNetworks.class); final Map<GraphType, Graph> transportNetworksByGraphType = transportNetworks.getGraphByType(); final VehicleDataModel vehicleDataModel = injector.getInstance(VehicleDataModel.class); long dayInMillis = Long.MAX_VALUE; TestbedEmissionProcessor emissionProcessor = new TestbedEmissionProcessor(transportNetworksByGraphType, dayInMillis, vehicleDataModel); TotalVehicleDistanceProcessor totalVehicleDistanceProcessor = new TotalVehicleDistanceProcessor( transportNetworksByGraphType, dayInMillis); TestbedEnergyConsumptionProcessor testbedEnergyConsumptionProcessor = new TestbedEnergyConsumptionProcessor( transportNetworksByGraphType, dayInMillis, vehicleDataModel); testbedLogAnalyser.addVehiclePathProcessor(totalVehicleDistanceProcessor); testbedLogAnalyser.addVehiclePathProcessor(emissionProcessor); testbedLogAnalyser.addVehiclePathProcessor(testbedEnergyConsumptionProcessor); } }