20 package org.matsim.core.events;
22 import java.io.BufferedReader;
23 import java.io.IOException;
24 import java.io.InputStream;
25 import java.io.InputStreamReader;
26 import java.io.UncheckedIOException;
28 import java.util.HashMap;
29 import java.util.Iterator;
31 import java.util.zip.GZIPInputStream;
33 import org.apache.logging.log4j.LogManager;
34 import org.apache.logging.log4j.Logger;
74 import com.fasterxml.jackson.core.JsonProcessingException;
75 import com.fasterxml.jackson.databind.JsonNode;
76 import com.fasterxml.jackson.databind.ObjectMapper;
77 import com.github.luben.zstd.ZstdInputStream;
85 private final static ObjectMapper
MAPPER =
new ObjectMapper();
95 this.customEventMappers.put(eventType, cem);
98 void parse(
final String filename)
throws UncheckedIOException {
102 void parse(
final InputStream stream)
throws UncheckedIOException {
103 parse(
new BufferedReader(
new InputStreamReader(stream)),
"stream");
106 void parse(URL url)
throws UncheckedIOException {
107 LOG.info(
"starting to parse json from url " + url +
" ...");
108 try (InputStream urlStream = url.openStream()) {
109 InputStream inStream = urlStream;
110 if (url.getFile().endsWith(
".gz")) {
111 inStream =
new GZIPInputStream(urlStream);
113 if (url.getFile().endsWith(
".zst")) {
114 inStream =
new ZstdInputStream(urlStream);
117 }
catch (IOException e) {
118 throw new UncheckedIOException(e);
122 private void parse(
final BufferedReader in,
final String filename)
throws UncheckedIOException {
125 while ((line = in.readLine()) != null) {
131 catch (IOException e) {
132 LOG.error(
"Could not close file: " + filename, e);
134 }
catch (IOException e) {
135 throw new UncheckedIOException(e);
139 private void parseLine(
final String line)
throws JsonProcessingException, IOException {
140 JsonNode o = MAPPER.reader().readTree(line);
145 String eventType = o.get(
"type").asText();
146 double time = o.get(
"time").asDouble();
171 }
else if (
"wait2link".equals(eventType)) {
206 coord =
new Coord(xx, yy);
220 coord =
new Coord(xx, yy);
230 }
catch (NullPointerException e) {
243 String mode = legMode == null ? null : legMode.intern();
251 String canonicalLegMode = legMode == null ? null : legMode.intern();
253 String canonicalRoutingMode = routingMode == null ? null : routingMode.intern();
258 canonicalLegMode, canonicalRoutingMode));
261 String mode = legMode == null ? null : legMode.intern();
338 Iterator<Map.Entry<String, JsonNode>> iter = o.fields();
339 while (iter.hasNext()) {
340 Map.Entry<String, JsonNode> e = iter.next();
341 String key = e.getKey();
342 if (key.equals(
"time") || key.equals(
"type")) {
345 String value = e.getValue().asText(null);
346 event.getAttributes().put(key, value);
static final String ATTRIBUTE_LINK
static final String EVENT_TYPE
static final String EVENT_TYPE
static final String EVENT_TYPE
static final String ATTRIBUTE_ACTTYPE
static< T > Id< T > get(int index, final Class< T > type)
static final String EVENT_TYPE
static final String ATTRIBUTE_TRANSACTION_PARTNER
static final String ATTRIBUTE_ROUTING_MODE
static final String ATTRIBUTE_DRIVER
static final String ATTRIBUTE_VEHICLE
static final String ATTRIBUTE_KIND
void parseEvent(JsonNode o)
static final String ATTRIBUTE_AGENT
static final String EVENT_TYPE
static final String ATTRIBUTE_DESTINATIONSTOP
static final String ATTRIBUTE_LINK
static final String ATTRIBUTE_POSITION
static final String ATTRIBUTE_LEGMODE
static final String ATTRIBUTE_LINK
static BufferedReader getBufferedReader(URL url, Charset charset)
static final String ATTRIBUTE_PURPOSE
EventsReaderJson(final EventsManager events)
static final ObjectMapper MAPPER
static final String ATTRIBUTE_NETWORKMODE
static final String EVENT_TYPE
static final String EVENT_TYPE
static final String ATTRIBUTE_PERSON
static final String ATTRIBUTE_DISTANCE
static final String ATTRIBUTE_POSITION
String ATTRIBUTE_FACILITY
static final String ATTRIBUTE_DEPARTURE_ID
static final String ATTRIBUTE_TRANSIT_ROUTE_ID
static final String ATTRIBUTE_WAITSTOP
static final String ATTRIBUTE_X
static final String EVENT_TYPE
static final String ATTRIBUTE_PERSON
static final String ATTRIBUTE_AMOUNT
static< T > Id< T > create(final long key, final Class< T > type)
static final String ATTRIBUTE_PERSON_ID
static final String ATTRIBUTE_NETWORKMODE
static final String ATTRIBUTE_PERSON
void processEvent(final Event event)
static final String ATTRIBUTE_PERSON
static final String ATTRIBUTE_LINK
static final String ATTRIBUTE_LINK
static final String EVENT_TYPE
final EventsManager events
static final String ATTRIBUTE_DELAY
void parseLine(final String line)
static final String ATTRIBUTE_LEGMODE
final Map< String, CustomEventMapper > customEventMappers
static final String ATTRIBUTE_VEHICLE_ID
static final String ATTRIBUTE_LEGMODE
static final String ATTRIBUTE_MODE
Event apply(GenericEvent event)
static final String EVENT_TYPE
static final String EVENT_TYPE
void parse(final BufferedReader in, final String filename)
static final String ATTRIBUTE_VEHICLE_ID
static final String EVENT_TYPE
static final String ATTRIBUTE_DRIVER_ID
static final String ATTRIBUTE_VEHICLE
static final String ATTRIBUTE_VEHICLE
static final String EVENT_TYPE
static final String ATTRIBUTE_VEHICLE
static final String ATTRIBUTE_DELAY
static final String ATTRIBUTE_PERSON
static final String ATTRIBUTE_LINK
static final String ATTRIBUTE_AMOUNT
static final String EVENT_TYPE
static final String EVENT_TYPE
static final String ATTRIBUTE_TRANSIT_LINE_ID
static final String EVENT_TYPE
static final String EVENT_TYPE
static final String ATTRIBUTE_Y
static final String ATTRIBUTE_ACTTYPE
static final String EVENT_TYPE
static final String ATTRIBUTE_PERSON
static final String ATTRIBUTE_FACILITY
static final String ATTRIBUTE_VEHICLE
void addCustomEventMapper(String eventType, CustomEventMapper cem)
static final String EVENT_TYPE
static final String EVENT_TYPE