21 package org.matsim.core.population.io;
23 import java.util.HashMap;
25 import java.util.Stack;
27 import org.apache.logging.log4j.LogManager;
28 import org.apache.logging.log4j.Logger;
38 import org.xml.sax.Attributes;
39 import org.xml.sax.SAXException;
49 private final static String
PLANS =
"plans.dtd";
50 private final static String
PLANS_V0 =
"plans_v0.dtd";
51 private final static String
PLANS_V1 =
"plans_v1.dtd";
52 private final static String
PLANS_V4 =
"plans_v4.dtd";
75 final String inputCRS,
76 final String targetCRS,
80 if ( !streaming && scenario.
getPopulation() instanceof StreamingPopulation ) {
81 throw new RuntimeException(
"MatsimPopulationReader called directly with an instance of StreamingPopulation " 82 +
"in scenario. Call via StreamingPopulationReader or ask for help. kai, jul'16") ;
90 attributeConverters.put( clazz , converter );
94 attributeConverters.putAll( converters );
99 this.delegate.
startTag(name, atts, context);
103 public void endTag(
final String name,
final String content,
final Stack<String> context) {
104 this.delegate.
endTag(name, content, context);
109 super.setDoctype(doctype);
122 new ParallelPopulationReaderMatsimV6(
126 ((ParallelPopulationReaderMatsimV6) delegate).putAttributeConverters(attributeConverters);
129 new PopulationReaderMatsimV6(
133 ((PopulationReaderMatsimV6) delegate).putAttributeConverters(attributeConverters);
135 log.info(
"using population_v6-reader.");
139 new PopulationReaderMatsimV5(
142 log.info(
"using population_v5-reader.");
147 new ParallelPopulationReaderMatsimV4(
150 log.info(
"using plans_v4-reader.");
154 new PopulationReaderMatsimV1(
157 log.info(
"using plans_v1-reader.");
162 new PopulationReaderMatsimV0(
165 log.info(
"using plans_v0-reader.");
168 throw new IllegalArgumentException(
"No population reader available for doctype \"" + doctype +
"\".");
175 this.delegate.endDocument();
176 }
catch (SAXException e) {
179 if (targetCRS != null) {
static final String PLANS_V0
void startTag(final String name, final Attributes atts, final Stack< String > context)
void endTag(final String name, final String content, final Stack< String > context)
abstract void startTag(String name, Attributes atts, Stack< String > context)
static final String POPULATION_V6
static final String PLANS
static final String PLANS_V4
static< T extends MatsimToplevelContainer &Attributable > void putCRS(T container, String CRS)
final Map< Class<?>, AttributeConverter<?> > attributeConverters
PopulationReader(final String inputCRS, final String targetCRS, final Scenario scenario)
static final String PLANS_V1
static final String POPULATION_V5
Population getPopulation()
static boolean useParallelIO()
abstract void endTag(String name, String content, Stack< String > context)
PopulationReader(final Scenario scenario)
void putAttributeConverter(final Class<?> clazz, AttributeConverter<?> converter)
void setDoctype(final String doctype)
void putAttributeConverters(final Map< Class<?>, AttributeConverter<?>> converters)