diff --git a/enabler/src/de/schildbach/pte/dto/Stop.java b/enabler/src/de/schildbach/pte/dto/Stop.java index e0441811..325905fa 100644 --- a/enabler/src/de/schildbach/pte/dto/Stop.java +++ b/enabler/src/de/schildbach/pte/dto/Stop.java @@ -177,6 +177,22 @@ public final class Stop implements Serializable return predictedDeparturePosition != null; } + public Date getMinTime() + { + if (plannedDepartureTime == null || (predictedDepartureTime != null && predictedDepartureTime.before(plannedDepartureTime))) + return predictedDepartureTime; + else + return plannedDepartureTime; + } + + public Date getMaxTime() + { + if (plannedArrivalTime == null || (predictedArrivalTime != null && predictedArrivalTime.after(plannedArrivalTime))) + return predictedArrivalTime; + else + return plannedArrivalTime; + } + @Override public String toString() { diff --git a/enabler/src/de/schildbach/pte/dto/Trip.java b/enabler/src/de/schildbach/pte/dto/Trip.java index 109c1465..55abe1e6 100644 --- a/enabler/src/de/schildbach/pte/dto/Trip.java +++ b/enabler/src/de/schildbach/pte/dto/Trip.java @@ -110,6 +110,30 @@ public final class Trip implements Serializable return null; } + /** Minimum time occuring in this trip. */ + public Date getMinTime() + { + Date minTime = null; + + for (final Leg leg : legs) + if (minTime == null || leg.getMinTime().before(minTime)) + minTime = leg.getMinTime(); + + return minTime; + } + + /** Maximum time occuring in this trip. */ + public Date getMaxTime() + { + Date maxTime = null; + + for (final Leg leg : legs) + if (maxTime == null || leg.getMaxTime().after(maxTime)) + maxTime = leg.getMaxTime(); + + return maxTime; + } + public List products() { final List products = new LinkedList(); @@ -224,6 +248,12 @@ public final class Trip implements Serializable /** Coarse arrival time. */ public abstract Date getArrivalTime(); + + /** Minimum time occuring in this leg. */ + public abstract Date getMinTime(); + + /** Maximum time occuring in this leg. */ + public abstract Date getMaxTime(); } public final static class Public extends Leg @@ -312,6 +342,18 @@ public final class Trip implements Serializable return arrivalStop.isArrivalPositionPredicted(); } + @Override + public Date getMinTime() + { + return departureStop.getMinTime(); + } + + @Override + public Date getMaxTime() + { + return arrivalStop.getMaxTime(); + } + @Override public String toString() { @@ -375,6 +417,18 @@ public final class Trip implements Serializable return arrivalTime; } + @Override + public Date getMinTime() + { + return departureTime; + } + + @Override + public Date getMaxTime() + { + return arrivalTime; + } + @Override public String toString() {