diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javatypes/JavaTypesGenerator.java | 41 |
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); } |
