21 package org.matsim.core.population.io;
27 import java.util.List;
28 import java.util.concurrent.BlockingQueue;
29 import java.util.concurrent.CompletableFuture;
38 class ParallelPopulationReaderMatsimV6Runner
extends PopulationReaderMatsimV6 implements
Runnable {
40 private final BlockingQueue<List<Tag>> queue;
41 private boolean isStreaming;
43 public ParallelPopulationReaderMatsimV6Runner(
44 final String inputCRS,
45 final String targetCRS,
46 final Scenario scenario,
47 final BlockingQueue<List<Tag>> tagQueue,
48 boolean isStreaming) {
49 super(inputCRS ,targetCRS, scenario);
50 this.queue = tagQueue;
51 this.isStreaming = isStreaming;
64 PersonTag currentPersonTag = null;
65 for (Tag tag : tags) {
66 if (tag instanceof PersonTag personTag) {
67 currentPersonTag = personTag;
68 this.currperson = personTag.person;
69 }
else if (tag instanceof StartTag startTag) {
70 this.startTag(tag.name, startTag.atts, tag.context);
71 }
else if (tag instanceof EndTag endTag) {
77 if (PERSON.equals(tag.name)) {
80 CompletableFuture<Person> cf = currentPersonTag.futurePerson;
81 cf.complete(currentPersonTag.person);
84 this.currperson = null;
85 currentPersonTag = null;
89 this.endTag(tag.name, endTag.content, tag.context);
91 }
else if (tag instanceof EndProcessingTag) {
95 }
catch (InterruptedException e) {