MATSIM
PopulationWriter.java
Go to the documentation of this file.
1 /* *********************************************************************** *
2  * project: org.matsim.*
3  * *********************************************************************** *
4  * *
5  * copyright : (C) 2007, 2011 by the members listed in the COPYING, *
6  * LICENSE and WARRANTY file. *
7  * email : info at matsim dot org *
8  * *
9  * *********************************************************************** *
10  * *
11  * This program is free software; you can redistribute it and/or modify *
12  * it under the terms of the GNU General Public License as published by *
13  * the Free Software Foundation; either version 2 of the License, or *
14  * (at your option) any later version. *
15  * See also COPYING, LICENSE and WARRANTY file *
16  * *
17  * *********************************************************************** */
18 
19 package org.matsim.api.core.v01.population;
20 
26 
27 import java.io.OutputStream;
28 import java.util.HashMap;
29 import java.util.Map;
30 
34 public final class PopulationWriter implements MatsimWriter {
35 
37  private final Population population;
38  private final Network network;
39  private final Map<Class<?>,AttributeConverter<?>> attributeConverters = new HashMap<>();
40 
42  final CoordinateTransformation transformation,
43  Population population,
44  Network network) {
45  this.transformation = transformation;
46  this.population = population;
47  this.network = network;
48  }
50  final CoordinateTransformation transformation,
51  Population population) {
52  // w/o network works for V5
53  this( transformation, population, null ) ;
54  }
55  public PopulationWriter(Population population, Network network) {
56  this( new IdentityTransformation() , population , network );
57  }
58  public PopulationWriter(Population population) {
59  // w/o network works for V5
60  this( new IdentityTransformation() , population , null );
61  }
62 
63 
64  public <T> void putAttributeConverter(Class<T> clazz, AttributeConverter<T> converter) {
65  this.attributeConverters.put( clazz , converter );
66  }
67 
68  public void putAttributeConverters( final Map<Class<?>, AttributeConverter<?>> converters ) {
69  this.attributeConverters.putAll( converters );
70  }
71 
75  @Override
76  public void write(final String filename) {
77  writeV6( filename );
78  }
79 
80  public void write(final OutputStream stream) {
81  writeV6(stream);
82  }
83 
89  public void writeV4(final String filename) {
90  new org.matsim.core.population.io.PopulationWriter(transformation , this.population, this.network).writeV4(filename);
91  }
92 
98  public void writeV5(final String filename) {
99  new org.matsim.core.population.io.PopulationWriter( transformation , this.population, this.network).writeV5(filename);
100  }
101 
107  public void writeV6(final String filename) {
109  new org.matsim.core.population.io.PopulationWriter( transformation , this.population, this.network);
110  writer.putAttributeConverters( attributeConverters );
111  writer.writeV6(filename);
112  }
113 
114  public void writeV6(final OutputStream stream) {
116  new org.matsim.core.population.io.PopulationWriter( transformation , this.population, this.network);
117  writer.putAttributeConverters( attributeConverters );
118  writer.writeV6(stream);
119  }
120 }
PopulationWriter(Population population, Network network)
PopulationWriter(final CoordinateTransformation transformation, Population population)
void putAttributeConverters(final Map< Class<?>, AttributeConverter<?>> converters)
void putAttributeConverters(final Map< Class<?>, AttributeConverter<?>> converters)
PopulationWriter(final CoordinateTransformation transformation, Population population, Network network)
final Map< Class<?>, AttributeConverter<?> > attributeConverters