org.opentripplanner.model.TripTimeShort Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of otp Show documentation
Show all versions of otp Show documentation
The OpenTripPlanner multimodal journey planning system
package org.opentripplanner.model;
import org.opentripplanner.routing.core.ServiceDay;
import org.opentripplanner.routing.trippattern.RealTimeState;
import org.opentripplanner.routing.trippattern.TripTimes;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
// TODO OTP2 - Convert all fields to get-methods and keep reference to TripTimes and let
// - getters call the appropriate TripTimes method instead of coping the fields.
public class TripTimeShort {
public static final int UNDEFINED = -1;
public FeedScopedId stopId;
public int stopIndex;
public int stopCount;
public int scheduledArrival = UNDEFINED ;
public int scheduledDeparture = UNDEFINED ;
public int realtimeArrival = UNDEFINED ;
public int realtimeDeparture = UNDEFINED ;
public int arrivalDelay = UNDEFINED ;
public int departureDelay = UNDEFINED ;
public boolean timepoint = false;
public boolean realtime = false;
public RealTimeState realtimeState = RealTimeState.SCHEDULED ;
public long serviceDay;
public FeedScopedId tripId;
public String blockId;
public String headsign;
public int pickupType;
public int dropoffType;
/**
* This is stop-specific, so the index i is a stop index, not a hop index.
*/
public TripTimeShort(TripTimes tt, int i, Stop stop) {
stopId = stop.getId();
stopIndex = i;
stopCount = tt.getNumStops();
scheduledArrival = tt.getScheduledArrivalTime(i);
realtimeArrival = tt.getArrivalTime(i);
arrivalDelay = tt.getArrivalDelay(i);
scheduledDeparture = tt.getScheduledDepartureTime(i);
realtimeDeparture = tt.getDepartureTime(i);
departureDelay = tt.getDepartureDelay(i);
timepoint = tt.isTimepoint(i);
realtime = !tt.isScheduled();
realtimeState = tt.getRealTimeState();
blockId = tt.trip.getBlockId();
headsign = tt.getHeadsign(i);
pickupType = tt.getPickupType(i);
dropoffType = tt.getDropoffType(i);
}
public TripTimeShort(TripTimes tt, int i, Stop stop, ServiceDay sd) {
this(tt, i, stop);
tripId = tt.trip.getId();
serviceDay = sd.time(0);
}
/**
* must pass in both table and trip, because tripTimes do not have stops.
*/
public static List fromTripTimes (Timetable table, Trip trip) {
TripTimes times = table.getTripTimes(table.getTripIndex(trip.getId()));
List out = new ArrayList<>();
// one per stop, not one per hop, thus the <= operator
for (int i = 0; i < times.getNumStops(); ++i) {
out.add(new TripTimeShort(times, i, table.pattern.getStop(i)));
}
return out;
}
/**
* must pass in both table and trip, because tripTimes do not have stops.
* @param serviceDay service day to set, if null none is set
*/
public static List fromTripTimes(Timetable table, Trip trip,
ServiceDay serviceDay) {
TripTimes times = table.getTripTimes(table.getTripIndex(trip.getId()));
List out = new ArrayList<>();
// one per stop, not one per hop, thus the <= operator
for (int i = 0; i < times.getNumStops(); ++i) {
out.add(new TripTimeShort(times, i, table.pattern.getStop(i), serviceDay));
}
return out;
}
public static Comparator compareByDeparture() {
return Comparator.comparing(t -> t.serviceDay + t.realtimeDeparture);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy