adjust version formatting

This commit is contained in:
Jake Potrebic 2020-12-20 11:41:17 -08:00
parent 9c6876f2fb
commit a54081ec84
No known key found for this signature in database
GPG Key ID: 7C58557EC9C421F8
2 changed files with 12 additions and 8 deletions

View File

@ -69,8 +69,8 @@ public class StringUtils {
}
private static final Pattern LAST_WHOLE_VERSION = Pattern.compile("((?<=,\\s)|^)[0-9.]{2,}(?=-\\d+$)");
private static final Pattern PREV_HAS_HYPHEN = Pattern.compile("(?<=\\d-)\\d+$");
private static final Pattern LAST_WHOLE_VERSION = Pattern.compile("((?<=,\\s)|^)[0-9.]{2,}(?=-[0-9.]+$)");
private static final Pattern PREV_HAS_HYPHEN = Pattern.compile("(?<=\\d-)[0-9.]+$");
private static final Pattern PREV_HAS_COMMA_OR_FIRST = Pattern.compile("((?<=,\\s)|^)[0-9.]+$");
/**
@ -115,7 +115,8 @@ public class StringUtils {
Matcher hyphen = PREV_HAS_HYPHEN.matcher(verString);
Matcher comma = PREV_HAS_COMMA_OR_FIRST.matcher(verString);
if (hyphen.find()) {
int prevVersion = Integer.parseInt(hyphen.group());
String[] group = hyphen.group().split("\\.");
int prevVersion = Integer.parseInt(group[group.length - 1]);
Matcher prevVersionMatcher = LAST_WHOLE_VERSION.matcher(verString);
if (!prevVersionMatcher.find()) {
throw new IllegalArgumentException("Bad version string");
@ -123,7 +124,7 @@ public class StringUtils {
List<Integer> previousWholeVersion = StringUtils.splitVersionNumber(prevVersionMatcher.group());
if (previousWholeVersion.size() == versionArr.size()) {
if (versionArr.get(versionArr.size() - 1) - 1 == prevVersion) {
return verString.replaceFirst("-\\d+$", "-" + versionArr.get(versionArr.size() - 1));
return verString.replaceFirst("-[0-9.]+$", "-" + version);
} else {
return verString + ", " + version;
}
@ -135,7 +136,7 @@ public class StringUtils {
List<Integer> prevVersion = StringUtils.splitVersionNumber(comma.group());
if (prevVersion.size() == versionArr.size()) {
if (versionArr.get(versionArr.size() - 1) - 1 == prevVersion.get(prevVersion.size() - 1)) {
return verString + "-" + versionArr.get(versionArr.size() - 1);
return verString + "-" + version;
} else {
return verString + ", " + version;
}

View File

@ -12,12 +12,15 @@ public class FormattedVersionsTest {
void testFormattedVersions() {
List<String> list1 = List.of("1.1", "1.2", "1.3", "1.5", "1.7", "1.8");
Assertions.assertEquals(StringUtils.formatVersionNumbers(new ArrayList<>(list1)), "1.1-3, 1.5, 1.7-8");
Assertions.assertEquals("1.1-1.3, 1.5, 1.7-1.8", StringUtils.formatVersionNumbers(new ArrayList<>(list1)));
List<String> list2 = List.of("1.20", "1.23", "1.25", "1.30", "1.31");
Assertions.assertEquals(StringUtils.formatVersionNumbers(new ArrayList<>(list2)), "1.20, 1.23, 1.25, 1.30-31");
Assertions.assertEquals("1.20, 1.23, 1.25, 1.30-1.31", StringUtils.formatVersionNumbers(new ArrayList<>(list2)));
List<String> list3 = List.of("1.1.0", "1.1.1", "1.2.0", "1.2.2", "1.3", "1.4");
Assertions.assertEquals(StringUtils.formatVersionNumbers(new ArrayList<>(list3)), "1.1.0-1, 1.2.0, 1.2.2, 1.3-4");
Assertions.assertEquals("1.1.0-1.1.1, 1.2.0, 1.2.2, 1.3-1.4", StringUtils.formatVersionNumbers(new ArrayList<>(list3)));
List<String> list4 = List.of("1.1", "1.2", "1.3", "1.4", "1.5", "1.7", "1.8", "1.9", "1.10", "1.12");
Assertions.assertEquals("1.1-1.5, 1.7-1.10, 1.12", StringUtils.formatVersionNumbers(new ArrayList<>(list4)));
}
}