mirror of
https://github.com/sparrowwallet/drongo.git
synced 2024-12-26 01:56:44 +00:00
move version class to drongo
This commit is contained in:
parent
df7529b1a1
commit
a26ba49bc6
1 changed files with 54 additions and 0 deletions
54
src/main/java/com/sparrowwallet/drongo/Version.java
Normal file
54
src/main/java/com/sparrowwallet/drongo/Version.java
Normal file
|
@ -0,0 +1,54 @@
|
||||||
|
package com.sparrowwallet.drongo;
|
||||||
|
|
||||||
|
public class Version implements Comparable<Version> {
|
||||||
|
private final String version;
|
||||||
|
|
||||||
|
public final String get() {
|
||||||
|
return this.version;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Version(String version) {
|
||||||
|
if(version == null) {
|
||||||
|
throw new IllegalArgumentException("Version can not be null");
|
||||||
|
}
|
||||||
|
if(!version.matches("[0-9]+(\\.[0-9]+)*")) {
|
||||||
|
throw new IllegalArgumentException("Invalid version format");
|
||||||
|
}
|
||||||
|
this.version = version;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int compareTo(Version that) {
|
||||||
|
if(that == null) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
String[] thisParts = this.get().split("\\.");
|
||||||
|
String[] thatParts = that.get().split("\\.");
|
||||||
|
int length = Math.max(thisParts.length, thatParts.length);
|
||||||
|
for(int i = 0; i < length; i++) {
|
||||||
|
int thisPart = i < thisParts.length ? Integer.parseInt(thisParts[i]) : 0;
|
||||||
|
int thatPart = i < thatParts.length ? Integer.parseInt(thatParts[i]) : 0;
|
||||||
|
if(thisPart < thatPart) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
if(thisPart > thatPart) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object that) {
|
||||||
|
if(this == that) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if(that == null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if(this.getClass() != that.getClass()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return this.compareTo((Version) that) == 0;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue