content: /*
   *  Copyright (C) 2010-2012, 2019 Stichting Akvo (Akvo Foundation)
   *
   *  This file is part of Akvo FLOW.
   *
   *  Akvo FLOW is free software: you can redistribute it and modify it under the terms of
   *  the GNU Affero General Public License (AGPL) as published by the Free Software Foundation,
   *  either version 3 of the License or any later version.
   *
   *  Akvo FLOW is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
   *  without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
   *  See the GNU Affero General Public License included below for more details.
   *
   *  The full license text can also be seen at <http://www.gnu.org/licenses/agpl.html>.
   */
  
  package org.waterforpeople.mapping.app.web.dto;
  
  import javax.servlet.http.HttpServletRequest;
  
  import com.gallatinsystems.framework.rest.RestError;
  import com.gallatinsystems.framework.rest.RestRequest;
  
  public class SurveyAssemblyRequest extends RestRequest {
  
      /**
  	 * 
  	 */
      private static final long serialVersionUID = -4264292935305363469L;
  
      public static final String ASSEMBLE_SURVEY = "assembleSurvey";
      public static final String DISPATCH_ASSEMBLE_QUESTION_GROUP = "dispatchAssembleQuestionGroup";
      public static final String ASSEMBLE_QUESTION_GROUP = "assembleQuestionGroup";
      public static final String ASSEMBLE_QUESTIONS = "assembleQuestions";
      public static final String ASSEMBLE_SURVEY_FRAGMENTS = "assembleSurveyFragments";
      public static final String DISTRIBUTE_SURVEY = "distributeSurvey";
      public static final String CLEANUP = "cleanup";
  
      public static final String SURVEY_ID_PARAM = "surveyId";
      private static final String START_ROW_PARAM = "startRow";
      private static final String GROUP_ID_PARAM = "questionGroupId";
      private static final String TRANSACTION_ID_PARAM = "transactionId";
  
      private static final String LAST_GROUP_FLAG_PARAM = "lastGroupFlag";
  
      private Long surveyId = null;
      private Boolean lastGroupFlag = null;
      private int startRow = 0;
      private String questionGroupId = null;
      private Long transactionId = null;
  
      public Long getTransactionId() {
          return transactionId;
      }
  
      public void setTransactionId(Long transactionId) {
          this.transactionId = transactionId;
      }
  
      public Long getSurveyId() {
          return surveyId;
      }
  
      public void setSurveyId(Long surveyId) {
          this.surveyId = surveyId;
      }
  
      public int getStartRow() {
          return startRow;
      }
  
      public void setStartRow(int startRow) {
          this.startRow = startRow;
      }
  
      @Override
      protected void populateErrors() {
          if (surveyId == null) {
              addError(new RestError(RestError.MISSING_PARAM_ERROR_CODE,
                      RestError.MISSING_PARAM_ERROR_MESSAGE, SURVEY_ID_PARAM
                              + " cannot be null"));
          }
      }
  
      @Override
      protected void populateFields(HttpServletRequest req) throws Exception {
          if (req.getParameter(SURVEY_ID_PARAM) != null)
              surveyId = Long.parseLong(req.getParameter(SURVEY_ID_PARAM));
          if (req.getParameter(GROUP_ID_PARAM) != null)
              questionGroupId = req.getParameter(GROUP_ID_PARAM);
          if (req.getParameter(START_ROW_PARAM) != null)
              startRow = Integer.parseInt(req.getParameter(START_ROW_PARAM));
          if (req.getParameter(LAST_GROUP_FLAG_PARAM) != null)
              setLastGroupFlag(Boolean.parseBoolean(req
                      .getParameter(LAST_GROUP_FLAG_PARAM)));
          if (req.getParameter(TRANSACTION_ID_PARAM) != null)
              setTransactionId(Long.parseLong(req
                      .getParameter(TRANSACTION_ID_PARAM)));
      }
  
      public void setQuestionGroupId(String questionGroupId) {
          this.questionGroupId = questionGroupId;
      }
  
      public String getQuestionGroupId() {
          return questionGroupId;
      }
  
      public void setLastGroupFlag(Boolean lastGroupFlag) {
          this.lastGroupFlag = lastGroupFlag;
      }
  
      public Boolean getLastGroupFlag() {
          return lastGroupFlag;
      }
  
  }
  