diff -r 0f4f8f255c32 -r fecda0f466e6 src/main/java/de/uapcore/lightpit/entities/Version.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/main/java/de/uapcore/lightpit/entities/Version.java Sun May 10 10:58:31 2020 +0200 @@ -0,0 +1,69 @@ +package de.uapcore.lightpit.entities; + +import java.util.Objects; + +public class Version implements Comparable { + + private final int id; + private String name; + /** + * If we do not want versions to be ordered lexicographically we may specify an order. + */ + private int ordinal; + private VersionStatus status; + + public Version(int id) { + this.id = id; + } + + public int getId() { + return id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public int getOrdinal() { + return ordinal; + } + + public void setOrdinal(int ordinal) { + this.ordinal = ordinal; + } + + public VersionStatus getStatus() { + return status; + } + + public void setStatus(VersionStatus status) { + this.status = status; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + Version version = (Version) o; + return id == version.id; + } + + @Override + public int hashCode() { + return Objects.hash(id); + } + + @Override + public int compareTo(Version version) { + int ord = Integer.compare(this.ordinal, version.ordinal); + if (ord == 0) { + return this.name.compareToIgnoreCase(version.name); + } else { + return ord; + } + } +}