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.akvo.flow.domain.persistent;
  
  import java.util.ArrayList;
  import java.util.Date;
  import java.util.List;
  
  import javax.jdo.annotations.PersistenceCapable;
  
  import com.gallatinsystems.framework.domain.BaseDomain;
  
  /**
   * domain to store assignment of forms to devices
   */
  @PersistenceCapable
  public class SurveyAssignment extends BaseDomain {
  
      private static final long serialVersionUID = -2028880542041242779L;
      private Long surveyId;
      private List<Long> formIds;
  
      /*
      * We will no longer use the surveyIds but we need the property in there until
      * we are done migrating the contents to formIds.
      * */
      @Deprecated
      private List<Long> surveyIds;
      private List<Long> deviceIds;
      private String name;
      private String language;
      private Date startDate;
      private Date endDate;
  
      public Long getSurveyId() {
          return surveyId;
      }
  
      public void setSurveyId(Long surveyId) {
          this.surveyId = surveyId;
      }
  
      public String getLanguage() {
          return language;
      }
  
      public void setLanguage(String language) {
          this.language = language;
      }
  
      public String getName() {
          return name;
      }
  
      public void setName(String name) {
          this.name = name;
      }
  
      public Date getStartDate() {
          return startDate;
      }
  
      public void setStartDate(Date startDate) {
          this.startDate = startDate;
      }
  
      public Date getEndDate() {
          return endDate;
      }
  
      public void setEndDate(Date endDate) {
          this.endDate = endDate;
      }
  
      public List<Long> getFormIds() {
          // we return the surveyIds for the time being till we migrate the
          // surveyIds property on all entities to the formIds property
          if (formIds == null || formIds.isEmpty()&& !surveyIds.isEmpty()) {
              return surveyIds;
          } else {
              return formIds;
          }
      }
  
      public void setFormIds(List<Long> formIds) {
          this.formIds = formIds;
      }
  
      public List<Long> getDeviceIds() {
          return deviceIds;
      }
  
      public void setDeviceIds(List<Long> deviceIds) {
          this.deviceIds = deviceIds;
      }
  
      public void addForm(Long formId) {
          if (formIds == null)
              formIds = new ArrayList<Long>();
          formIds.add(formId);
      }
  
  }
  