mirror of
https://github.com/arduino/Arduino.git
synced 2025-03-15 12:29:26 +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);
|
Thread.sleep(100);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (VersionHelper.valueOf(installedBuiltIn.getParsedVersion()).greaterThan(VersionHelper.valueOf(installedNotBuiltIn.getParsedVersion()))) {
|
if (VersionComparator.greaterThan(installedBuiltIn.getParsedVersion(), installedNotBuiltIn.getParsedVersion())) {
|
||||||
SwingUtilities.invokeLater(() -> {
|
SwingUtilities.invokeLater(() -> {
|
||||||
PreferencesData.setInteger("builtin_platform_is_newer", BaseNoGui.REVISION);
|
PreferencesData.setInteger("builtin_platform_is_newer", BaseNoGui.REVISION);
|
||||||
assert base.hasActiveEditor();
|
assert base.hasActiveEditor();
|
||||||
|
@ -39,12 +39,6 @@ import java.util.function.Predicate;
|
|||||||
|
|
||||||
public class UpdatableLibraryPredicate implements Predicate<ContributedLibrary> {
|
public class UpdatableLibraryPredicate implements Predicate<ContributedLibrary> {
|
||||||
|
|
||||||
private final VersionComparator versionComparator;
|
|
||||||
|
|
||||||
public UpdatableLibraryPredicate() {
|
|
||||||
this.versionComparator = new VersionComparator();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean test(ContributedLibrary contributedLibrary) {
|
public boolean test(ContributedLibrary contributedLibrary) {
|
||||||
String libraryName = contributedLibrary.getName();
|
String libraryName = contributedLibrary.getName();
|
||||||
@ -54,7 +48,7 @@ public class UpdatableLibraryPredicate implements Predicate<ContributedLibrary>
|
|||||||
}
|
}
|
||||||
List<ContributedLibrary> libraries = BaseNoGui.librariesIndexer.getIndex().find(libraryName);
|
List<ContributedLibrary> libraries = BaseNoGui.librariesIndexer.getIndex().find(libraryName);
|
||||||
return libraries.stream()
|
return libraries.stream()
|
||||||
.filter(library -> versionComparator.greaterThan(library.getParsedVersion(), installed.getParsedVersion()))
|
.filter(library -> VersionComparator.greaterThan(library.getParsedVersion(), installed.getParsedVersion()))
|
||||||
.count() > 0;
|
.count() > 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -110,11 +110,9 @@ public class ContributedLibraryTableCellEditor extends InstallerTableCell {
|
|||||||
final List<ContributedLibrary> uninstalledPreviousReleases = new LinkedList<>();
|
final List<ContributedLibrary> uninstalledPreviousReleases = new LinkedList<>();
|
||||||
final List<ContributedLibrary> uninstalledNewerReleases = new LinkedList<>();
|
final List<ContributedLibrary> uninstalledNewerReleases = new LinkedList<>();
|
||||||
|
|
||||||
final VersionComparator versionComparator = new VersionComparator();
|
|
||||||
uninstalledReleases.stream().forEach(input -> {
|
uninstalledReleases.stream().forEach(input -> {
|
||||||
if (installed == null
|
if (installed == null
|
||||||
|| versionComparator.greaterThan(installed.getParsedVersion(),
|
|| VersionComparator.greaterThan(installed, input)) {
|
||||||
input.getParsedVersion())) {
|
|
||||||
uninstalledPreviousReleases.add(input);
|
uninstalledPreviousReleases.add(input);
|
||||||
} else {
|
} else {
|
||||||
uninstalledNewerReleases.add(input);
|
uninstalledNewerReleases.add(input);
|
||||||
|
@ -38,12 +38,6 @@ import java.util.function.Predicate;
|
|||||||
|
|
||||||
public class UpdatablePlatformPredicate implements Predicate<ContributedPlatform> {
|
public class UpdatablePlatformPredicate implements Predicate<ContributedPlatform> {
|
||||||
|
|
||||||
private final VersionComparator versionComparator;
|
|
||||||
|
|
||||||
public UpdatablePlatformPredicate() {
|
|
||||||
this.versionComparator = new VersionComparator();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean test(ContributedPlatform contributedPlatform) {
|
public boolean test(ContributedPlatform contributedPlatform) {
|
||||||
String packageName = contributedPlatform.getParentPackage().getName();
|
String packageName = contributedPlatform.getParentPackage().getName();
|
||||||
@ -56,7 +50,7 @@ public class UpdatablePlatformPredicate implements Predicate<ContributedPlatform
|
|||||||
|
|
||||||
List<ContributedPlatform> platforms = BaseNoGui.indexer.getIndex().findPlatforms(packageName, architecture);
|
List<ContributedPlatform> platforms = BaseNoGui.indexer.getIndex().findPlatforms(packageName, architecture);
|
||||||
return platforms.stream()
|
return platforms.stream()
|
||||||
.filter(platform -> versionComparator.greaterThan(platform.getParsedVersion(), installed.getParsedVersion()))
|
.filter(platform -> VersionComparator.greaterThan(platform.getParsedVersion(), installed.getParsedVersion()))
|
||||||
.count() > 0;
|
.count() > 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -106,10 +106,9 @@ public class ContributedPlatformTableCellEditor extends InstallerTableCell {
|
|||||||
final List<ContributedPlatform> uninstalledPreviousReleases = new LinkedList<>();
|
final List<ContributedPlatform> uninstalledPreviousReleases = new LinkedList<>();
|
||||||
final List<ContributedPlatform> uninstalledNewerReleases = new LinkedList<>();
|
final List<ContributedPlatform> uninstalledNewerReleases = new LinkedList<>();
|
||||||
|
|
||||||
final VersionComparator versionComparator = new VersionComparator();
|
|
||||||
uninstalledReleases.stream().forEach(input -> {
|
uninstalledReleases.stream().forEach(input -> {
|
||||||
if (installed == null
|
if (installed == null
|
||||||
|| versionComparator.greaterThan(installed.getParsedVersion(),
|
|| VersionComparator.greaterThan(installed.getParsedVersion(),
|
||||||
input.getParsedVersion())) {
|
input.getParsedVersion())) {
|
||||||
uninstalledPreviousReleases.add(input);
|
uninstalledPreviousReleases.add(input);
|
||||||
} else {
|
} else {
|
||||||
|
@ -31,6 +31,8 @@ package cc.arduino.contributions;
|
|||||||
|
|
||||||
import com.github.zafarkhaja.semver.Version;
|
import com.github.zafarkhaja.semver.Version;
|
||||||
|
|
||||||
|
import cc.arduino.contributions.libraries.ContributedLibrary;
|
||||||
|
|
||||||
import java.util.Comparator;
|
import java.util.Comparator;
|
||||||
|
|
||||||
public class VersionComparator implements Comparator<String> {
|
public class VersionComparator implements Comparator<String> {
|
||||||
@ -51,7 +53,7 @@ public class VersionComparator implements Comparator<String> {
|
|||||||
return versionA.compareTo(versionB);
|
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
|
// null is always less than any other value
|
||||||
if (a == null && b == null) {
|
if (a == null && b == null) {
|
||||||
return false;
|
return false;
|
||||||
@ -69,4 +71,16 @@ public class VersionComparator implements Comparator<String> {
|
|||||||
return versionA.greaterThan(versionB);
|
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<>();
|
Map<String, String> latestVersions = new HashMap<>();
|
||||||
VersionComparator comparator = new VersionComparator();
|
|
||||||
for (ContributedTool tool : installedTools) {
|
for (ContributedTool tool : installedTools) {
|
||||||
File installedFolder = tool.getDownloadableContribution(getPlatform()).getInstalledFolder();
|
File installedFolder = tool.getDownloadableContribution(getPlatform()).getInstalledFolder();
|
||||||
String toolPath;
|
String toolPath;
|
||||||
@ -714,7 +713,7 @@ public class BaseNoGui {
|
|||||||
PreferencesData.set(prefix + tool.getPackager() + "-" + toolName + "-" + toolVersion + ".path", toolPath);
|
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
|
// In the generic tool property put the path of the latest version if more are available
|
||||||
try {
|
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);
|
latestVersions.put(toolName, toolVersion);
|
||||||
PreferencesData.set(prefix + toolName + ".path", toolPath);
|
PreferencesData.set(prefix + toolName + ".path", toolPath);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user