Skip to content

Commit 8c9cf65

Browse files
committed
chore: Make IVersionComparator extend Comparator
1 parent 82b4933 commit 8c9cf65

File tree

4 files changed

+20
-5
lines changed

4 files changed

+20
-5
lines changed

src/main/java/dev/hypera/updatelib/UpdateLib.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ public CompletableFuture<UpdateStatus> check() {
9999
return CompletableFuture.supplyAsync(() -> {
100100
try {
101101
String distributedVersion = versionResolver.getVersion(this, resourceId);
102-
Status comparison = versionComparator.compare(currentVersion, distributedVersion);
102+
Status comparison = versionComparator.compareVersions(currentVersion, distributedVersion);
103103

104104
lastStatus = new UpdateStatus(currentVersion, distributedVersion, comparison);
105105
lastCheck = Instant.now().toEpochMilli();

src/main/java/dev/hypera/updatelib/comparators/IVersionComparator.java

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,10 @@
2525

2626
import dev.hypera.updatelib.exceptions.VersionComparisonFailureException;
2727
import dev.hypera.updatelib.objects.enums.Status;
28+
import java.util.Comparator;
2829
import org.jetbrains.annotations.NotNull;
2930

30-
public interface IVersionComparator {
31+
public interface IVersionComparator extends Comparator<String> {
3132

3233
/**
3334
* Compares two versions.
@@ -36,6 +37,20 @@ public interface IVersionComparator {
3637
* @return Version status.
3738
* @throws VersionComparisonFailureException if something goes wrong while comparing the two versions.
3839
*/
39-
@NotNull Status compare(@NotNull String currentVersion, @NotNull String distributedVersion) throws VersionComparisonFailureException;
40+
@NotNull Status compareVersions(@NotNull String currentVersion, @NotNull String distributedVersion) throws VersionComparisonFailureException;
41+
42+
@Override
43+
default int compare(String currentVersion, String distributedVersion) {
44+
try {
45+
if (currentVersion.equalsIgnoreCase(distributedVersion)) {
46+
return 0;
47+
}
48+
49+
Status status = compareVersions(currentVersion, distributedVersion);
50+
return status.isAvailable() ? -1 : 1;
51+
} catch (VersionComparisonFailureException ex) {
52+
throw new RuntimeException(ex);
53+
}
54+
}
4055

4156
}

src/main/java/dev/hypera/updatelib/comparators/impl/CalendarVersioningComparator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ public class CalendarVersioningComparator implements IVersionComparator {
4343
* @throws VersionComparisonFailureException if something went wrong while comparing the two versions.
4444
*/
4545
@Override
46-
public @NotNull Status compare(@NotNull String currentVersion, @NotNull String distributedVersion) throws VersionComparisonFailureException {
46+
public @NotNull Status compareVersions(@NotNull String currentVersion, @NotNull String distributedVersion) throws VersionComparisonFailureException {
4747
try {
4848
return currentVersion.compareTo(distributedVersion) <= 0 ? Status.UNAVAILABLE : Status.AVAILABLE;
4949
} catch (Exception ex) {

src/main/java/dev/hypera/updatelib/comparators/impl/SemanticVersioningComparator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ public class SemanticVersioningComparator implements IVersionComparator {
4545
* @throws VersionComparisonFailureException if something went wrong while comparing the two versions.
4646
*/
4747
@Override
48-
public @NotNull Status compare(@NotNull String currentVersion, @NotNull String distributedVersion) throws VersionComparisonFailureException {
48+
public @NotNull Status compareVersions(@NotNull String currentVersion, @NotNull String distributedVersion) throws VersionComparisonFailureException {
4949
try {
5050
Semver current = new Semver(currentVersion, SemverType.LOOSE);
5151
Semver distributed = new Semver(distributedVersion, SemverType.LOOSE);

0 commit comments

Comments
 (0)