View Javadoc

1   package org.itracker.model;
2   
3   import java.io.Serializable;
4   import java.util.Date;
5   
6   /**
7    * All database entities must implement this interface, which represents 
8    * the minimum requirements to meet. 
9    * 
10   * <p>A database entity always has an <code>Integer</code> surrogate key 
11   * (system ID). It must also be Serializable and Cloneable. </p>
12   * 
13   * <p>A database entity class must also fulfill the following requirements, 
14   * that cannot be expressed by a Java interface : </p>
15   * <ul>
16   *  <li>be a Java bean ; </li>
17   *  <li>be non-final. </li>
18   * </ul>
19   * 
20   * @author johnny
21   * @see AbstractEntity
22   */
23  public interface Entity extends Serializable, Cloneable, Comparable<Entity> {
24      
25      /* PENDING : should createDate and lastModifiedDate properties 
26       * be part of this interface ? 
27       * Should we add createdBy and lastModifiedBy ? */
28      
29      /**
30       * Returns the system ID. 
31       * 
32       * @return ID &gt; 0 for persistent entities, 
33       *         <tt>null</tt> for transient ones
34       */
35      Integer getId();
36      
37      /**
38       * Sets this entity's system ID. 
39       * 
40       * @param id ID &gt; 0 for persistent entities, 
41       *        <tt>null</tt> for transient ones
42       */
43      void setId(Integer id);
44      
45      void setLastModifiedDate(Date date);
46      Date getLastModifiedDate();
47      
48      void setCreateDate(Date date);
49      
50      Date getCreateDate();
51  
52  	boolean isNew();
53  }