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:
parent
27b99860b4
commit
d285b7fdc9
@ -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();
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -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);
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -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 {
|
||||
|
@ -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());
|
||||
}
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user