Refactor XLint options for better handling of null/empty lists.
Some checks failed
bld-ci / build-linux (17) (push) Has been cancelled
bld-ci / build-linux (20) (push) Has been cancelled
bld-ci / build-linux (21) (push) Has been cancelled
bld-ci / build-linux (22) (push) Has been cancelled
bld-ci / build-linux (23) (push) Has been cancelled
bld-ci / build-linux (24) (push) Has been cancelled
bld-ci / build-linux (25) (push) Has been cancelled
bld-ci / build-macos (17) (push) Has been cancelled
bld-ci / build-macos (20) (push) Has been cancelled
bld-ci / build-macos (21) (push) Has been cancelled
bld-ci / build-macos (22) (push) Has been cancelled
bld-ci / build-macos (23) (push) Has been cancelled
bld-ci / build-macos (24) (push) Has been cancelled
bld-ci / build-macos (25) (push) Has been cancelled
bld-ci / build-windows (17) (push) Has been cancelled
bld-ci / build-windows (20) (push) Has been cancelled
bld-ci / build-windows (21) (push) Has been cancelled
bld-ci / build-windows (22) (push) Has been cancelled
bld-ci / build-windows (23) (push) Has been cancelled
bld-ci / build-windows (24) (push) Has been cancelled
bld-ci / build-windows (25) (push) Has been cancelled
javadocs-pages / deploy (push) Has been cancelled

This commit is contained in:
Erik C. Thauvin 2026-01-11 11:33:00 -08:00
parent 6fd3948f04
commit 737927da26
No known key found for this signature in database
GPG key ID: 776702A6A2DA330E
2 changed files with 32 additions and 7 deletions

View file

@ -13,6 +13,7 @@ import java.nio.file.Path;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
import static rife.bld.operations.CompileOperation.COMPILE_OPTION_MODULE_PATH;
@ -848,8 +849,7 @@ public class JavacOptions extends ArrayList<String> {
* @since 2.3.1
*/
public JavacOptions xLint(List<XLintKey> keys) {
add("-Xlint:" + StringUtils.join(keys, ",").replaceAll("_", "-").toLowerCase());
return this;
return addXLintOption(keys, "");
}
/**
@ -868,7 +868,21 @@ public class JavacOptions extends ArrayList<String> {
* @since 2.3.1
*/
public JavacOptions xLintDisable(List<XLintKey> keys) {
add("-Xlint:-" + StringUtils.join(keys, ",-").replaceAll("_", "-").toLowerCase());
return addXLintOption(keys, "-");
}
private JavacOptions addXLintOption(List<XLintKey> keys, String prefix) {
if (keys == null || keys.isEmpty()) {
return this;
}
var formattedKeys = keys.stream()
.map(key -> prefix + key.name().replace('_', '-').toLowerCase())
.collect(Collectors.joining(",", "-Xlint:", ""));
add(formattedKeys);
return this;
}
}

View file

@ -781,8 +781,14 @@ class TestJavacOptions {
List<XLintKey> emptyList = List.of();
options.xLintDisable(emptyList);
assertEquals(1, options.size());
assertEquals("-Xlint:-", options.get(0));
assertEquals(0, options.size());
}
@Test
void testXLintDisableNullList() {
options.xLintDisable((List<XLintKey>) null);
assertEquals(0, options.size());
}
@Test
@ -829,8 +835,7 @@ class TestJavacOptions {
List<XLintKey> emptyList = List.of();
options.xLint(emptyList);
assertEquals(1, options.size());
assertEquals("-Xlint:", options.get(0));
assertEquals(0, options.size());
}
@Test
@ -852,6 +857,12 @@ class TestJavacOptions {
assertTrue(options.contains("-Xlint:none"));
}
@Test
void testXLintNullList() {
options.xLint((List<XLintKey>) null);
assertEquals(0, options.size());
}
@Test
void testXLintReturnsThis() {
var result = options.xLint();