MATSIM
ScenarioUtils.java
Go to the documentation of this file.
1 
2 /* *********************************************************************** *
3  * project: org.matsim.*
4  * ScenarioUtils.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.scenario;
23 
24 import java.util.Collections;
25 import java.util.Map;
26 
27 import org.matsim.api.core.v01.Scenario;
30 import org.matsim.core.config.Config;
33 import org.matsim.lanes.Lanes;
37 
38 
45 public final class ScenarioUtils {
46 
47  private ScenarioUtils() {
48  // make it private, so it cannot be instantiated
49  }
50 
63  public static Scenario createScenario(final Config config) {
64  if (config == null) {
65  throw new NullPointerException("config must not be null!");
66  }
67  return new MutableScenario(config);
68  }
69  public static MutableScenario createMutableScenario(final Config config) {
70  if (config == null) {
71  throw new NullPointerException("config must not be null!");
72  }
73  return new MutableScenario(config);
74  }
75 
81  public static Scenario loadScenario(final Config config) {
82  return loadScenario(config, Collections.emptyMap());
83  }
84 
91  public static Scenario loadScenario(final Config config, Map<Class<?>, AttributeConverter<?>> attributeConverters) {
92  ScenarioLoaderImpl scenarioLoader = new ScenarioLoaderImpl(config);
93  scenarioLoader.setAttributeConverters(attributeConverters);
94  return scenarioLoader.loadScenario();
95  }
96 
103  public static void loadScenario(final Scenario scenario) {
104  loadScenario(scenario, Collections.emptyMap());
105  }
106 
113  public static void loadScenario(final Scenario scenario, Map<Class<?>, AttributeConverter<?>> attributeConverters) {
114  ScenarioLoaderImpl scenarioLoader = new ScenarioLoaderImpl(scenario);
115  scenarioLoader.setAttributeConverters(attributeConverters);
116  scenarioLoader.loadScenario();
117  }
118 
119  public final static class ScenarioBuilder {
121  public ScenarioBuilder( Config config ) {
122  this.scenario = new MutableScenario( config ) ;
123  }
124  public ScenarioBuilder addScenarioElement(String name, Object o) {
125  scenario.addScenarioElement(name, o);
126  return this ;
127  }
128  public ScenarioBuilder setHouseholds( Households households ) {
129  scenario.setHouseholds(households);
130  return this ;
131  }
133  scenario.setTransitSchedule(schedule);
134  return this ;
135  }
136  public ScenarioBuilder setVehicles( Vehicles vehicles ) {
137  scenario.setTransitVehicles(vehicles);
138  return this;
139  }
140  public ScenarioBuilder setNetwork( Network network ) {
141  scenario.setNetwork(network);
142  return this ;
143  }
144  public ScenarioBuilder setPopulation( Population population ) {
145  scenario.setPopulation(population);
146  return this ;
147  }
149  scenario.setActivityFacilities(facilities);
150  return this ;
151  }
152  public ScenarioBuilder setLanes( Lanes lanes ) {
153  scenario.setLanes(lanes);
154  return this ;
155  }
156  // final creational method:
157  public Scenario build() {
158  this.scenario.setLocked(); // prevents that one can cast to ScenarioImpl and change the containers again. kai, nov'14
159  return this.scenario ;
160  }
161  }
162 
163 }
static void loadScenario(final Scenario scenario, Map< Class<?>, AttributeConverter<?>> attributeConverters)
ScenarioBuilder setTransitSchedule(TransitSchedule schedule)
ScenarioBuilder setActivityFacilities(ActivityFacilities facilities)
static Scenario loadScenario(final Config config, Map< Class<?>, AttributeConverter<?>> attributeConverters)
final void addScenarioElement(final String name, final Object o)
final void setHouseholds(Households households)
final void setPopulation(Population population)
static MutableScenario createMutableScenario(final Config config)
static void loadScenario(final Scenario scenario)
final void setTransitSchedule(TransitSchedule schedule)
final void setNetwork(Network network)
ScenarioBuilder addScenarioElement(String name, Object o)
final void setTransitVehicles(Vehicles vehicles)
final void setActivityFacilities(ActivityFacilities facilities)
ScenarioBuilder setPopulation(Population population)
static Scenario loadScenario(final Config config)
static Scenario createScenario(final Config config)
ScenarioBuilder setHouseholds(Households households)