Package org.onebusaway.webapp.actions.admin.debug

Source Code of org.onebusaway.webapp.actions.admin.debug.VehicleLocationRecordAction

/**
* 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.debug;

import java.util.Map;

import org.apache.struts2.convention.annotation.Result;
import org.apache.struts2.convention.annotation.Results;
import org.apache.struts2.interceptor.SessionAware;
import org.apache.struts2.interceptor.validation.SkipValidation;
import org.onebusaway.transit_data.model.realtime.VehicleLocationRecordBean;
import org.onebusaway.transit_data.services.TransitDataService;
import org.springframework.beans.factory.annotation.Autowired;

import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
import com.opensymphony.xwork2.validator.annotations.RequiredStringValidator;
import com.opensymphony.xwork2.validator.annotations.Validations;

@Results({
    @Result(type = "redirectAction", name = "submitSuccess", params = {
        "actionName", "vehicle-location-record", "m", "1"}),
    @Result(type = "redirectAction", name = "resetSuccess", params = {
        "actionName", "vehicle-location-record", "m", "2"})})
public class VehicleLocationRecordAction extends ActionSupport implements
    ModelDriven<VehicleLocationRecordBean>, SessionAware {

  private static final String KEY_LAST_RECORD = VehicleLocationRecordAction.class.getName()
      + ".lastRecord";

  private static final long serialVersionUID = 1L;

  private VehicleLocationRecordBean _model = new VehicleLocationRecordBean();

  private TransitDataService _transitDataService;

  private Map<String, Object> _session;

  private int _m = 0;

  @Autowired
  public void setTransitDataService(TransitDataService transitDataService) {
    _transitDataService = transitDataService;
  }

  @Override
  public VehicleLocationRecordBean getModel() {
    return _model;
  }

  @Override
  public void setSession(Map<String, Object> session) {
    _session = session;
  }

  public void setM(int m) {
    _m = m;
  }

  @SkipValidation
  @Override
  public String execute() {
    VehicleLocationRecordBean lastRecord = (VehicleLocationRecordBean) _session.get(KEY_LAST_RECORD);
    if (lastRecord != null) {
      _model.copyFrom(lastRecord);
    }
    switch(_m) {
      case 1:
        addActionMessage("Record submitted!");
        break;
      case 2:
        addActionMessage("Vehicle reset!");
        break;
    }
    return SUCCESS;
  }

  @Validations(requiredStrings = {@RequiredStringValidator(fieldName = "vehicleId", key = "requiredField")})
  public String submit() {

    if (_model.getTimeOfRecord() == 0)
      _model.setTimeOfRecord(System.currentTimeMillis());

    _model.setBlockId(clean(_model.getBlockId()));
    _model.setTripId(clean(_model.getTripId()));
    _model.setVehicleId(clean(_model.getVehicleId()));

    _transitDataService.submitVehicleLocation(_model);

    _session.put(KEY_LAST_RECORD, _model);

    return "submitSuccess";
  }

  @Validations(requiredStrings = {@RequiredStringValidator(fieldName = "vehicleId", key = "requiredField")})
  public String reset() {
    _transitDataService.resetVehicleLocation(_model.getVehicleId());
    return "resetSuccess";
  }

  private String clean(String value) {
    if (value != null && value.trim().isEmpty())
      return null;
    return value;
  }

}
TOP

Related Classes of org.onebusaway.webapp.actions.admin.debug.VehicleLocationRecordAction

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.