/**
* Copyright (C) 2011 Brian Ferris <bdferris@onebusaway.org>
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.onebusaway.transit_data.model;
import java.util.List;
import org.onebusaway.transit_data.model.realtime.HistogramBean;
import org.onebusaway.transit_data.model.schedule.FrequencyBean;
import org.onebusaway.transit_data.model.service_alerts.ServiceAlertBean;
import org.onebusaway.transit_data.model.trips.TripBean;
import org.onebusaway.transit_data.model.trips.TripStatusBean;
public class ArrivalAndDepartureBean extends ApplicationBean {
private static final long serialVersionUID = 3L;
private TripBean trip;
private long serviceDate;
private String vehicleId;
private StopBean stop;
private int stopSequence;
private int blockTripSequence;
private boolean arrivalEnabled;
private long scheduledArrivalTime;
private TimeIntervalBean scheduledArrivalInterval;
private long predictedArrivalTime;
private TimeIntervalBean predictedArrivalInterval;
private boolean departureEnabled;
private long scheduledDepartureTime;
private TimeIntervalBean scheduledDepartureInterval;
private long predictedDepartureTime;
private TimeIntervalBean predictedDepartureInterval;
private FrequencyBean frequency;
private boolean predicted = false;
private Long lastUpdateTime;
private String status;
private double distanceFromStop = Double.NaN;
private int numberOfStopsAway;
private String routeShortName;
private String tripHeadsign;
private TripStatusBean tripStatus;
private List<ServiceAlertBean> situations;
private HistogramBean scheduleDeviationHistogram;
public TripBean getTrip() {
return trip;
}
public void setTrip(TripBean trip) {
this.trip = trip;
}
public long getServiceDate() {
return serviceDate;
}
public void setServiceDate(long serviceDate) {
this.serviceDate = serviceDate;
}
public String getVehicleId() {
return vehicleId;
}
public void setVehicleId(String vehicleId) {
this.vehicleId = vehicleId;
}
public StopBean getStop() {
return stop;
}
public void setStop(StopBean stop) {
this.stop = stop;
}
public int getStopSequence() {
return stopSequence;
}
public void setStopSequence(int stopSequence) {
this.stopSequence = stopSequence;
}
public int getBlockTripSequence() {
return blockTripSequence;
}
public void setBlockTripSequence(int blockTripSequence) {
this.blockTripSequence = blockTripSequence;
}
public boolean isArrivalEnabled() {
return arrivalEnabled;
}
public void setArrivalEnabled(boolean arrivalEnabled) {
this.arrivalEnabled = arrivalEnabled;
}
public long getScheduledArrivalTime() {
return scheduledArrivalTime;
}
public void setScheduledArrivalTime(long scheduledArrivalTime) {
this.scheduledArrivalTime = scheduledArrivalTime;
}
public TimeIntervalBean getScheduledArrivalInterval() {
return scheduledArrivalInterval;
}
public void setScheduledArrivalInterval(
TimeIntervalBean scheduledArrivalInterval) {
this.scheduledArrivalInterval = scheduledArrivalInterval;
}
public long getPredictedArrivalTime() {
return predictedArrivalTime;
}
public void setPredictedArrivalTime(long predictedArrivalTime) {
this.predictedArrivalTime = predictedArrivalTime;
}
public TimeIntervalBean getPredictedArrivalInterval() {
return predictedArrivalInterval;
}
public void setPredictedArrivalInterval(
TimeIntervalBean predictedArrivalInterval) {
this.predictedArrivalInterval = predictedArrivalInterval;
}
public boolean isDepartureEnabled() {
return departureEnabled;
}
public void setDepartureEnabled(boolean departureEnabled) {
this.departureEnabled = departureEnabled;
}
public long getScheduledDepartureTime() {
return scheduledDepartureTime;
}
public void setScheduledDepartureTime(long scheduledDepartureTime) {
this.scheduledDepartureTime = scheduledDepartureTime;
}
public TimeIntervalBean getScheduledDepartureInterval() {
return scheduledDepartureInterval;
}
public void setScheduledDepartureInterval(
TimeIntervalBean scheduledDepartureInterval) {
this.scheduledDepartureInterval = scheduledDepartureInterval;
}
public long getPredictedDepartureTime() {
return predictedDepartureTime;
}
public void setPredictedDepartureTime(long predictedDepartureTime) {
this.predictedDepartureTime = predictedDepartureTime;
}
public TimeIntervalBean getPredictedDepartureInterval() {
return predictedDepartureInterval;
}
public void setPredictedDepartureInterval(
TimeIntervalBean predictedDepartureInterval) {
this.predictedDepartureInterval = predictedDepartureInterval;
}
public FrequencyBean getFrequency() {
return frequency;
}
public void setFrequency(FrequencyBean frequency) {
this.frequency = frequency;
}
public boolean isPredicted() {
return predicted;
}
public void setPredicted(boolean predicted) {
this.predicted = predicted;
}
public Long getLastUpdateTime() {
return lastUpdateTime;
}
public void setLastUpdateTime(Long lastUpdateTime) {
this.lastUpdateTime = lastUpdateTime;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public boolean isDistanceFromStopSet() {
return !Double.isNaN(distanceFromStop);
}
public double getDistanceFromStop() {
return distanceFromStop;
}
public void setDistanceFromStop(double distanceFromStop) {
this.distanceFromStop = distanceFromStop;
}
public int getNumberOfStopsAway() {
return numberOfStopsAway;
}
public void setNumberOfStopsAway(int numberOfStopsAway) {
this.numberOfStopsAway = numberOfStopsAway;
}
public String getRouteShortName() {
return routeShortName;
}
public void setRouteShortName(String routeShortName) {
this.routeShortName = routeShortName;
}
public String getTripHeadsign() {
return tripHeadsign;
}
public void setTripHeadsign(String tripHeadsign) {
this.tripHeadsign = tripHeadsign;
}
public TripStatusBean getTripStatus() {
return tripStatus;
}
public void setTripStatus(TripStatusBean tripStatus) {
this.tripStatus = tripStatus;
}
public List<ServiceAlertBean> getSituations() {
return situations;
}
public void setSituations(List<ServiceAlertBean> situations) {
this.situations = situations;
}
public HistogramBean getScheduleDeviationHistogram() {
return scheduleDeviationHistogram;
}
public void setScheduleDeviationHistogram(
HistogramBean scheduleDeviationHistogram) {
this.scheduleDeviationHistogram = scheduleDeviationHistogram;
}
public boolean hasPredictedArrivalTime() {
return this.predictedArrivalTime > 0;
}
public boolean hasPredictedDepartureTime() {
return this.predictedDepartureTime > 0;
}
public long computeBestArrivalTime() {
return hasPredictedArrivalTime() ? getPredictedArrivalTime()
: getScheduledArrivalTime();
}
public long computeBestDepartureTime() {
return hasPredictedDepartureTime() ? getPredictedDepartureTime()
: getScheduledDepartureTime();
}
@Override
public String toString() {
return "route=" + trip.getRoute() + " scheduled=" + scheduledArrivalTime
+ " predicted=" + predictedArrivalTime;
}
}