Sun, 10 May 2020 10:58:31 +0200
adds data model for projects and versions
37
fecda0f466e6
adds data model for projects and versions
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
1 | package de.uapcore.lightpit.entities; |
fecda0f466e6
adds data model for projects and versions
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
2 | |
fecda0f466e6
adds data model for projects and versions
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
3 | import java.util.Objects; |
fecda0f466e6
adds data model for projects and versions
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
4 | |
fecda0f466e6
adds data model for projects and versions
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
5 | public class Version implements Comparable<Version> { |
fecda0f466e6
adds data model for projects and versions
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
6 | |
fecda0f466e6
adds data model for projects and versions
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
7 | private final int id; |
fecda0f466e6
adds data model for projects and versions
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
8 | private String name; |
fecda0f466e6
adds data model for projects and versions
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
9 | /** |
fecda0f466e6
adds data model for projects and versions
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
10 | * If we do not want versions to be ordered lexicographically we may specify an order. |
fecda0f466e6
adds data model for projects and versions
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
11 | */ |
fecda0f466e6
adds data model for projects and versions
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
12 | private int ordinal; |
fecda0f466e6
adds data model for projects and versions
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
13 | private VersionStatus status; |
fecda0f466e6
adds data model for projects and versions
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
14 | |
fecda0f466e6
adds data model for projects and versions
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
15 | public Version(int id) { |
fecda0f466e6
adds data model for projects and versions
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
16 | this.id = id; |
fecda0f466e6
adds data model for projects and versions
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
17 | } |
fecda0f466e6
adds data model for projects and versions
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
18 | |
fecda0f466e6
adds data model for projects and versions
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
19 | public int getId() { |
fecda0f466e6
adds data model for projects and versions
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
20 | return id; |
fecda0f466e6
adds data model for projects and versions
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
21 | } |
fecda0f466e6
adds data model for projects and versions
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
22 | |
fecda0f466e6
adds data model for projects and versions
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
23 | public String getName() { |
fecda0f466e6
adds data model for projects and versions
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
24 | return name; |
fecda0f466e6
adds data model for projects and versions
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
25 | } |
fecda0f466e6
adds data model for projects and versions
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
26 | |
fecda0f466e6
adds data model for projects and versions
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
27 | public void setName(String name) { |
fecda0f466e6
adds data model for projects and versions
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
28 | this.name = name; |
fecda0f466e6
adds data model for projects and versions
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
29 | } |
fecda0f466e6
adds data model for projects and versions
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
30 | |
fecda0f466e6
adds data model for projects and versions
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
31 | public int getOrdinal() { |
fecda0f466e6
adds data model for projects and versions
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
32 | return ordinal; |
fecda0f466e6
adds data model for projects and versions
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
33 | } |
fecda0f466e6
adds data model for projects and versions
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
34 | |
fecda0f466e6
adds data model for projects and versions
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
35 | public void setOrdinal(int ordinal) { |
fecda0f466e6
adds data model for projects and versions
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
36 | this.ordinal = ordinal; |
fecda0f466e6
adds data model for projects and versions
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
37 | } |
fecda0f466e6
adds data model for projects and versions
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
38 | |
fecda0f466e6
adds data model for projects and versions
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
39 | public VersionStatus getStatus() { |
fecda0f466e6
adds data model for projects and versions
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
40 | return status; |
fecda0f466e6
adds data model for projects and versions
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
41 | } |
fecda0f466e6
adds data model for projects and versions
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
42 | |
fecda0f466e6
adds data model for projects and versions
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
43 | public void setStatus(VersionStatus status) { |
fecda0f466e6
adds data model for projects and versions
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
44 | this.status = status; |
fecda0f466e6
adds data model for projects and versions
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
45 | } |
fecda0f466e6
adds data model for projects and versions
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
46 | |
fecda0f466e6
adds data model for projects and versions
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
47 | @Override |
fecda0f466e6
adds data model for projects and versions
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
48 | public boolean equals(Object o) { |
fecda0f466e6
adds data model for projects and versions
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
49 | if (this == o) return true; |
fecda0f466e6
adds data model for projects and versions
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
50 | if (o == null || getClass() != o.getClass()) return false; |
fecda0f466e6
adds data model for projects and versions
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
51 | Version version = (Version) o; |
fecda0f466e6
adds data model for projects and versions
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
52 | return id == version.id; |
fecda0f466e6
adds data model for projects and versions
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
53 | } |
fecda0f466e6
adds data model for projects and versions
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
54 | |
fecda0f466e6
adds data model for projects and versions
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
55 | @Override |
fecda0f466e6
adds data model for projects and versions
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
56 | public int hashCode() { |
fecda0f466e6
adds data model for projects and versions
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
57 | return Objects.hash(id); |
fecda0f466e6
adds data model for projects and versions
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
58 | } |
fecda0f466e6
adds data model for projects and versions
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
59 | |
fecda0f466e6
adds data model for projects and versions
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
60 | @Override |
fecda0f466e6
adds data model for projects and versions
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
61 | public int compareTo(Version version) { |
fecda0f466e6
adds data model for projects and versions
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
62 | int ord = Integer.compare(this.ordinal, version.ordinal); |
fecda0f466e6
adds data model for projects and versions
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
63 | if (ord == 0) { |
fecda0f466e6
adds data model for projects and versions
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
64 | return this.name.compareToIgnoreCase(version.name); |
fecda0f466e6
adds data model for projects and versions
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
65 | } else { |
fecda0f466e6
adds data model for projects and versions
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
66 | return ord; |
fecda0f466e6
adds data model for projects and versions
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
67 | } |
fecda0f466e6
adds data model for projects and versions
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
68 | } |
fecda0f466e6
adds data model for projects and versions
Mike Becker <universe@uap-core.de>
parents:
diff
changeset
|
69 | } |