/**
* 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_federation.services.beans;
import org.onebusaway.geospatial.model.CoordinateBounds;
import org.onebusaway.gtfs.model.AgencyAndId;
import org.onebusaway.transit_data.model.ListBean;
import org.onebusaway.transit_data.model.blocks.BlockDetailsBean;
import org.onebusaway.transit_data.model.blocks.BlockStatusBean;
/**
* Service methods for querying the real-time status and position of a
* particular block of trips.
*
* @author bdferris
* @see StatusBean
* @see BlockDetailsBean
*/
public interface BlockStatusBeanService {
/**
*
* @param vehicleId
* @param time
* @param detailsInclusionBean controls what will be included in the response
* @return trip details for the trip operated by the specified vehicle at the
* specified time, or null if not found
*/
public BlockStatusBean getBlockForVehicle(AgencyAndId vehicleId, long time);
/**
*
* @param query
* @return the list of active blocks matching agency query criteria
*/
public ListBean<BlockStatusBean> getBlocksForAgency(String agencyId, long time);
/**
*
* @param query
* @return the list of active blocks matching the route query criteria
*/
public ListBean<BlockStatusBean> getBlocksForRoute(AgencyAndId routeId,
long time);
/**
* @param query
* @return the list of active blocks matching the query criteria
*/
public ListBean<BlockStatusBean> getBlocksForBounds(CoordinateBounds bounds,
long time);
}