MATSIM
NewControlerModule.java
Go to the documentation of this file.
1 
2 /* *********************************************************************** *
3  * project: org.matsim.*
4  * NewControlerModule.java
5  * *
6  * *********************************************************************** *
7  * *
8  * copyright : (C) 2019 by the members listed in the COPYING, *
9  * LICENSE and WARRANTY file. *
10  * email : info at matsim dot org *
11  * *
12  * *********************************************************************** *
13  * *
14  * This program is free software; you can redistribute it and/or modify *
15  * it under the terms of the GNU General Public License as published by *
16  * the Free Software Foundation; either version 2 of the License, or *
17  * (at your option) any later version. *
18  * See also COPYING, LICENSE and WARRANTY file *
19  * *
20  * *********************************************************************** */
21 
22  package org.matsim.core.controler;
23 
24 import com.google.inject.multibindings.Multibinder;
26 
27 public final class NewControlerModule extends AbstractModule {
28  @Override
29  public void install() {
30  bind(ControlerI.class).to(NewControler.class).asEagerSingleton();
31  bind(ControlerListenerManagerImpl.class).asEagerSingleton();
33 
34  bind(IterationStopWatch.class).asEagerSingleton();
35  bind(OutputDirectoryHierarchy.class).asEagerSingleton();
36  bind(TerminationCriterion.class).to(TerminateAtFixedIterationNumber.class);
37  bind(MatsimServices.class).to(MatsimServicesImpl.class);
38 
39  bind(IterationCounter.class).to(MatsimServicesImpl.class);
40  // (I don't want to always inject the whole MatsimServices just to get the iteration number. If
41  // someone has a better idea, please let me know. kai, aug'18)
42 
43  bind(PrepareForSim.class).to(PrepareForSimImpl.class);
44  bind(PrepareForMobsim.class).to(PrepareForMobsimImpl.class);
45 
46  // Explicitly create the set binder so that it always available (even if empty)
47  Multibinder.newSetBinder(binder(), PersonPrepareForSimAlgorithm.class);
48  }
49 }