package org.zwobble.hobgoblin.compiler; import org.zwobble.hobgoblin.compiler.filesystem.HobgoblinCompilerFiles; import java.io.File; import java.nio.file.Path; import java.util.Arrays; import java.util.stream.Stream; public class ExampleSet { public static Stream exampleSets() { return exampleSetDirectories() .map(exampleDirectory -> new ExampleSet(exampleDirectory.toPath())); } /// The directory of each example set. private static Stream exampleSetDirectories() { var examplesRoot = HobgoblinCompilerFiles.getRoot().resolve("examples"); return Arrays.stream(examplesRoot.toFile() .listFiles(file -> file.isDirectory() && file.toPath().resolve("hobgoblin.json5").toFile().exists())); } private final Path path; private ExampleSet(Path path) { this.path = path; } public String name() { return this.path.getFileName().toString(); } public Path path() { return this.path; } }