From 77ed4f67e6aa2e23b0fe9b2572c5d89ef4839d1a Mon Sep 17 00:00:00 2001 From: "andreas.schildbach@gmail.com" Date: Thu, 15 Sep 2011 08:15:20 +0000 Subject: [PATCH] Tirol git-svn-id: https://public-transport-enabler.googlecode.com/svn/trunk@781 0924bc21-9374-b0fa-ee44-9ff1593b38f0 --- src/de/schildbach/pte/NetworkId.java | 2 +- src/de/schildbach/pte/VvtProvider.java | 68 ++++++++++++++ .../pte/live/VvtProviderLiveTest.java | 90 +++++++++++++++++++ 3 files changed, 159 insertions(+), 1 deletion(-) create mode 100644 src/de/schildbach/pte/VvtProvider.java create mode 100644 test/de/schildbach/pte/live/VvtProviderLiveTest.java diff --git a/src/de/schildbach/pte/NetworkId.java b/src/de/schildbach/pte/NetworkId.java index b7ff131d..bb01e732 100644 --- a/src/de/schildbach/pte/NetworkId.java +++ b/src/de/schildbach/pte/NetworkId.java @@ -29,7 +29,7 @@ public enum NetworkId DB, BVG, VBB, RMV, NVV, VRT, BAYERN, MVV, INVG, AVV, VMV, HVV, SH, GVH, BSVAG, BSAG, VBN, NASA, VVO, VMS, VGS, VRR, VRS, MVG, NPH, VRN, VVS, NALDO, DING, KVV, VVM, VAGFR, NVBW, // Austria - OEBB, VOR, LINZ, SVV, VMOBIL, IVB, STV, + OEBB, VOR, LINZ, SVV, VVT, VMOBIL, IVB, STV, // Switzerland SBB, BVB, VBL, ZVV, diff --git a/src/de/schildbach/pte/VvtProvider.java b/src/de/schildbach/pte/VvtProvider.java new file mode 100644 index 00000000..01bb6448 --- /dev/null +++ b/src/de/schildbach/pte/VvtProvider.java @@ -0,0 +1,68 @@ +/* + * Copyright 2010, 2011 the original author or authors. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package de.schildbach.pte; + +import java.io.IOException; +import java.util.List; + +import de.schildbach.pte.dto.Location; +import de.schildbach.pte.dto.LocationType; + +/** + * @author Andreas Schildbach + */ +public class VvtProvider extends AbstractEfaProvider +{ + public static final NetworkId NETWORK_ID = NetworkId.VVT; + private final static String API_BASE = "http://efa.vvt.at/vvtadr/"; + + public VvtProvider() + { + super(API_BASE, null); + } + + public NetworkId id() + { + return NETWORK_ID; + } + + public boolean hasCapabilities(Capability... capabilities) + { + for (final Capability capability : capabilities) + if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.CONNECTIONS) + return true; + + return false; + } + + private static final String NEARBY_STATION_URI = API_BASE + + "XSLT_DM_REQUEST" + + "?outputFormat=XML&coordOutputFormat=WGS84&type_dm=stop&name_dm=%s&itOptionsActive=1&ptOptionsActive=1&useProxFootSearch=1&mergeDep=1&useAllStops=1&mode=direct"; + + @Override + protected String nearbyStationUri(final int stationId) + { + return String.format(NEARBY_STATION_URI, stationId); + } + + @Override + public List autocompleteStations(final CharSequence constraint) throws IOException + { + return xmlStopfinderRequest(new Location(LocationType.ANY, 0, null, constraint.toString())); + } +} diff --git a/test/de/schildbach/pte/live/VvtProviderLiveTest.java b/test/de/schildbach/pte/live/VvtProviderLiveTest.java new file mode 100644 index 00000000..f1f2b64e --- /dev/null +++ b/test/de/schildbach/pte/live/VvtProviderLiveTest.java @@ -0,0 +1,90 @@ +/* + * Copyright 2010, 2011 the original author or authors. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package de.schildbach.pte.live; + +import java.util.Date; +import java.util.List; + +import org.junit.Test; + +import de.schildbach.pte.VvtProvider; +import de.schildbach.pte.NetworkProvider.WalkSpeed; +import de.schildbach.pte.dto.Location; +import de.schildbach.pte.dto.LocationType; +import de.schildbach.pte.dto.NearbyStationsResult; +import de.schildbach.pte.dto.QueryConnectionsResult; +import de.schildbach.pte.dto.QueryDeparturesResult; + +/** + * @author Andreas Schildbach + */ +public class VvtProviderLiveTest +{ + private final VvtProvider provider = new VvtProvider(); + private static final String ALL_PRODUCTS = "IRSUTBFC"; + + @Test + public void nearbyStations() throws Exception + { + final NearbyStationsResult result = provider.queryNearbyStations(new Location(LocationType.STATION, 60101187), 0, 0); + + System.out.println(result.stations.size() + " " + result.stations); + } + + @Test + public void nearbyStationsByCoordinate() throws Exception + { + final NearbyStationsResult result = provider.queryNearbyStations(new Location(LocationType.ADDRESS, 47271228, 11402063), 0, 0); + + System.out.println(result.stations.size() + " " + result.stations); + } + + @Test + public void queryDepartures() throws Exception + { + final QueryDeparturesResult result = provider.queryDepartures(60101187, 0, false); + + System.out.println(result.stationDepartures); + } + + @Test + public void autocompleteIncomplete() throws Exception + { + final List autocompletes = provider.autocompleteStations("Kur"); + + list(autocompletes); + } + + private void list(final List autocompletes) + { + System.out.print(autocompletes.size() + " "); + for (final Location autocomplete : autocompletes) + System.out.print(autocomplete.toDebugString() + " "); + System.out.println(); + } + + @Test + public void shortConnection() throws Exception + { + final QueryConnectionsResult result = provider.queryConnections(new Location(LocationType.STATION, 0, null, "Hauptwache"), null, + new Location(LocationType.STATION, 0, null, "Südbahnhof"), new Date(), true, ALL_PRODUCTS, WalkSpeed.NORMAL); + System.out.println(result); + final QueryConnectionsResult moreResult = provider.queryMoreConnections(result.context); + System.out.println(moreResult); + } +}