22 package org.matsim.core.mobsim.qsim;
24 import java.lang.annotation.Annotation;
25 import java.util.Collection;
26 import java.util.List;
32 import com.google.inject.Module;
33 import com.google.inject.binder.LinkedBindingBuilder;
34 import com.google.inject.multibindings.Multibinder;
35 import com.google.inject.name.Names;
36 import com.google.inject.util.Modules;
47 Multibinder<QSimComponent> multibinder = Multibinder.newSetBinder( binder(),
QSimComponent.class, annotation );
48 multibinder.permitDuplicates();
49 return multibinder.addBinding();
54 Multibinder<QSimComponent> multibinder = Multibinder.newSetBinder( binder(),
QSimComponent.class, annotationClass );
55 multibinder.permitDuplicates();
56 return multibinder.addBinding();
65 protected <T extends QSimComponent>
void addNamedComponent( Class<T> componentClass, String name ){
77 super.install( module );
81 List<AbstractQSimModule> overrides ){
82 Module composite = Modules.override( base ).with( overrides );
91 base.forEach( m -> m.setParent( wrapper ) );
92 overrides.forEach( m -> m.setParent( wrapper ) );
static AbstractQSimModule overrideQSimModules(Collection< AbstractQSimModule > base, List< AbstractQSimModule > overrides)
LinkedBindingBuilder< MobsimScopeEventHandler > addMobsimScopeEventHandlerBinding()
final LinkedBindingBuilder< QSimComponent > addQSimComponentBinding(Annotation annotation)
LinkedBindingBuilder< QSimComponent > addQSimComponentBinding(String name)
void install(AbstractQSimModule module)
abstract void configureQSim()
final void setParent(AbstractMobsimModule parent)
LinkedBindingBuilder< LinkSpeedCalculator > addLinkSpeedCalculatorBinding()
LinkedBindingBuilder< QSimComponent > addQSimComponentBinding(Class<? extends Annotation > annotationClass)
final void configureMobsim()