summaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javatypes/JavaTypesGenerator.java31
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());