@Override public final Controler addOverridingModule( AbstractModule abstractModule ) { if (this.injectorCreated) { throw new RuntimeException("Too late for configuring the Controler. This can only be done before calling run."); } this.overrides = AbstractModule.override(Collections.singletonList(this.overrides), abstractModule); return this ; }
protected final com.google.inject.binder.LinkedBindingBuilder<TravelDisutilityFactory> bindCarTravelDisutilityFactory() { return bind(carTravelDisutilityFactoryKey()); }
protected final com.google.inject.binder.LinkedBindingBuilder<EventsManager> bindEventsManager() { return binder().bind(EventsManager.class); }
protected final LinkedBindingBuilder<TravelTime> bindNetworkTravelTime() { return bind(networkTravelTime()); }
@Override public void install() { install(AbstractModule.override(Arrays.asList(new TripRouterModule()), new AbstractModule() { @Override public void install() { install(new ScenarioByInstanceModule(scenario)); addTravelTimeBinding("car").toInstance(timeCostCalc); addTravelDisutilityFactoryBinding("car").toInstance(new TravelDisutilityFactory() { @Override public TravelDisutility createTravelDisutility(TravelTime timeCalculator) { return timeCostCalc; } }); } })); } });
@Override public void install() { controler.addOverridingModule( new AbstractModule() { @Override public void install() { bind( Scenario.class ).toInstance( replacementScenario ); } } ); } }
/** * See {@link tutorial.programming.planStrategyForRemoval.RunPlanSelectorForRemovalExample} for an example. * * @see StrategyManagerModule */ protected final com.google.inject.binder.LinkedBindingBuilder<PlanSelector<Plan, Person>> bindPlanSelectorForRemoval() { return bind(new TypeLiteral<PlanSelector<Plan, Person>>(){}); }
@Override public final void configure(Binder binder) { if (this.config == null) { this.config = bootstrapInjector.getInstance(Config.class); } // Guice error messages should give the code location of the error in the user's module, // not in this class. this.binder = binder.skipSources(AbstractModule.class); this.mobsimListenerMultibinder = Multibinder.newSetBinder(this.binder, MobsimListener.class); this.snapshotWriterMultibinder = Multibinder.newSetBinder(this.binder, SnapshotWriter.class); this.eventHandlerMultibinder = Multibinder.newSetBinder(this.binder, EventHandler.class); this.controlerListenerMultibinder = Multibinder.newSetBinder(this.binder, ControlerListener.class); this.attributeConverterMapBinder = MapBinder.newMapBinder( this.binder, new TypeLiteral<Class<?>>(){}, new TypeLiteral<AttributeConverter<?>>() {} ); this.qsimModulesMultibinder = Multibinder.newSetBinder(this.binder, AbstractQSimModule.class); this.install(); }
@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 FreespeedTravelTimeAndDisutility( config.planCalcScore() )); addTravelDisutilityFactoryBinding("car").toInstance(new OnlyTimeDependentTravelDisutilityFactory()); } })); } });
protected final com.google.inject.binder.LinkedBindingBuilder<ScoringFunctionFactory> bindScoringFunctionFactory() { return bind(ScoringFunctionFactory.class); }
@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()); } })); } });
@Override public void install() { install(AbstractModule.override(Arrays.<AbstractModule>asList(new ControlerDefaultsModule()), delegate)); }
protected final com.google.inject.binder.LinkedBindingBuilder<TravelTime> addTravelTimeBinding(String mode) { return binder().bind(TravelTime.class).annotatedWith(Names.named(mode)); }
protected final com.google.inject.binder.LinkedBindingBuilder<Mobsim> bindMobsim() { return bind(Mobsim.class); }
@Override public void install() { install(AbstractModule.override(Arrays.asList(new TripRouterModule()), new AbstractModule() { @Override public void install() { install(new ScenarioByInstanceModule(scenario)); addTravelTimeBinding("car").toInstance(calculator); addTravelDisutilityFactoryBinding("car").toInstance(new TravelDisutilityFactory() { @Override public TravelDisutility createTravelDisutility(TravelTime timeCalculator) { return calculator; } }); bindLeastCostPathCalculatorFactory().toInstance(factory1); } })); } });
/** * 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); }
protected final LinkedBindingBuilder<RoutingModule> addRoutingModuleBinding(String mode) { return binder().bind(RoutingModule.class).annotatedWith(Names.named(mode)); }
protected final com.google.inject.binder.LinkedBindingBuilder<LeastCostPathCalculatorFactory> bindLeastCostPathCalculatorFactory() { return bind(LeastCostPathCalculatorFactory.class); }
@Override public void install() { install(new ScenarioByInstanceModule(scenario)); install(AbstractModule.override(Arrays.asList(new TripRouterModule()), new AbstractModule() { @Override public void install() { addTravelTimeBinding("car").toInstance(new FreespeedTravelTimeAndDisutility( config.planCalcScore() )); addTravelDisutilityFactoryBinding("car").toInstance(new OnlyTimeDependentTravelDisutilityFactory()); } })); } });