diff options
| author | Michael Williamson <mike@zwobble.org> | 2026-05-18 18:43:30 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2026-05-18 18:43:30 +0100 |
| commit | ffdce39ec24eb2a3ada878d1dcc5f4ef361e5a2e (patch) | |
| tree | 0b6c7047c35c0a9a102749b4ecb373dddee43bc3 /src/main | |
| parent | 8235b915cf2e25211b97c110dafd032f9bf0d261 (diff) | |
Extract generateStructDefinition()
Diffstat (limited to 'src/main')
| -rw-r--r-- | src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javatypes/JavaTypesGenerator.java | 31 |
1 files changed, 19 insertions, 12 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 be859b3..1259552 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 @@ -86,18 +86,7 @@ public class JavaTypesGenerator implements Generator { case TypedStructDefinitionNode structDefinition -> { var javaCompilationUnit = new JavaCompilationUnit( packageParts, - new JavaRecordDeclaration( - structDefinition.name(), - structDefinition.fields().stream() - .map(field -> new JavaRecordComponent( - generateTypeRef(field.type()), - field.name() - )) - .toList(), - javaClassToImplementsType.getOrDefault(structDefinition.name(), List.of()), - List.of(), - structDefinition.docComment() - ) + generateStructDefinition(structDefinition, javaClassToImplementsType) ); javaCompilationUnits.add(javaCompilationUnit); @@ -123,6 +112,24 @@ public class JavaTypesGenerator implements Generator { return javaCompilationUnits; } + private JavaRecordDeclaration generateStructDefinition( + TypedStructDefinitionNode structDefinition, + HashMap<String, List<JavaTypeRef>> javaClassToImplementsType + ) { + return new JavaRecordDeclaration( + structDefinition.name(), + structDefinition.fields().stream() + .map(field -> new JavaRecordComponent( + generateTypeRef(field.type()), + field.name() + )) + .toList(), + javaClassToImplementsType.getOrDefault(structDefinition.name(), List.of()), + List.of(), + structDefinition.docComment() + ); + } + private ArrayList<String> namespaceToJavaPackageParts(NamespaceName namespaceName) { var packageParts = new ArrayList<>(this.packageName); packageParts.addAll(namespaceName.parts()); |
