aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2024-12-23 11:13:24 +0000
committerMichael Williamson <mike@zwobble.org>2024-12-23 11:13:24 +0000
commitd22dab1ccfe55ee2f3449bb9065481803f8dc0ff (patch)
tree700450a458c1e7bef19f9865ada88bd77d100948 /src/main/java
parent39ab36c7a288e8ccf1203f8bb828f97e6aa025ea (diff)
Check type of example and profile elements
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/org/shedlang/compiler/config/ProjectConfig.java26
-rw-r--r--src/main/java/org/shedlang/compiler/config/toml/TomlTableWithSource.java2
2 files changed, 11 insertions, 17 deletions
diff --git a/src/main/java/org/shedlang/compiler/config/ProjectConfig.java b/src/main/java/org/shedlang/compiler/config/ProjectConfig.java
index 8f5f63e2..12a6b3f6 100644
--- a/src/main/java/org/shedlang/compiler/config/ProjectConfig.java
+++ b/src/main/java/org/shedlang/compiler/config/ProjectConfig.java
@@ -5,7 +5,6 @@ import org.shedlang.compiler.config.toml.TomlPath;
import org.shedlang.compiler.config.toml.TomlTableWithSource;
import org.shedlang.compiler.sources.Source;
import org.shedlang.compiler.sources.Sources;
-import org.shedlang.compiler.util.P;
import org.tomlj.Toml;
import org.tomlj.TomlParseResult;
@@ -13,7 +12,6 @@ import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.List;
-import java.util.stream.IntStream;
public record ProjectConfig(
Path root,
@@ -68,25 +66,21 @@ public record ProjectConfig(
public static List<ExampleConfig> examplesFromToml(TomlTableWithSource table) {
return table
.getTable("shed")
- .flatMap(shed -> shed.getArray("examples"))
- .map(examples ->
- IntStream.range(0, examples.size())
- .mapToObj(exampleIndex -> ExampleConfig.fromToml(examples.getTable(exampleIndex)))
- .toList()
- )
- .orElseGet(() -> List.of());
+ .flatMap(shed -> shed.getArrayOfTables("examples"))
+ .orElseGet(() -> List.of())
+ .stream()
+ .map(example -> ExampleConfig.fromToml(example.table()))
+ .toList();
}
public static List<ProfileConfig> profilesFromToml(TomlTableWithSource table) {
return table
.getTable("shed")
- .flatMap(shed -> shed.getArray("profiles"))
- .map(profiles ->
- IntStream.range(0, profiles.size())
- .mapToObj(profileIndex -> ProfileConfig.fromToml(profiles.getTable(profileIndex)))
- .toList()
- )
- .orElseGet(() -> List.of());
+ .flatMap(shed -> shed.getArrayOfTables("profiles"))
+ .orElseGet(() -> List.of())
+ .stream()
+ .map(profile -> ProfileConfig.fromToml(profile.table()))
+ .toList();
}
public Path targetDir() {
diff --git a/src/main/java/org/shedlang/compiler/config/toml/TomlTableWithSource.java b/src/main/java/org/shedlang/compiler/config/toml/TomlTableWithSource.java
index 5b573628..f4c96647 100644
--- a/src/main/java/org/shedlang/compiler/config/toml/TomlTableWithSource.java
+++ b/src/main/java/org/shedlang/compiler/config/toml/TomlTableWithSource.java
@@ -47,7 +47,7 @@ public record TomlTableWithSource(
);
}
- public Optional<TomlArray> getArray(String key) {
+ private Optional<TomlArray> getArray(String key) {
var value = table.get(key);
var position = table.inputPositionOf(key);