/** * 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.webapp.impl; import java.util.Date; import java.util.List; import org.onebusaway.exceptions.ServiceException; import org.onebusaway.geospatial.model.CoordinatePoint; import org.onebusaway.presentation.services.DefaultSearchLocationService; import org.onebusaway.transit_data.model.AgencyWithCoverageBean; import org.onebusaway.transit_data.model.ArrivalsAndDeparturesQueryBean; import org.onebusaway.transit_data.model.ListBean; import org.onebusaway.transit_data.model.RouteBean; import org.onebusaway.transit_data.model.RoutesAndStopsBean; import org.onebusaway.transit_data.model.RoutesBean; import org.onebusaway.transit_data.model.SearchQueryBean; import org.onebusaway.transit_data.model.StopBean; import org.onebusaway.transit_data.model.StopScheduleBean; import org.onebusaway.transit_data.model.StopWithArrivalsAndDeparturesBean; import org.onebusaway.transit_data.model.StopsBean; import org.onebusaway.transit_data.model.StopsForRouteBean; import org.onebusaway.transit_data.model.oba.LocalSearchResult; import org.onebusaway.transit_data.model.oba.MinTransitTimeResult; import org.onebusaway.transit_data.model.oba.MinTravelTimeToStopsBean; import org.onebusaway.transit_data.model.oba.TimedPlaceBean; import org.onebusaway.transit_data.model.tripplanning.ConstraintsBean; import org.onebusaway.transit_data.model.tripplanning.ItinerariesBean; import org.onebusaway.transit_data.model.tripplanning.TransitLocationBean; import org.onebusaway.transit_data.model.tripplanning.TransitShedConstraintsBean; import org.onebusaway.transit_data.model.trips.TripDetailsBean; import org.onebusaway.transit_data.model.trips.TripsForBoundsQueryBean; import org.onebusaway.transit_data.services.TransitDataService; import org.onebusaway.users.client.model.UserBean; import org.onebusaway.users.services.CurrentUserService; import org.onebusaway.webapp.gwt.where_library.rpc.WebappService; import org.onebusaway.webapp.services.oba.OneBusAwayService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @Component class WebappServiceImpl implements WebappService { private static final long serialVersionUID = 1L; @Autowired private TransitDataService _transitDataService; @Autowired private CurrentUserService _currentUserService; @Autowired private OneBusAwayService _oneBusAwayService; @Autowired private DefaultSearchLocationService _defaultSearchLocationService; /*************************************************************************** * {@link WebappService} Interface **************************************************************************/ @Override public UserBean getCurrentUser() { UserBean user = _currentUserService.getCurrentUser(); if (user == null) user = _currentUserService.getAnonymousUser(); return user; } @Override public UserBean setDefaultLocationForUser(String locationName, double lat, double lon) { _defaultSearchLocationService.setDefaultLocationForCurrentUser( locationName, lat, lon); return getCurrentUser(); } @Override public UserBean clearDefaultLocationForUser() { _defaultSearchLocationService.clearDefaultLocationForCurrentUser(); return getCurrentUser(); } @Override public List<AgencyWithCoverageBean> getAgencies() throws ServiceException { return _transitDataService.getAgenciesWithCoverage(); } @Override public RoutesAndStopsBean getRoutesAndStops(SearchQueryBean query) throws ServiceException { RoutesBean routes = _transitDataService.getRoutes(query); StopsBean stops = _transitDataService.getStops(query); return new RoutesAndStopsBean(routes, stops); } @Override public RoutesBean getRoutes(SearchQueryBean query) throws ServiceException { RoutesBean result = _transitDataService.getRoutes(query); return result; } @Override public RouteBean getRouteForId(String routeId) throws ServiceException { return _transitDataService.getRouteForId(routeId); } @Override public StopsForRouteBean getStopsForRoute(String routeId) throws ServiceException { return _transitDataService.getStopsForRoute(routeId); } @Override public StopsBean getStops(SearchQueryBean query) throws ServiceException { return _transitDataService.getStops(query); } @Override public StopBean getStop(String stopId) throws ServiceException { return _transitDataService.getStop(stopId); } @Override public StopWithArrivalsAndDeparturesBean getArrivalsByStopId(String stopId) throws ServiceException { return _transitDataService.getStopWithArrivalsAndDepartures(stopId, new ArrivalsAndDeparturesQueryBean()); } @Override public StopScheduleBean getScheduleForStop(String stopId, Date date) throws ServiceException { return _transitDataService.getScheduleForStop(stopId, date); } @Override public ListBean<TripDetailsBean> getTripsForBounds( TripsForBoundsQueryBean query) { return _transitDataService.getTripsForBounds(query); } @Override public ItinerariesBean getTripsBetween(CoordinatePoint from, CoordinatePoint to, long time, ConstraintsBean constraints) throws ServiceException { TransitLocationBean fromLoc = new TransitLocationBean(); fromLoc.setLat(from.getLat()); fromLoc.setLon(from.getLon()); TransitLocationBean toLoc = new TransitLocationBean(); toLoc.setLat(to.getLat()); toLoc.setLon(to.getLon()); return _transitDataService.getItinerariesBetween(fromLoc, toLoc, time, constraints); } @Override public MinTransitTimeResult getMinTravelTimeToStopsFrom( CoordinatePoint location, long time, TransitShedConstraintsBean constraints, int timeSegmentSize) throws ServiceException { return _oneBusAwayService.getMinTravelTimeToStopsFrom(location, time, constraints, timeSegmentSize); } @Override public List<TimedPlaceBean> getLocalPathsToStops(ConstraintsBean constraints, MinTravelTimeToStopsBean travelTimes, List<LocalSearchResult> localResults) throws ServiceException { return _oneBusAwayService.getLocalPaths(constraints, travelTimes, localResults); } }