───────┬────────────────────────────────────────────────────────────────────────
       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 jp.ac.kobe_u.cs.itspecialist.todoapp.dto.ToDoForm;
  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        @Temporal(TemporalType.TIMESTAMP)
  38        Date dueAt;       //期限
  39    
  40        public boolean isValidDueDate() {
  41            if (dueAt == null) { // dueが設定されていなければ無視する.
  42                return true;
  43            }
  44            if (done) { // 完了していれば,更新不可.
  45                return false;
  46            }
  47            // 期限は作成日よりも後でなければならない.
  48            return dueAt.after(createdAt);
  49        }
  50    
  51        private static final DateFormat FORMATTER = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
  52    
  53        public String getDueString() {
  54            if(dueAt == null) {
  55                return "";
  56            }
  57            return FORMATTER.format(dueAt);
  58        }
  59    }
───────┴────────────────────────────────────────────────────────────────────────