content: /*
   *  Copyright (C) 2010-2012 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 com.gallatinsystems.notification.app.gwt.client;
  
  import java.util.Date;
  
  import com.gallatinsystems.framework.gwt.dto.client.BaseDto;
  
  /**
   * DTO for transferring notificationSubscriptions between client and server
   * 
   * @author Christopher Fagiani
   */
  public class NotificationSubscriptionDto extends BaseDto {
  
      private static final long serialVersionUID = -1283796572763884626L;
      private String notificationType;
      private String notificationMethod;
      private String notificationDestination;
      private String notificationOption;
      private Long entityId;
      private Date expiryDate;
  
      public String getNotificationOption() {
          return notificationOption;
      }
  
      public void setNotificationOption(String notificationOption) {
          this.notificationOption = notificationOption;
      }
  
      public String getNotificationType() {
          return notificationType;
      }
  
      public void setNotificationType(String notificationType) {
          this.notificationType = notificationType;
      }
  
      public String getNotificationMethod() {
          return notificationMethod;
      }
  
      public void setNotificationMethod(String notificationMethod) {
          this.notificationMethod = notificationMethod;
      }
  
      public String getNotificationDestination() {
          return notificationDestination;
      }
  
      public void setNotificationDestination(String notificationDestination) {
          this.notificationDestination = notificationDestination;
      }
  
      public Long getEntityId() {
          return entityId;
      }
  
      public void setEntityId(Long entityId) {
          this.entityId = entityId;
      }
  
      public Date getExpiryDate() {
          return expiryDate;
      }
  
      public void setExpiryDate(Date expiryDate) {
          this.expiryDate = expiryDate;
      }
  
      @Override
      public boolean equals(Object o) {
          if (o != null) {
              if (o instanceof NotificationSubscriptionDto) {
                  NotificationSubscriptionDto otherDto = (NotificationSubscriptionDto) o;
                  if (notificationType != null && entityId != null) {
                      if (notificationType.equals(otherDto.getNotificationType())
                              && entityId.equals(otherDto.getEntityId())) {
                          return true;
                      } else {
                          return false;
                      }
                  } else {
                      return false;
                  }
              } else {
                  return false;
              }
          } else {
              return false;
          }
      }
  
      public boolean validate() {
          if (entityId == null || notificationType == null || expiryDate == null
                  || notificationDestination == null) {
              return false;
          } else {
              return true;
          }
      }
  }
  