───────┬────────────────────────────────────────────────────────────────────────
       File: src/main//java/jp/ac/kobe_u/cs/itspecialist/todoapp/entity/ToDo.java
───────┼────────────────────────────────────────────────────────────────────────
   1    package jp.ac.kobe_u.cs.itspecialist.todoapp.entity;
   2    
   3    import java.text.DateFormat;
   4    import java.text.SimpleDateFormat;
   5    import java.util.Date;
   6    
   7    import javax.persistence.Entity;
   8    import javax.persistence.GeneratedValue;
   9    import javax.persistence.GenerationType;
  10    import javax.persistence.Id;
  11    import javax.persistence.Temporal;
  12    import javax.persistence.TemporalType;
  13    
  14    import humanize.Humanize;
  15    import lombok.AllArgsConstructor;
  16    import lombok.Data;
  17    import lombok.NoArgsConstructor;
  18    
  19    /**
  20     * ToDo エンティティ
  21     */
  22    @Data
  23    @AllArgsConstructor
  24    @NoArgsConstructor
  25    @Entity
  26    public class ToDo {
  27        @Id
  28        @GeneratedValue(strategy = GenerationType.IDENTITY)
  29        Long seq;         //通し番号
  30        String title;     //題目
  31        String mid;       //作成者
  32        boolean done;     //完了フラグ
  33        @Temporal(TemporalType.TIMESTAMP)
  34        Date createdAt;   //作成日時
  35        @Temporal(TemporalType.TIMESTAMP)
  36        Date doneAt;      //完了日時
  37    
  38        @Temporal(TemporalType.TIMESTAMP)
  39        Date dueAt;       //期限
  40        String background; //背景色
  41    
  42        public boolean isValidDueDate() {
  43            if (dueAt == null) { // dueが設定されていなければ無視する.
  44                return true;
  45            }
  46            if (done) { // 完了していれば,更新不可.
  47                return false;
  48            }
  49            // 期限は作成日よりも後でなければならない.
  50            return dueAt.after(createdAt);
  51        }
  52    
  53        private static final DateFormat FORMATTER = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
  54    
  55        public String getDueString() {
  56            if (dueAt == null) {
  57                return "";
  58            }
  59            return FORMATTER.format(dueAt);
  60        }
  61    
  62        public String humanizeCreatedAt() {
  63            return Humanize.naturalDay(createdAt);
  64        }
  65    
  66        public String humanizeDueAt() {
  67            if(dueAt == null) {
  68                return "";
  69            }
  70            return Humanize.naturalDay(dueAt);
  71        }
  72    
  73        public String humanizeDoneAt() {
  74            if(doneAt == null) {
  75                return "";
  76            }
  77            return Humanize.naturalDay(doneAt);
  78        }
  79    }
───────┴────────────────────────────────────────────────────────────────────────