1
0
mirror of https://github.com/arduino/Arduino.git synced 2025-03-13 10:29:35 +01:00

Improved VersionComparator API

This commit is contained in:
Cristian Maglie 2017-12-14 13:45:56 +01:00
parent 27b99860b4
commit d285b7fdc9
7 changed files with 21 additions and 23 deletions

View File

@ -84,7 +84,7 @@ public class BuiltInCoreIsNewerCheck implements Runnable {
Thread.sleep(100);
}
if (VersionHelper.valueOf(installedBuiltIn.getParsedVersion()).greaterThan(VersionHelper.valueOf(installedNotBuiltIn.getParsedVersion()))) {
if (VersionComparator.greaterThan(installedBuiltIn.getParsedVersion(), installedNotBuiltIn.getParsedVersion())) {
SwingUtilities.invokeLater(() -> {
PreferencesData.setInteger("builtin_platform_is_newer", BaseNoGui.REVISION);
assert base.hasActiveEditor();

View File

@ -39,12 +39,6 @@ import java.util.function.Predicate;
public class UpdatableLibraryPredicate implements Predicate<ContributedLibrary> {
private final VersionComparator versionComparator;
public UpdatableLibraryPredicate() {
this.versionComparator = new VersionComparator();
}
@Override
public boolean test(ContributedLibrary contributedLibrary) {
String libraryName = contributedLibrary.getName();
@ -54,7 +48,7 @@ public class UpdatableLibraryPredicate implements Predicate<ContributedLibrary>
}
List<ContributedLibrary> libraries = BaseNoGui.librariesIndexer.getIndex().find(libraryName);
return libraries.stream()
.filter(library -> versionComparator.greaterThan(library.getParsedVersion(), installed.getParsedVersion()))
.filter(library -> VersionComparator.greaterThan(library.getParsedVersion(), installed.getParsedVersion()))
.count() > 0;
}
}

View File

@ -110,11 +110,9 @@ public class ContributedLibraryTableCellEditor extends InstallerTableCell {
final List<ContributedLibrary> uninstalledPreviousReleases = new LinkedList<>();
final List<ContributedLibrary> uninstalledNewerReleases = new LinkedList<>();
final VersionComparator versionComparator = new VersionComparator();
uninstalledReleases.stream().forEach(input -> {
if (installed == null
|| versionComparator.greaterThan(installed.getParsedVersion(),
input.getParsedVersion())) {
|| VersionComparator.greaterThan(installed, input)) {
uninstalledPreviousReleases.add(input);
} else {
uninstalledNewerReleases.add(input);

View File

@ -38,12 +38,6 @@ import java.util.function.Predicate;
public class UpdatablePlatformPredicate implements Predicate<ContributedPlatform> {
private final VersionComparator versionComparator;
public UpdatablePlatformPredicate() {
this.versionComparator = new VersionComparator();
}
@Override
public boolean test(ContributedPlatform contributedPlatform) {
String packageName = contributedPlatform.getParentPackage().getName();
@ -56,7 +50,7 @@ public class UpdatablePlatformPredicate implements Predicate<ContributedPlatform
List<ContributedPlatform> platforms = BaseNoGui.indexer.getIndex().findPlatforms(packageName, architecture);
return platforms.stream()
.filter(platform -> versionComparator.greaterThan(platform.getParsedVersion(), installed.getParsedVersion()))
.filter(platform -> VersionComparator.greaterThan(platform.getParsedVersion(), installed.getParsedVersion()))
.count() > 0;
}
}

View File

@ -106,10 +106,9 @@ public class ContributedPlatformTableCellEditor extends InstallerTableCell {
final List<ContributedPlatform> uninstalledPreviousReleases = new LinkedList<>();
final List<ContributedPlatform> uninstalledNewerReleases = new LinkedList<>();
final VersionComparator versionComparator = new VersionComparator();
uninstalledReleases.stream().forEach(input -> {
if (installed == null
|| versionComparator.greaterThan(installed.getParsedVersion(),
|| VersionComparator.greaterThan(installed.getParsedVersion(),
input.getParsedVersion())) {
uninstalledPreviousReleases.add(input);
} else {

View File

@ -31,6 +31,8 @@ package cc.arduino.contributions;
import com.github.zafarkhaja.semver.Version;
import cc.arduino.contributions.libraries.ContributedLibrary;
import java.util.Comparator;
public class VersionComparator implements Comparator<String> {
@ -51,7 +53,7 @@ public class VersionComparator implements Comparator<String> {
return versionA.compareTo(versionB);
}
public boolean greaterThan(String a, String b) {
public static boolean greaterThan(String a, String b) {
// null is always less than any other value
if (a == null && b == null) {
return false;
@ -69,4 +71,16 @@ public class VersionComparator implements Comparator<String> {
return versionA.greaterThan(versionB);
}
public static String max(String a, String b) {
return greaterThan(a, b) ? a : b;
}
public static ContributedLibrary max(ContributedLibrary a, ContributedLibrary b) {
return greaterThan(a, b) ? a : b;
}
public static boolean greaterThan(ContributedLibrary a,
ContributedLibrary b) {
return greaterThan(a.getParsedVersion(), b.getParsedVersion());
}
}

View File

@ -699,7 +699,6 @@ public class BaseNoGui {
}
Map<String, String> latestVersions = new HashMap<>();
VersionComparator comparator = new VersionComparator();
for (ContributedTool tool : installedTools) {
File installedFolder = tool.getDownloadableContribution(getPlatform()).getInstalledFolder();
String toolPath;
@ -714,7 +713,7 @@ public class BaseNoGui {
PreferencesData.set(prefix + tool.getPackager() + "-" + toolName + "-" + toolVersion + ".path", toolPath);
// In the generic tool property put the path of the latest version if more are available
try {
if (!latestVersions.containsKey(toolName) || comparator.greaterThan(toolVersion, latestVersions.get(toolName))) {
if (!latestVersions.containsKey(toolName) || VersionComparator.greaterThan(toolVersion, latestVersions.get(toolName))) {
latestVersions.put(toolName, toolVersion);
PreferencesData.set(prefix + toolName + ".path", toolPath);
}