Skip to content

Commit

Permalink
objectionary#3058: correct filter
Browse files Browse the repository at this point in the history
  • Loading branch information
levBagryansky committed Apr 26, 2024
1 parent 3841326 commit 34f7952
Showing 1 changed file with 28 additions and 26 deletions.
54 changes: 28 additions & 26 deletions eo-runtime/src/test/groovy/check-eo-classes-are-public.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -31,45 +31,47 @@ import java.util.stream.Stream

println 'Verify that all java classes named with EO are public'
Path[] sources = [
basedir.toPath().resolve("target").resolve("classes"),
basedir.toPath().resolve("target").resolve("test-classes"),
basedir.toPath().resolve("target").resolve("classes"),
basedir.toPath().resolve("target").resolve("test-classes"),
]
Collection<JavaClass> violations = stream_of(sources)
.filter(it -> {
println(it.toString())
it.toString().endsWith(".class") &&
it.toFile().getName().startsWith("EO")
return it.toString().endsWith(".class") &&
it.toFile().getName().startsWith("EO")
})
.map(path -> new ClassParser(path.toString()).parse())
.filter (clazz -> should_be_public(clazz))
.filter (clazz -> !clazz.isPublic())
.filter (clazz -> IsEoClass(clazz))
.filter (clazz -> {
return !clazz.isPublic()
})
.collect(Collectors.toList())
if (!violations.isEmpty()) {
throw new IllegalStateException(
String.format(
"Not all EO classes are public: %s\n",
violations
)
String.format(
"Not all EO classes are public: %s\n",
violations
)
)
}

static Stream<Path> stream_of(Path[] paths) {
println("start")
Stream<Path> accum = Stream.empty()
println("start")
Stream<Path> accum = Stream.empty()
println("mid")
for (path in paths) {
accum = Stream.concat(
accum,
Files.walk(path)
)
println("mid")
for (path in paths) {
accum = Stream.concat(
accum,
Files.walk(path)
)
println("mid")
}
println("finish")
return accum
}
println("finish")
return accum
}

static boolean should_be_public(JavaClass clazz) {
return clazz.className.startsWith("EO") &&
!clazz.isNested() &&
!clazz.className.endsWith("Test")
static boolean IsEoClass(JavaClass clazz) {
return clazz.className.startsWith("EO") &&
("org.eolang.Phi" in clazz.getInterfaceNames() ||
"org.eolang.PhDefault" == clazz.getSuperclassName()) &&
!clazz.isNested()
}

0 comments on commit 34f7952

Please sign in to comment.