21 package org.matsim.pt.transitSchedule;
23 import java.io.UncheckedIOException;
24 import java.util.ArrayList;
25 import java.util.List;
66 public void write(
final String filename)
throws UncheckedIOException {
69 this.
writeDoctype(Constants.TRANSIT_SCHEDULE,
"http://www.matsim.org/files/dtd/transitSchedule_v1.dtd");
83 List<Tuple<String, String>> attributes =
new ArrayList<Tuple<String, String>>(5);
86 attributes.add(
createTuple(Constants.ID, stop.getId().toString()));
87 final Coord coord = coordinateTransformation.
transform( stop.getCoord() );
90 if (stop.getLinkId() != null) {
91 attributes.add(
createTuple(
"linkRefId", stop.getLinkId().toString()));
93 if (stop.getName() != null) {
94 attributes.add(
createTuple(
"name", stop.getName()));
96 attributes.add(
createTuple(
"isBlocking", stop.getIsBlockingLane()));
97 this.
writeStartTag(Constants.STOP_FACILITY, attributes,
true);
104 List<Tuple<String, String>> attributes =
new ArrayList<Tuple<String, String>>(1);
105 attributes.add(
createTuple(Constants.ID, line.getId().toString()));
106 if (line.getName() != null) {
107 attributes.add(
createTuple(Constants.NAME, line.getName()));
119 List<Tuple<String, String>> attributes =
new ArrayList<Tuple<String, String>>(1);
120 attributes.add(
createTuple(Constants.ID, route.getId().toString()));
123 if (route.getDescription() != null) {
140 private void writeRouteProfile(
final List<TransitRouteStop> stops)
throws UncheckedIOException {
144 List<Tuple<String, String>> attributes =
new ArrayList<Tuple<String, String>>(4);
147 attributes.add(
createTuple(Constants.REF_ID, stop.getStopFacility().getId().toString()));
148 stop.getArrivalOffset()
149 .ifDefined(offset -> attributes.add(
createTimeTuple(Constants.ARRIVAL_OFFSET, offset)));
150 stop.getDepartureOffset().ifDefined(offset->
152 attributes.add(
createTuple(Constants.AWAIT_DEPARTURE, String.valueOf(stop.isAwaitDepartureTime())));
164 List<Tuple<String, String>> attributes =
new ArrayList<Tuple<String, String>>(1);
165 attributes.add(
createTuple(Constants.REF_ID, route.getStartLinkId().toString()));
168 for (
Id<Link> linkId : route.getLinkIds()) {
170 attributes.add(
createTuple(Constants.REF_ID, linkId.toString()));
175 attributes.add(
createTuple(Constants.REF_ID, route.getEndLinkId().toString()));
186 List<Tuple<String, String>> attributes =
new ArrayList<Tuple<String, String>>(3);
188 for (
Departure dep : departures.values()) {
190 attributes.add(
createTuple(Constants.ID, dep.getId().toString()));
191 attributes.add(
createTimeTuple(Constants.DEPARTURE_TIME, dep.getDepartureTime()));
192 if (dep.getVehicleId() != null) {
193 attributes.add(
createTuple(Constants.VEHICLE_REF_ID, dep.getVehicleId().toString()));
void writeDepartures(final Map< Id< Departure >, Departure > departures)
final void writeXmlHead()
Map< Id< TransitStopFacility >, TransitStopFacility > getFacilities()
void writeRouteProfile(final List< TransitRouteStop > stops)
TransitScheduleWriterV1(final CoordinateTransformation coordinateTransformation, final TransitSchedule schedule)
final TransitSchedule schedule
void writeTransitLine(final TransitLine line)
static Tuple< String, String > createTimeTuple(String one, double sec)
void write(final String filename)
final void writeContent(String content, boolean allowWhitespaces)
void writeTransitRoute(final TransitRoute route)
final CoordinateTransformation coordinateTransformation
final void openFile(final String filename)
final void writeStartTag(String tagname, List< Tuple< String, String >> attributes)
void writeRoute(final NetworkRoute route)
static Tuple< String, String > createTuple(String one, String two)
final void writeEndTag(String tagname)
Map< Id< TransitLine >, TransitLine > getTransitLines()
TransitScheduleWriterV1(final TransitSchedule schedule)
final void writeDoctype(String rootTag, String dtdUrl)