src/main/java/de/uapcore/lightpit/entities/Issue.java

changeset 75
33b6843fdf8a
parent 62
833e0385572a
child 81
1a2e7b5d48f7
--- a/src/main/java/de/uapcore/lightpit/entities/Issue.java	Fri May 22 17:26:27 2020 +0200
+++ b/src/main/java/de/uapcore/lightpit/entities/Issue.java	Fri May 22 21:23:57 2020 +0200
@@ -30,12 +30,14 @@
 
 import java.sql.Date;
 import java.sql.Timestamp;
+import java.time.Instant;
+import java.util.Collections;
 import java.util.List;
 import java.util.Objects;
 
 public final class Issue {
 
-    private final int id;
+    private int id;
     private final Project project;
 
     private IssueStatus status;
@@ -43,13 +45,14 @@
 
     private String subject;
     private String description;
+    private User assignee;
 
-    private List<Version> affectedVersions;
-    private Version scheduledVersion;
-    private Version resolvedVersion;
+    private List<Version> affectedVersions = Collections.emptyList();
+    private List<Version> scheduledVersions = Collections.emptyList();
+    private List<Version> resolvedVersions = Collections.emptyList();
 
-    private Timestamp created;
-    private Timestamp updated;
+    private Timestamp created = Timestamp.from(Instant.now());
+    private Timestamp updated = Timestamp.from(Instant.now());
     private Date eta;
 
     public Issue(int id, Project project) {
@@ -61,6 +64,14 @@
         return id;
     }
 
+    /**
+     * Should only be used by a DAO to store the generated ID.
+     * @param id the freshly generated ID returned from the database after insert
+     */
+    public void setId(int id) {
+        this.id = id;
+    }
+
     public Project getProject() {
         return project;
     }
@@ -97,6 +108,14 @@
         this.description = description;
     }
 
+    public User getAssignee() {
+        return assignee;
+    }
+
+    public void setAssignee(User assignee) {
+        this.assignee = assignee;
+    }
+
     public List<Version> getAffectedVersions() {
         return affectedVersions;
     }
@@ -105,20 +124,20 @@
         this.affectedVersions = affectedVersions;
     }
 
-    public Version getScheduledVersion() {
-        return scheduledVersion;
+    public List<Version> getScheduledVersions() {
+        return scheduledVersions;
     }
 
-    public void setScheduledVersion(Version scheduledVersion) {
-        this.scheduledVersion = scheduledVersion;
+    public void setScheduledVersions(List<Version> scheduledVersions) {
+        this.scheduledVersions = scheduledVersions;
     }
 
-    public Version getResolvedVersion() {
-        return resolvedVersion;
+    public List<Version> getResolvedVersions() {
+        return resolvedVersions;
     }
 
-    public void setResolvedVersion(Version resolvedVersion) {
-        this.resolvedVersion = resolvedVersion;
+    public void setResolvedVersions(List<Version> resolvedVersions) {
+        this.resolvedVersions = resolvedVersions;
     }
 
     public Timestamp getCreated() {

mercurial