MATSIM
TripRouterFactoryBuilderWithDefaults.java
Go to the documentation of this file.
1 /* *********************************************************************** *
2  * project: org.matsim.*
3  * *
4  * *********************************************************************** *
5  * *
6  * copyright : (C) 2013 by the members listed in the COPYING, *
7  * LICENSE and WARRANTY file. *
8  * email : info at matsim dot org *
9  * *
10  * *********************************************************************** *
11  * *
12  * This program is free software; you can redistribute it and/or modify *
13  * it under the terms of the GNU General Public License as published by *
14  * the Free Software Foundation; either version 2 of the License, or *
15  * (at your option) any later version. *
16  * See also COPYING, LICENSE and WARRANTY file *
17  * *
18  * *********************************************************************** */
19 
20 package org.matsim.core.router;
21 
22 import org.matsim.api.core.v01.Scenario;
36 
37 import jakarta.inject.Provider;
38 import java.util.Arrays;
39 
41 
42  private Provider<TransitRouter> transitRouterFactory;
43 
47 
48  public static Provider<TripRouter> createTripRouterProvider(
49  final Scenario scenario,
50  final LeastCostPathCalculatorFactory leastCostAlgoFactory,
51  final Provider<TransitRouter> transitRouterFactory) {
53  builder.setLeastCostPathCalculatorFactory(leastCostAlgoFactory);
54  builder.setTransitRouterFactory(transitRouterFactory);
55  return builder.build(scenario);
56  }
57 
58  public void setTransitRouterFactory(Provider<TransitRouter> transitRouterFactory) {
59  this.transitRouterFactory = transitRouterFactory;
60  }
61 
62  public void setLeastCostPathCalculatorFactory(LeastCostPathCalculatorFactory leastCostPathCalculatorFactory) {
63  this.leastCostPathCalculatorFactory = leastCostPathCalculatorFactory;
64  }
65 
66  public Provider<TripRouter> build(final Scenario scenario) {
67  return Injector.createInjector(scenario.getConfig(),
69  Arrays.asList(
70  new ScenarioByInstanceModule(scenario),
71  new TripRouterModule(),
75  new EventsManagerModule()),
76  new AbstractModule() {
77  @Override
78  public void install() {
79  if (leastCostPathCalculatorFactory != null) {
80  bind(LeastCostPathCalculatorFactory.class).toInstance(leastCostPathCalculatorFactory);
81  }
82  if (transitRouterFactory != null && getConfig().transit().isUseTransit()) {
83  bind(TransitRouter.class).toProvider(transitRouterFactory);
84  }
85  if (carTravelDisutility != null) {
86  addTravelDisutilityFactoryBinding("car").toInstance(new TravelDisutilityFactory() {
87  @Override
88  public TravelDisutility createTravelDisutility(TravelTime timeCalculator) {
89  return carTravelDisutility;
90  }
91  });
92  }
93  if (carTravelTime != null) {
94  addTravelTimeBinding("car").toInstance(carTravelTime);
95  }
96  }
97  })).getProvider(TripRouter.class);
98  }
99 
100  public static Provider<TripRouter> createDefaultTripRouterFactoryImpl(final Scenario scenario) {
101  return Injector.createInjector(scenario.getConfig(),
102  new TripRouterModule(),
105  new EventsManagerModule(),
107  new AbstractModule() {
108  @Override
109  public void install() {
110  install(new ScenarioByInstanceModule(scenario));
111  }
112  })
113  .getProvider(TripRouter.class);
114  }
115 
116  public static Provider<TransitRouter> createDefaultTransitRouter(final Scenario scenario) {
117  return Injector.createInjector(scenario.getConfig(),
118  new TransitRouterModule(),
119  new AbstractModule() {
120  @Override
121  public void install() {
122  install(new ScenarioByInstanceModule(scenario));
123  }
124  })
125  .getProvider(TransitRouter.class);
126  }
127 
129  return Injector.createInjector(scenario.getConfig(),
130  new ScenarioByInstanceModule(scenario),
131  new EventsManagerModule(),
135  .getInstance(LeastCostPathCalculatorFactory.class);
136  }
137 
138  public void setTravelTime(TravelTime travelTime) {
139  this.carTravelTime = travelTime;
140  }
141 
142  public void setTravelDisutility(TravelDisutility travelDisutility) {
143  this.carTravelDisutility = travelDisutility;
144  }
145 
146 }
static Provider< TripRouter > createTripRouterProvider(final Scenario scenario, final LeastCostPathCalculatorFactory leastCostAlgoFactory, final Provider< TransitRouter > transitRouterFactory)
void setTransitRouterFactory(Provider< TransitRouter > transitRouterFactory)
static Provider< TripRouter > createDefaultTripRouterFactoryImpl(final Scenario scenario)
void setLeastCostPathCalculatorFactory(LeastCostPathCalculatorFactory leastCostPathCalculatorFactory)
static LeastCostPathCalculatorFactory createDefaultLeastCostPathCalculatorFactory(final Scenario scenario)
static Provider< TransitRouter > createDefaultTransitRouter(final Scenario scenario)
static com.google.inject.Injector createInjector(final Config config, Module... modules)
Definition: Injector.java:58
static AbstractModule override(final Iterable<? extends AbstractModule > modules, final AbstractModule abstractModule)