1.1 --- a/src/main/java/de/uapcore/lightpit/entities/Issue.java Fri May 22 17:26:27 2020 +0200 1.2 +++ b/src/main/java/de/uapcore/lightpit/entities/Issue.java Fri May 22 21:23:57 2020 +0200 1.3 @@ -30,12 +30,14 @@ 1.4 1.5 import java.sql.Date; 1.6 import java.sql.Timestamp; 1.7 +import java.time.Instant; 1.8 +import java.util.Collections; 1.9 import java.util.List; 1.10 import java.util.Objects; 1.11 1.12 public final class Issue { 1.13 1.14 - private final int id; 1.15 + private int id; 1.16 private final Project project; 1.17 1.18 private IssueStatus status; 1.19 @@ -43,13 +45,14 @@ 1.20 1.21 private String subject; 1.22 private String description; 1.23 + private User assignee; 1.24 1.25 - private List<Version> affectedVersions; 1.26 - private Version scheduledVersion; 1.27 - private Version resolvedVersion; 1.28 + private List<Version> affectedVersions = Collections.emptyList(); 1.29 + private List<Version> scheduledVersions = Collections.emptyList(); 1.30 + private List<Version> resolvedVersions = Collections.emptyList(); 1.31 1.32 - private Timestamp created; 1.33 - private Timestamp updated; 1.34 + private Timestamp created = Timestamp.from(Instant.now()); 1.35 + private Timestamp updated = Timestamp.from(Instant.now()); 1.36 private Date eta; 1.37 1.38 public Issue(int id, Project project) { 1.39 @@ -61,6 +64,14 @@ 1.40 return id; 1.41 } 1.42 1.43 + /** 1.44 + * Should only be used by a DAO to store the generated ID. 1.45 + * @param id the freshly generated ID returned from the database after insert 1.46 + */ 1.47 + public void setId(int id) { 1.48 + this.id = id; 1.49 + } 1.50 + 1.51 public Project getProject() { 1.52 return project; 1.53 } 1.54 @@ -97,6 +108,14 @@ 1.55 this.description = description; 1.56 } 1.57 1.58 + public User getAssignee() { 1.59 + return assignee; 1.60 + } 1.61 + 1.62 + public void setAssignee(User assignee) { 1.63 + this.assignee = assignee; 1.64 + } 1.65 + 1.66 public List<Version> getAffectedVersions() { 1.67 return affectedVersions; 1.68 } 1.69 @@ -105,20 +124,20 @@ 1.70 this.affectedVersions = affectedVersions; 1.71 } 1.72 1.73 - public Version getScheduledVersion() { 1.74 - return scheduledVersion; 1.75 + public List<Version> getScheduledVersions() { 1.76 + return scheduledVersions; 1.77 } 1.78 1.79 - public void setScheduledVersion(Version scheduledVersion) { 1.80 - this.scheduledVersion = scheduledVersion; 1.81 + public void setScheduledVersions(List<Version> scheduledVersions) { 1.82 + this.scheduledVersions = scheduledVersions; 1.83 } 1.84 1.85 - public Version getResolvedVersion() { 1.86 - return resolvedVersion; 1.87 + public List<Version> getResolvedVersions() { 1.88 + return resolvedVersions; 1.89 } 1.90 1.91 - public void setResolvedVersion(Version resolvedVersion) { 1.92 - this.resolvedVersion = resolvedVersion; 1.93 + public void setResolvedVersions(List<Version> resolvedVersions) { 1.94 + this.resolvedVersions = resolvedVersions; 1.95 } 1.96 1.97 public Timestamp getCreated() {