AbstractHafasClientInterfaceProvider: parse 'CHKI' (check-in) and 'CHKO' (check-out) leg types

This commit is contained in:
Andreas Schildbach 2022-09-13 10:18:27 +02:00
parent 4faef721bd
commit 889ceb5994
2 changed files with 15 additions and 1 deletions

View file

@ -109,6 +109,8 @@ public abstract class AbstractHafasClientInterfaceProvider extends AbstractHafas
private static final String SECTION_TYPE_TRANSFER = "TRSF"; private static final String SECTION_TYPE_TRANSFER = "TRSF";
private static final String SECTION_TYPE_TELE_TAXI = "TETA"; private static final String SECTION_TYPE_TELE_TAXI = "TETA";
private static final String SECTION_TYPE_DEVI = "DEVI"; private static final String SECTION_TYPE_DEVI = "DEVI";
private static final String SECTION_TYPE_CHECK_IN = "CHKI";
private static final String SECTION_TYPE_CHECK_OUT = "CHKO";
@SuppressWarnings("deprecation") @SuppressWarnings("deprecation")
private static final HashFunction MD5 = Hashing.md5(); private static final HashFunction MD5 = Hashing.md5();
private static final BaseEncoding HEX = BaseEncoding.base16().lowerCase(); private static final BaseEncoding HEX = BaseEncoding.base16().lowerCase();
@ -747,6 +749,18 @@ public abstract class AbstractHafasClientInterfaceProvider extends AbstractHafas
leg = new Trip.Individual(Trip.Individual.Type.TRANSFER, departureStop.location, leg = new Trip.Individual(Trip.Individual.Type.TRANSFER, departureStop.location,
departureStop.getDepartureTime(), arrivalStop.location, arrivalStop.getArrivalTime(), departureStop.getDepartureTime(), arrivalStop.location, arrivalStop.getArrivalTime(),
null, distance); null, distance);
} else if (SECTION_TYPE_CHECK_IN.equals(secType)) {
final JSONObject gis = sec.optJSONObject("gis");
final int distance = gis != null ? gis.optInt("dist", 0) : 0;
leg = new Trip.Individual(Trip.Individual.Type.CHECK_IN, departureStop.location,
departureStop.getDepartureTime(), arrivalStop.location, arrivalStop.getArrivalTime(),
null, distance);
} else if (SECTION_TYPE_CHECK_OUT.equals(secType)) {
final JSONObject gis = sec.optJSONObject("gis");
final int distance = gis != null ? gis.optInt("dist", 0) : 0;
leg = new Trip.Individual(Trip.Individual.Type.CHECK_OUT, departureStop.location,
departureStop.getDepartureTime(), arrivalStop.location, arrivalStop.getArrivalTime(),
null, distance);
} else { } else {
throw new IllegalStateException("cannot handle type: " + secType); throw new IllegalStateException("cannot handle type: " + secType);
} }

View file

@ -457,7 +457,7 @@ public final class Trip implements Serializable {
public final static class Individual extends Leg { public final static class Individual extends Leg {
public enum Type { public enum Type {
WALK, BIKE, CAR, TRANSFER WALK, BIKE, CAR, TRANSFER, CHECK_IN, CHECK_OUT
} }
private static final long serialVersionUID = -6651381862837233925L; private static final long serialVersionUID = -6651381862837233925L;