use of org.eclipse.n4js.semver.SemverMatcher.VersionNumberRelation in project n4js by eclipse.
the class SemverUtils method findClosestMatching.
/**
* Finds the version in the collection 'versions' that is closest to the given 'toFind'
*/
public static VersionNumber findClosestMatching(Collection<VersionNumber> versions, VersionNumber toFind) {
if (versions == null || versions.isEmpty()) {
return null;
}
if (null == toFind) {
return null;
}
List<VersionNumber> sortedVersions = new ArrayList<>(versions);
Collections.sort(sortedVersions, SemverMatcher::compareLoose);
int index = Collections.binarySearch(sortedVersions, toFind, SemverMatcher::compareLoose);
if (index > 0) {
return sortedVersions.get(index);
}
VersionNumber current = null;
for (VersionNumber v : sortedVersions) {
VersionNumberRelation relation = SemverMatcher.relation(toFind, v);
if (relation.isGreaterOrEqual()) {
current = v;
}
}
return current;
}
Aggregations