public static EventsManager createEventsManager(Config config) { final EventsManager events = Injector.createInjector( config, new EventsManagerModule() ).getInstance( EventsManager.class ); // events.initProcessing(); return events; }
private static Module insertMapBindings(List<Module> guiceModules) { com.google.inject.AbstractModule routingModuleBindings = createMapBindingsForType(guiceModules, RoutingModule.class); com.google.inject.AbstractModule travelTimeBindings = createMapBindingsForType(guiceModules, TravelTime.class); com.google.inject.AbstractModule travelDisutilityFactoryBindings = createMapBindingsForType(guiceModules, TravelDisutilityFactory.class); return Modules.combine(Modules.combine(guiceModules), routingModuleBindings, travelTimeBindings, travelDisutilityFactoryBindings); }
public static com.google.inject.Injector createInjector(final Config config, Module... modules) { com.google.inject.Injector bootstrapInjector = Guice.createInjector(new Module() { @Override public void configure(Binder binder) { binder.requireExplicitBindings(); // For now, we are conservative and disable this kind of magic. binder.install(new ExplodedConfigModule(config)); } }); // A MATSim module needs the config at configuration time in order to decide what // features to provide. So we create a bootstrapInjector which already has the config // and provides it to the MATSim modules. List<com.google.inject.Module> guiceModules = new ArrayList<>(); for (Module module : modules) { bootstrapInjector.injectMembers(module); guiceModules.add(module); } com.google.inject.Injector realInjector = bootstrapInjector.createChildInjector(insertMapBindings(guiceModules)); printInjector(realInjector, logger); return realInjector; }
|| config.controler().getFirstIteration() == iterationCounter.getIterationNumber()) { org.matsim.core.controler.Injector.printInjector(qsimInjector, log);
public static PrepareForSim createDefaultPrepareForSim(final Scenario scenario) { com.google.inject.Injector injector = org.matsim.core.controler.Injector.createInjector(scenario.getConfig(), new AbstractModule() { @Override public void install() { install(new ScenarioByInstanceModule(scenario)); install(new EventsManagerModule()); install(new TripRouterModule()); install(new TravelDisutilityModule()); install(new TravelTimeCalculatorModule()); install(new DefaultPrepareForSimModule()); } }); return injector.getInstance(PrepareForSim.class); } }
public static Results run(final Config config, final String eventsFilename, final AbstractModule... modules) { final com.google.inject.Injector injector = Injector.createInjector( config, new Module(), new AbstractModule() { @Override public void install() { for (AbstractModule module : modules) { install(module); } } }); ReplayEvents instance = injector.getInstance(ReplayEvents.class); instance.playEventsFile(eventsFilename, 1); return new Results() { @Override public <T> T get(Class<? extends T> type) { return injector.getInstance(type); } }; }
/** * Builds a new QSim with the registered plugins and the defined active * components. */ public QSim build(Scenario scenario, EventsManager eventsManager) { // First, load standard QSim module AbstractModule controllerModule = new StandaloneQSimModule(scenario, eventsManager); // Add all overrides for (AbstractModule override : overridingControllerModules) { controllerModule = AbstractModule.override(Collections.singleton(controllerModule), override); } // Override components and modules controllerModule = AbstractModule.override(Collections.singleton(controllerModule), new AbstractModule() { @Override public void install() { bind(QSimComponentsConfig.class).toInstance(components); qsimModules.forEach(this::installQSimModule); bind(Key.get(new TypeLiteral<List<AbstractQSimModule>>() { }, Names.named("overrides"))).toInstance(overridingQSimModules); } }); // Build QSim Injector injector = org.matsim.core.controler.Injector.createInjector(config, controllerModule); return (QSim) injector.getInstance(Mobsim.class); }
public static EventsToScore createWithScoreUpdating(final Scenario scenario, final ScoringFunctionFactory scoringFunctionFactory, final EventsManager eventsManager) { com.google.inject.Injector injector = Injector.createInjector(scenario.getConfig(), new ScenarioByInstanceModule(scenario), new ExperiencedPlansModule(), new AbstractModule() { @Override public void install() { bind(ScoringFunctionsForPopulation.class).asEagerSingleton(); bind(ScoringFunctionFactory.class).toInstance(scoringFunctionFactory); bind(NewScoreAssigner.class).to(NewScoreAssignerImpl.class).asEagerSingleton(); bind(EventsToScore.class).asEagerSingleton(); bind(ControlerListenerManagerImpl.class).asEagerSingleton(); bind(ControlerListenerManager.class).to(ControlerListenerManagerImpl.class); bind(EventsManager.class).toInstance(eventsManager); bind(EventsManagerModule.EventHandlerRegistrator.class).asEagerSingleton(); } }); return injector.getInstance(EventsToScore.class); }
public static EventsToScore createWithoutScoreUpdating(Scenario scenario, final ScoringFunctionFactory scoringFunctionFactory, final EventsManager eventsManager) { com.google.inject.Injector injector = Injector.createInjector(scenario.getConfig(), new ScenarioByInstanceModule(scenario), new ExperiencedPlansModule(), new AbstractModule() { @Override public void install() { bind(ScoringFunctionsForPopulation.class).asEagerSingleton(); bind(ScoringFunctionFactory.class).toInstance(scoringFunctionFactory); bind(NewScoreAssigner.class).to(NoopNewScoreAssignerImpl.class).asEagerSingleton(); bind(EventsToScore.class).asEagerSingleton(); bind(ControlerListenerManagerImpl.class).asEagerSingleton(); bind(ControlerListenerManager.class).to(ControlerListenerManagerImpl.class); bind(EventsManager.class).toInstance(eventsManager); bind(EventsManagerModule.EventHandlerRegistrator.class).asEagerSingleton(); } }); return injector.getInstance(EventsToScore.class); }
this.injector = Injector.createInjector(config, AbstractModule.override(Collections.singleton(new AbstractModule() { @Override public void install() {
public static Provider<TransitRouter> createDefaultTransitRouter(final Scenario scenario) { return Injector.createInjector(scenario.getConfig(), new TransitRouterModule(), new AbstractModule() { @Override public void install() { install(new ScenarioByInstanceModule(scenario)); } }) .getProvider(TransitRouter.class); }
public static LeastCostPathCalculatorFactory createDefaultLeastCostPathCalculatorFactory(final Scenario scenario) { return Injector.createInjector(scenario.getConfig(), new ScenarioByInstanceModule(scenario), new EventsManagerModule(), new TravelDisutilityModule(), new TravelTimeCalculatorModule(), new LeastCostPathCalculatorModule()) .getInstance(LeastCostPathCalculatorFactory.class); }
public static Provider<TripRouter> createDefaultTripRouterFactoryImpl(final Scenario scenario) { return Injector.createInjector(scenario.getConfig(), new TripRouterModule(), new TravelDisutilityModule(), new TravelTimeCalculatorModule(), new EventsManagerModule(), new AbstractModule() { @Override public void install() { install(new ScenarioByInstanceModule(scenario)); } }) .getProvider(TripRouter.class); }
public void run() { if ( config==null ) { this.prepareConfig() ; } Scenario scenario = ScenarioUtils.loadScenario(config); EventsManager eventsManager = EventsUtils.createEventsManager(); AbstractModule module = new AbstractModule(){ @Override public void install(){ bind( Scenario.class ).toInstance( scenario ); bind( EventsManager.class ).toInstance( eventsManager ); bind( EmissionModule.class ) ; } };; com.google.inject.Injector injector = Injector.createInjector(config, module ); EmissionModule emissionModule = injector.getInstance(EmissionModule.class); EventWriterXML emissionEventWriter = new EventWriterXML(emissionEventOutputFile); emissionModule.getEmissionEventsManager().addHandler(emissionEventWriter); MatsimEventsReader matsimEventsReader = new MatsimEventsReader(eventsManager); matsimEventsReader.readFile(eventsFile); emissionEventWriter.closeFile(); } }
public void run() { if ( config==null ) { this.prepareConfig() ; } Scenario scenario = ScenarioUtils.loadScenario(config); EventsManager eventsManager = EventsUtils.createEventsManager(); AbstractModule module = new AbstractModule(){ @Override public void install(){ bind( Scenario.class ).toInstance( scenario ); bind( EventsManager.class ).toInstance( eventsManager ); bind( EmissionModule.class ) ; } };; com.google.inject.Injector injector = Injector.createInjector(config, module ); EmissionModule emissionModule = injector.getInstance(EmissionModule.class); EventWriterXML emissionEventWriter = new EventWriterXML(emissionEventOutputFile); emissionModule.getEmissionEventsManager().addHandler(emissionEventWriter); MatsimEventsReader matsimEventsReader = new MatsimEventsReader(eventsManager); matsimEventsReader.readFile(eventsFile); emissionEventWriter.closeFile(); } }
public Provider<TripRouter> build(final Scenario scenario) { return Injector.createInjector(scenario.getConfig(), AbstractModule.override( Arrays.asList(
config.controler().setOutputDirectory( outputDir ); final com.google.inject.Injector injector = Injector.createInjector( config,
/** * @author cdobler */ private void createTripRouter() { com.google.inject.Injector injector = Injector.createInjector(scenario.getConfig(), new AbstractModule() { @Override public void install() { install(AbstractModule.override(Arrays.asList(new TripRouterModule()), new AbstractModule() { @Override public void install() { install(new ScenarioByInstanceModule(scenario)); addTravelTimeBinding("car").toInstance(new FreeSpeedTravelTime()); addTravelDisutilityFactoryBinding("car").toInstance(new OnlyTimeDependentTravelDisutilityFactory()); } })); } }); tripRouter = injector.getInstance(TripRouter.class); TravelTime timeFunction = new FreeSpeedTravelTime() ; TravelDisutility costFunction = new OnlyTimeDependentTravelDisutility( timeFunction ) ; this.pathCalculator = new DijkstraFactory().createPathCalculator(scenario.getNetwork(), costFunction, timeFunction) ; }
@Test public void testExperiencedPlanElementsModule() { Config config = ConfigUtils.createConfig(); com.google.inject.Injector injector = Injector.createInjector(config, new ExperiencedPlanElementsModule(), new EventsManagerModule(), new ScenarioByInstanceModule(ScenarioUtils.createScenario(config)), new ReplayEvents.Module()); Subscriber subscriber = new Subscriber(); injector.getInstance(EventsToActivities.class).addActivityHandler(subscriber); ReplayEvents replayEvents = injector.getInstance(ReplayEvents.class); replayEvents.playEventsFile(matsimTestUtils.getClassInputDirectory() + "events.xml", 0); Assert.assertEquals("There are two activities.", 2, subscriber.activityCount); }
calculator, calculator); com.google.inject.Injector injector = Injector.createInjector(scenario.getConfig(), new AbstractModule() { @Override public void install() {