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

Sun, 10 May 2020 10:58:31 +0200

author
Mike Becker <universe@uap-core.de>
date
Sun, 10 May 2020 10:58:31 +0200
changeset 37
fecda0f466e6
child 38
cf85ef18f231
permissions
-rw-r--r--

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 }

mercurial