22 package org.matsim.core.mobsim.qsim;
24 import java.util.Collection;
25 import java.util.Collections;
26 import java.util.LinkedList;
27 import java.util.List;
28 import java.util.function.Consumer;
43 import com.google.inject.Injector;
44 import com.google.inject.Key;
45 import com.google.inject.TypeLiteral;
46 import com.google.inject.name.Names;
95 private final Collection<AbstractQSimModule>
qsimModules =
new LinkedList<>();
122 overridingControllerModules.add(module);
130 this.qsimModules.add(module);
139 this.overridingQSimModules.add(module);
178 configurator.accept(qsimModules);
187 qsimModules.removeIf(moduleType::isInstance);
196 return build(scenario, eventsManager, 0);
211 public void install() {
213 qsimModules.forEach(this::installQSimModule);
214 bind(Key.get(
new TypeLiteral<List<AbstractQSimModule>>() {
215 }, Names.named(
"overrides"))).toInstance(overridingQSimModules);
221 return (
QSim) injector.getInstance(
Mobsim.class);
void configure(QSimComponentsConfig components)
QSimBuilder addOverridingQSimModule(AbstractQSimModule module)
final IterationCounter iterationCounter
final QSimComponentsConfig components
void configure(QSimComponentsConfig components)
QSimBuilder configureQSimComponents(QSimComponentsConfigurator configurator)
final List< AbstractModule > overridingControllerModules
QSimBuilder addQSimModule(AbstractQSimModule module)
QSimBuilder removeModule(Class<? extends AbstractQSimModule > moduleType)
final Collection< AbstractQSimModule > qsimModules
QSimBuilder useDefaults()
final List< AbstractQSimModule > overridingQSimModules
StandaloneQSimModule(Scenario scenario, EventsManager eventsManager, IterationCounter iterationCounter)
QSimBuilder useDefaultQSimModules()
static com.google.inject.Injector createInjector(final Config config, Module... modules)
QSim build(Scenario scenario, EventsManager eventsManager, int iterationNumber)
final EventsManager eventsManager
static Collection< AbstractQSimModule > getDefaultQSimModules()
QSimBuilder addOverridingModule(AbstractModule module)
QSimBuilder useDefaultComponents()
QSimBuilder configureModules(Consumer< Collection< AbstractQSimModule >> configurator)
static AbstractModule override(final Iterable<? extends AbstractModule > modules, final AbstractModule abstractModule)
QSim build(Scenario scenario, EventsManager eventsManager)
QSimBuilder(Config config)