GH-1040 - NamedInterfaces.Builder now does not exclude all packages by default.

Polished NamedInterfaces.toString() for easier debugability.
This commit is contained in:
Oliver Drotbohm
2025-01-25 13:57:07 +01:00
parent 5d8cbca10c
commit 12b6a2d1fd
2 changed files with 25 additions and 1 deletions

View File

@@ -267,6 +267,18 @@ public class NamedInterfaces implements Iterable<NamedInterface> {
.anyMatch(NamedInterface::isNamed);
}
/*
* (non-Javadoc)
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
return namedInterfaces.stream()
.map(NamedInterface::toString)
.collect(Collectors.joining(System.lineSeparator()));
}
private static NamedInterfaces of(NamedInterface interfaces) {
return new NamedInterfaces(List.of(interfaces));
}
@@ -315,7 +327,7 @@ public class NamedInterfaces implements Iterable<NamedInterface> {
* @param basePackage must not be {@literal null}.
*/
private Builder(JavaPackage basePackage) {
this(basePackage, false, __ -> false, __ -> false);
this(basePackage, false, __ -> false, __ -> true);
}
private Builder(JavaPackage basePackage, boolean recursive,

View File

@@ -130,6 +130,18 @@ class NamedInterfacesUnitTests {
"nested.b.second");
}
@Test // GH-1040
void doesNotExcludeAnyPackagesByDefault() {
var pkg = TestUtils.getPackage(RootType.class);
var interfaces = NamedInterfaces.builder(pkg)
.including(__ -> true)
.build();
assertThat(interfaces).hasSizeGreaterThan(1);
}
private static void assertInterfaceContains(NamedInterfaces interfaces, String name, Class<?>... types) {
var classNames = Arrays.stream(types).map(Class::getName).toArray(String[]::new);