Skip to content

Commit 82d8ddd

Browse files
Issue #136 Fix JTD AST packaging to avoid javac warnings
Co-authored-by: Simon Massey <simbo1905@users.noreply.github.com>
1 parent 7b71cc5 commit 82d8ddd

File tree

4 files changed

+12
-9
lines changed

4 files changed

+12
-9
lines changed

jtd-esm-codegen/src/main/java/io/github/simbo1905/json/jtd/codegen/EsmRenderer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
import java.util.Objects;
1010
import java.util.TreeMap;
1111

12-
import static io.github.simbo1905.json.jtd.codegen.JtdNode.*;
12+
import static io.github.simbo1905.json.jtd.codegen.JtdAst.*;
1313

1414
/// Renders an ES2020 JavaScript module exporting `validate(instance)`.
1515
///

jtd-esm-codegen/src/main/java/io/github/simbo1905/json/jtd/codegen/JtdAst.java

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,23 +8,26 @@
88
/// Supported JTD subset:
99
/// - root: `properties`, `optionalProperties`, `metadata.id`
1010
/// - leaf: `{}` (empty form), `{ "type": ... }`, `{ "enum": [...] }`
11-
sealed interface JtdNode permits JtdNode.SchemaNode, JtdNode.PropertyNode, JtdNode.TypeNode, JtdNode.EnumNode, JtdNode.EmptyNode {
11+
public final class JtdAst {
12+
private JtdAst() {}
1213

13-
record SchemaNode(
14+
public sealed interface JtdNode permits SchemaNode, PropertyNode, TypeNode, EnumNode, EmptyNode {}
15+
16+
public record SchemaNode(
1417
String id, // metadata.id
1518
Map<String, PropertyNode> properties,
1619
Map<String, PropertyNode> optionalProperties
1720
) implements JtdNode {}
1821

19-
record PropertyNode(String name, JtdNode type) implements JtdNode {}
22+
public record PropertyNode(String name, JtdNode type) implements JtdNode {}
2023

2124
/// JTD primitive type keyword as a string, e.g. "string", "int32", "timestamp".
22-
record TypeNode(String type) implements JtdNode {}
25+
public record TypeNode(String type) implements JtdNode {}
2326

2427
/// Enum values (strings only in RFC 8927).
25-
record EnumNode(List<String> values) implements JtdNode {}
28+
public record EnumNode(List<String> values) implements JtdNode {}
2629

2730
/// Empty form `{}`: accepts any JSON value.
28-
record EmptyNode() implements JtdNode {}
31+
public record EmptyNode() implements JtdNode {}
2932
}
3033

jtd-esm-codegen/src/main/java/io/github/simbo1905/json/jtd/codegen/JtdParser.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
import java.util.Objects;
1515
import java.util.Set;
1616

17-
import static io.github.simbo1905.json.jtd.codegen.JtdNode.*;
17+
import static io.github.simbo1905.json.jtd.codegen.JtdAst.*;
1818

1919
/// Parses a deliberately-limited subset of JTD (RFC 8927) for code generation.
2020
///

jtd-esm-codegen/src/main/java/io/github/simbo1905/json/jtd/codegen/JtdToEsmCli.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import java.nio.file.Path;
88
import java.util.Objects;
99

10-
import static io.github.simbo1905.json.jtd.codegen.JtdNode.SchemaNode;
10+
import static io.github.simbo1905.json.jtd.codegen.JtdAst.SchemaNode;
1111

1212
/// CLI entry point for generating an ES2020 ESM validator from a flat JTD schema.
1313
///

0 commit comments

Comments
 (0)