content: /*
   *  Copyright (C) 2010-2015 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.framework.domain;
  
  import java.io.Serializable;
  import java.util.Date;
  import java.util.List;
  
  import javax.jdo.annotations.IdGeneratorStrategy;
  import javax.jdo.annotations.Inheritance;
  import javax.jdo.annotations.InheritanceStrategy;
  import javax.jdo.annotations.PersistenceCapable;
  import javax.jdo.annotations.Persistent;
  import javax.jdo.annotations.PrimaryKey;
  
  import com.google.appengine.api.datastore.Key;
  
  /**
   * base class for all persistent objects. It defines 5 fields common to all persistent objects (key
   * plus 4 audit fields).
   *
   * @author Christopher Fagiani
   */
  @PersistenceCapable
  @Inheritance(strategy = InheritanceStrategy.SUBCLASS_TABLE)
  public abstract class BaseDomain implements Serializable {
  
      private static final long serialVersionUID = 7824199813334027150L;
      @PrimaryKey
      @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
      protected Key key;
      protected Date createdDateTime;
      protected Date lastUpdateDateTime;
      protected Long lastUpdateUserId;
      protected Long createUserId;
      protected List<Long> ancestorIds;
  
      public Key getKey() {
          return key;
      }
  
      public void setKey(Key key) {
          this.key = key;
      }
  
      public Date getCreatedDateTime() {
          return createdDateTime;
      }
  
      public void setCreatedDateTime(Date createdDateTime) {
          this.createdDateTime = createdDateTime;
      }
  
      public Date getLastUpdateDateTime() {
          return lastUpdateDateTime;
      }
  
      public void setLastUpdateDateTime(Date lastUpdateDateTime) {
          this.lastUpdateDateTime = lastUpdateDateTime;
      }
  
      public Long getLastUpdateUserId() {
          return lastUpdateUserId;
      }
  
      public void setLastUpdateUserId(Long lastUpdateUserId) {
          this.lastUpdateUserId = lastUpdateUserId;
      }
  
      public Long getCreateUserId() {
          return createUserId;
      }
  
      public void setCreateUserId(Long createUserId) {
          this.createUserId = createUserId;
      }
  
      public List<Long> getAncestorIds() {
          return ancestorIds;
      }
  
      public void setAncestorIds(List<Long> ancestorIds) {
          this.ancestorIds = ancestorIds;
      }
  }
  