summaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2026-06-13 21:14:01 +0100
committerMichael Williamson <mike@zwobble.org>2026-06-13 21:14:01 +0100
commit6756656acae5f2c4fff4a84fe877fcc1c7e271b7 (patch)
tree1f17a3c4080078ddd62bcc33ac2bd7ba39ace8de /src/main/java
parent8406f6abb31124c01c2ac5ec7615f825e337e0d9 (diff)
Extract generateSumDefinitionBuilder()
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javatypes/JavaTypesGenerator.java41
1 files changed, 24 insertions, 17 deletions
diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javatypes/JavaTypesGenerator.java b/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javatypes/JavaTypesGenerator.java
index f4ed937..827cab9 100644
--- a/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javatypes/JavaTypesGenerator.java
+++ b/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javatypes/JavaTypesGenerator.java
@@ -230,29 +230,36 @@ public class JavaTypesGenerator implements Generator {
.map(variant -> generateTypeRef(variant.type(), context))
.toList(),
List.of(
- new JavaInterfaceDeclaration(
- BUILDER_TYPE_NAME,
- JavaInterfaceOpenness.OPEN,
- List.of(),
- List.of(
- new JavaMethodDeclaration(
- "build",
- JavaVisibility.PUBLIC,
- JavaMethodKind.INSTANCE,
- generateTypeRef(sumDefinition.type(), context),
- List.of(),
- Optional.empty()
- )
- ),
- JavaCustomArea.forType(generateBuilderTypeRef(sumDefinition.type()), "body"),
- DocComment.EMPTY
- )
+ generateSumDefinitionBuilder(sumDefinition, context)
),
JavaCustomArea.forType(generateTypeRef(sumDefinition.type(), context), "body"),
sumDefinition.docComment()
);
}
+ private JavaInterfaceDeclaration generateSumDefinitionBuilder(
+ TypedSumDefinitionNode sumDefinition,
+ Context context
+ ) {
+ return new JavaInterfaceDeclaration(
+ BUILDER_TYPE_NAME,
+ JavaInterfaceOpenness.OPEN,
+ List.of(),
+ List.of(
+ new JavaMethodDeclaration(
+ "build",
+ JavaVisibility.PUBLIC,
+ JavaMethodKind.INSTANCE,
+ generateTypeRef(sumDefinition.type(), context),
+ List.of(),
+ Optional.empty()
+ )
+ ),
+ JavaCustomArea.forType(generateBuilderTypeRef(sumDefinition.type()), "body"),
+ DocComment.EMPTY
+ );
+ }
+
private List<String> namespaceToJavaPackageParts(NamespaceName namespaceName) {
return this.javaGenerator.namespaceToJavaPackageParts(namespaceName);
}