21 package org.matsim.core.population.io;
23 import org.apache.logging.log4j.LogManager;
24 import org.apache.logging.log4j.Logger;
38 import java.io.InputStream;
40 import java.util.ArrayList;
41 import java.util.HashMap;
48 private final StreamingPopulation
pop ;
53 private final ArrayList<PersonAlgorithm>
personAlgos =
new ArrayList<>();
57 this( null, null, scenario ) ;
62 pop =
new StreamingPopulation( scenario.
getConfig() ) ;
63 ((MutableScenario) scenario).setPopulation(pop);
66 throw new RuntimeException(
"scenario given into this class needs to be an instance of MutableScenario.") ;
71 this.attributeConverters.put(clazz, converter);
75 this.attributeConverters.putAll(converters);
81 @Override
public void readFile(String filename) {
92 public void parse(InputStream is) {
105 this.personAlgos.clear();
108 this.personAlgos.add(algo);
123 final void setIsStreaming(
final boolean isStreaming) {
124 if ( isStreaming==
false ) {
125 log.error(
"streaming == false currently not supported with this approach; please program it yourself; something like" ) ;
126 log.error(
"for ( Person person : pop.getPersons().values() ) {" ) ;
127 log.error(
" personAlgo.run( person ); " ) ;
129 throw new RuntimeException(
"streaming == false currently not supported with this approach; see log statements" ) ;
133 return "[nof_plansalgos=" + this.personAlgos.size() +
"]";
136 final class StreamingPopulation
implements Population {
139 StreamingPopulation(
Config config) {
144 public final void addPerson(
final Person p) {
176 @Override
public String getName() {
179 @Override
public void setName(String name) {
182 @Override
public Map<Id<Person>, ? extends
Person> getPersons() {
197 log.info(
"processed " + cnt +
" persons.");
final void addAlgorithm(final PersonAlgorithm algo)
Attributes getAttributes()
void putAttributeConverters(final Map< Class<?>, AttributeConverter<?>> converters)
final StreamingPopulation pop
StreamingPopulationReader(String inputCRS, String targetCRS, Scenario scenario)
void putAttributeConverter(final Class<?> clazz, AttributeConverter<?> converter)
final void clearAlgorithms()
Map< Id< Person >,? extends Person > getPersons()
final void parse(final URL url)
final ArrayList< PersonAlgorithm > personAlgos
final boolean isStreaming()
static Population createPopulation(Config config)
void parse(InputStream is)
StreamingPopulationReader(Scenario scenario)
final void readFile(final String filename)
PopulationFactory getFactory()
void addPerson(final Person p)
void setName(String name)
Person removePerson(final Id< Person > personId)
final Map< Class<?>, AttributeConverter<?> > attributeConverters
void readFile(String filename)
void putAttributeConverters(final Map< Class<?>, AttributeConverter<?>> converters)