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

Thu, 08 Oct 2020 20:38:43 +0200

author
Mike Becker <universe@uap-core.de>
date
Thu, 08 Oct 2020 20:38:43 +0200
changeset 110
9d0be0b1580f
parent 88
1438e5a22c55
child 134
f47e82cd6077
permissions
-rw-r--r--

adds indicators for version status

replaces table column "Status" with version tag
fixes New Version form button not overriding the session version ID

62
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1 /*
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
2 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
3 *
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
4 * Copyright 2018 Mike Becker. All rights reserved.
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
5 *
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
6 * Redistribution and use in source and binary forms, with or without
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
7 * modification, are permitted provided that the following conditions are met:
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
8 *
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
9 * 1. Redistributions of source code must retain the above copyright
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
10 * notice, this list of conditions and the following disclaimer.
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
11 *
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
12 * 2. Redistributions in binary form must reproduce the above copyright
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
13 * notice, this list of conditions and the following disclaimer in the
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
14 * documentation and/or other materials provided with the distribution.
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
15 *
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
16 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
17 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
18 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
19 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
20 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
21 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
22 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
23 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
24 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
25 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
26 * POSSIBILITY OF SUCH DAMAGE.
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
27 *
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
28 */
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
29 package de.uapcore.lightpit.entities;
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
30
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
31 import java.sql.Date;
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
32 import java.sql.Timestamp;
75
33b6843fdf8a adds the ability to create and edit issues
Mike Becker <universe@uap-core.de>
parents: 62
diff changeset
33 import java.time.Instant;
33b6843fdf8a adds the ability to create and edit issues
Mike Becker <universe@uap-core.de>
parents: 62
diff changeset
34 import java.util.Collections;
62
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
35 import java.util.List;
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
36 import java.util.Objects;
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
37
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
38 public final class Issue {
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
39
75
33b6843fdf8a adds the ability to create and edit issues
Mike Becker <universe@uap-core.de>
parents: 62
diff changeset
40 private int id;
86
0a658e53177c improves issue overview and adds progress information
Mike Becker <universe@uap-core.de>
parents: 81
diff changeset
41 private Project project;
62
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
42
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
43 private IssueStatus status;
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
44 private IssueCategory category;
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
45
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
46 private String subject;
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
47 private String description;
75
33b6843fdf8a adds the ability to create and edit issues
Mike Becker <universe@uap-core.de>
parents: 62
diff changeset
48 private User assignee;
62
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
49
75
33b6843fdf8a adds the ability to create and edit issues
Mike Becker <universe@uap-core.de>
parents: 62
diff changeset
50 private List<Version> affectedVersions = Collections.emptyList();
33b6843fdf8a adds the ability to create and edit issues
Mike Becker <universe@uap-core.de>
parents: 62
diff changeset
51 private List<Version> resolvedVersions = Collections.emptyList();
62
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
52
75
33b6843fdf8a adds the ability to create and edit issues
Mike Becker <universe@uap-core.de>
parents: 62
diff changeset
53 private Timestamp created = Timestamp.from(Instant.now());
33b6843fdf8a adds the ability to create and edit issues
Mike Becker <universe@uap-core.de>
parents: 62
diff changeset
54 private Timestamp updated = Timestamp.from(Instant.now());
62
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
55 private Date eta;
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
56
86
0a658e53177c improves issue overview and adds progress information
Mike Becker <universe@uap-core.de>
parents: 81
diff changeset
57 public Issue(int id) {
62
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
58 this.id = id;
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
59 }
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
60
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
61 public int getId() {
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
62 return id;
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
63 }
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
64
75
33b6843fdf8a adds the ability to create and edit issues
Mike Becker <universe@uap-core.de>
parents: 62
diff changeset
65 /**
33b6843fdf8a adds the ability to create and edit issues
Mike Becker <universe@uap-core.de>
parents: 62
diff changeset
66 * Should only be used by a DAO to store the generated ID.
33b6843fdf8a adds the ability to create and edit issues
Mike Becker <universe@uap-core.de>
parents: 62
diff changeset
67 * @param id the freshly generated ID returned from the database after insert
33b6843fdf8a adds the ability to create and edit issues
Mike Becker <universe@uap-core.de>
parents: 62
diff changeset
68 */
33b6843fdf8a adds the ability to create and edit issues
Mike Becker <universe@uap-core.de>
parents: 62
diff changeset
69 public void setId(int id) {
33b6843fdf8a adds the ability to create and edit issues
Mike Becker <universe@uap-core.de>
parents: 62
diff changeset
70 this.id = id;
33b6843fdf8a adds the ability to create and edit issues
Mike Becker <universe@uap-core.de>
parents: 62
diff changeset
71 }
33b6843fdf8a adds the ability to create and edit issues
Mike Becker <universe@uap-core.de>
parents: 62
diff changeset
72
86
0a658e53177c improves issue overview and adds progress information
Mike Becker <universe@uap-core.de>
parents: 81
diff changeset
73 public void setProject(Project project) {
0a658e53177c improves issue overview and adds progress information
Mike Becker <universe@uap-core.de>
parents: 81
diff changeset
74 this.project = project;
0a658e53177c improves issue overview and adds progress information
Mike Becker <universe@uap-core.de>
parents: 81
diff changeset
75 }
0a658e53177c improves issue overview and adds progress information
Mike Becker <universe@uap-core.de>
parents: 81
diff changeset
76
62
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
77 public Project getProject() {
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
78 return project;
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
79 }
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
80
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
81 public IssueStatus getStatus() {
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
82 return status;
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
83 }
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
84
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
85 public void setStatus(IssueStatus status) {
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
86 this.status = status;
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
87 }
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
88
81
1a2e7b5d48f7 adds issue summaries
Mike Becker <universe@uap-core.de>
parents: 75
diff changeset
89 public int getPhase() {
1a2e7b5d48f7 adds issue summaries
Mike Becker <universe@uap-core.de>
parents: 75
diff changeset
90 return this.status.getPhase();
1a2e7b5d48f7 adds issue summaries
Mike Becker <universe@uap-core.de>
parents: 75
diff changeset
91 }
1a2e7b5d48f7 adds issue summaries
Mike Becker <universe@uap-core.de>
parents: 75
diff changeset
92
62
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
93 public IssueCategory getCategory() {
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
94 return category;
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
95 }
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
96
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
97 public void setCategory(IssueCategory category) {
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
98 this.category = category;
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
99 }
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
100
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
101 public String getSubject() {
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
102 return subject;
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
103 }
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
104
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
105 public void setSubject(String subject) {
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
106 this.subject = subject;
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
107 }
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
108
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
109 public String getDescription() {
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
110 return description;
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
111 }
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
112
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
113 public void setDescription(String description) {
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
114 this.description = description;
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
115 }
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
116
75
33b6843fdf8a adds the ability to create and edit issues
Mike Becker <universe@uap-core.de>
parents: 62
diff changeset
117 public User getAssignee() {
33b6843fdf8a adds the ability to create and edit issues
Mike Becker <universe@uap-core.de>
parents: 62
diff changeset
118 return assignee;
33b6843fdf8a adds the ability to create and edit issues
Mike Becker <universe@uap-core.de>
parents: 62
diff changeset
119 }
33b6843fdf8a adds the ability to create and edit issues
Mike Becker <universe@uap-core.de>
parents: 62
diff changeset
120
33b6843fdf8a adds the ability to create and edit issues
Mike Becker <universe@uap-core.de>
parents: 62
diff changeset
121 public void setAssignee(User assignee) {
33b6843fdf8a adds the ability to create and edit issues
Mike Becker <universe@uap-core.de>
parents: 62
diff changeset
122 this.assignee = assignee;
33b6843fdf8a adds the ability to create and edit issues
Mike Becker <universe@uap-core.de>
parents: 62
diff changeset
123 }
33b6843fdf8a adds the ability to create and edit issues
Mike Becker <universe@uap-core.de>
parents: 62
diff changeset
124
62
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
125 public List<Version> getAffectedVersions() {
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
126 return affectedVersions;
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
127 }
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
128
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
129 public void setAffectedVersions(List<Version> affectedVersions) {
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
130 this.affectedVersions = affectedVersions;
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
131 }
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
132
75
33b6843fdf8a adds the ability to create and edit issues
Mike Becker <universe@uap-core.de>
parents: 62
diff changeset
133 public List<Version> getResolvedVersions() {
33b6843fdf8a adds the ability to create and edit issues
Mike Becker <universe@uap-core.de>
parents: 62
diff changeset
134 return resolvedVersions;
62
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
135 }
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
136
75
33b6843fdf8a adds the ability to create and edit issues
Mike Becker <universe@uap-core.de>
parents: 62
diff changeset
137 public void setResolvedVersions(List<Version> resolvedVersions) {
33b6843fdf8a adds the ability to create and edit issues
Mike Becker <universe@uap-core.de>
parents: 62
diff changeset
138 this.resolvedVersions = resolvedVersions;
62
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
139 }
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
140
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
141 public Timestamp getCreated() {
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
142 return created;
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
143 }
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
144
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
145 public void setCreated(Timestamp created) {
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
146 this.created = created;
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
147 }
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
148
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
149 public Timestamp getUpdated() {
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
150 return updated;
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
151 }
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
152
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
153 public void setUpdated(Timestamp updated) {
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
154 this.updated = updated;
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
155 }
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
156
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
157 public Date getEta() {
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
158 return eta;
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
159 }
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
160
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
161 public void setEta(Date eta) {
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
162 this.eta = eta;
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
163 }
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
164
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
165 @Override
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
166 public boolean equals(Object o) {
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
167 if (this == o) return true;
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
168 if (o == null || getClass() != o.getClass()) return false;
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
169 Issue issue = (Issue) o;
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
170 return id == issue.id;
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
171 }
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
172
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
173 @Override
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
174 public int hashCode() {
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
175 return Objects.hash(id);
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
176 }
833e0385572a adds data model for issues
Mike Becker <universe@uap-core.de>
parents:
diff changeset
177 }

mercurial