83 lines
2.2 KiB
Java
83 lines
2.2 KiB
Java
package tc.oc.api.docs;
|
|
|
|
public class SemanticVersion {
|
|
protected final int major;
|
|
protected final int minor;
|
|
protected final int patch;
|
|
|
|
public SemanticVersion(int major, int minor, int patch) {
|
|
this.major = major;
|
|
this.minor = minor;
|
|
this.patch = patch;
|
|
}
|
|
|
|
public int major() {
|
|
return this.major;
|
|
}
|
|
|
|
public int minor() {
|
|
return this.minor;
|
|
}
|
|
|
|
public int patch() {
|
|
return this.patch;
|
|
}
|
|
|
|
@Override
|
|
public String toString() {
|
|
if(patch == 0) {
|
|
return major + "." + minor;
|
|
} else {
|
|
return major + "." + minor + "." + patch;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Return true if the major versions match and the minor version
|
|
* and patch levels are less or equal to the given version
|
|
*/
|
|
public boolean isNoNewerThan(SemanticVersion spec) {
|
|
return this.major == spec.major &&
|
|
(this.minor < spec.minor ||
|
|
(this.minor == spec.minor &&
|
|
this.patch <= spec.patch));
|
|
}
|
|
|
|
/**
|
|
* Return true if the major versions match and the minor version
|
|
* and patch levels are greater than the given version
|
|
*/
|
|
public boolean isNewerThan(SemanticVersion spec) {
|
|
return this.major == spec.major &&
|
|
(this.minor > spec.minor ||
|
|
(this.minor == spec.minor &&
|
|
this.patch > spec.patch));
|
|
}
|
|
|
|
/**
|
|
* Return true if the major versions match and the minor version
|
|
* and patch levels are greater or equal to the given version
|
|
*/
|
|
public boolean isNoOlderThan(SemanticVersion spec) {
|
|
return this.major == spec.major &&
|
|
(this.minor > spec.minor ||
|
|
(this.minor == spec.minor &&
|
|
this.patch >= spec.patch));
|
|
}
|
|
|
|
/**
|
|
* Return true if the major versions match and the minor version
|
|
* and patch levels are less than the given version
|
|
*/
|
|
public boolean isOlderThan(SemanticVersion spec) {
|
|
return this.major == spec.major &&
|
|
(this.minor < spec.minor ||
|
|
(this.minor == spec.minor &&
|
|
this.patch < spec.patch));
|
|
}
|
|
|
|
public int[] toArray() {
|
|
return new int[] {major, minor, patch};
|
|
}
|
|
}
|