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