/** * 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.actions.admin.console; import java.io.IOException; import java.util.List; import org.apache.struts2.convention.annotation.Result; import org.apache.struts2.convention.annotation.Results; import org.json.JSONException; import org.onebusaway.transit_data.model.service_alerts.ServiceAlertBean; import org.onebusaway.transit_data.model.service_alerts.SituationAffectsBean; import org.onebusaway.transit_data.services.TransitDataService; import org.springframework.beans.factory.annotation.Autowired; import com.opensymphony.xwork2.ActionSupport; import com.opensymphony.xwork2.ModelDriven; @Results({@Result(type = "redirectAction", params = { "actionName", "service-alert", "id", "${id}", "parse", "true"})}) public class ServiceAlertAffectsAction extends ActionSupport implements ModelDriven<SituationAffectsBean> { private static final long serialVersionUID = 1L; private TransitDataService _transitDataService; private SituationAffectsBean _model = new SituationAffectsBean(); private String _id; private int _index = -1; @Autowired public void setTransitDataService(TransitDataService transitDataService) { _transitDataService = transitDataService; } @Override public SituationAffectsBean getModel() { return _model; } public void setId(String id) { _id = id; } public String getId() { return _id; } public void setIndex(int index) { _index = index; } public int getIndex() { return _index; } public String update() throws IOException, JSONException { if (_id == null || _index == -1) { return INPUT; } ServiceAlertBean alert = _transitDataService.getServiceAlertForId(_id); if (alert == null) { return INPUT; } List<SituationAffectsBean> allAffects = alert.getAllAffects(); if (allAffects == null || _index >= allAffects.size()) { return INPUT; } _model.setAgencyId(string(_model.getAgencyId())); _model.setRouteId(string(_model.getRouteId())); _model.setDirectionId(string(_model.getDirectionId())); _model.setTripId(string(_model.getTripId())); _model.setStopId(string(_model.getStopId())); allAffects.set(_index, _model); _transitDataService.updateServiceAlert(alert); return SUCCESS; } public String delete() { if (_id == null || _index == -1) { return INPUT; } ServiceAlertBean alert = _transitDataService.getServiceAlertForId(_id); if (alert == null) { return INPUT; } List<SituationAffectsBean> allAffects = alert.getAllAffects(); if (allAffects == null || _index >= allAffects.size()) { return INPUT; } allAffects.remove(_index); _transitDataService.updateServiceAlert(alert); return SUCCESS; } /**** * ****/ private String string(String value) { if (value == null || value.isEmpty() || value.equals("null")) return null; return value; } }