diff options
Diffstat (limited to 'src/main/java/org')
| -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 3dcbd61..709ef12 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 @@ -148,23 +148,8 @@ public class JavaTypesGenerator implements Generator { var body = new ArrayList<JavaClassBodyDeclaration>(); if (structDefinition.fields().isEmpty()) { - body.add(new JavaFieldDeclaration( - JavaVisibility.PUBLIC, - JavaMemberKind.STATIC, - javaTypeRef, - JavaGenerator.INSTANCE_FIELD_NAME, - Optional.of(new JavaNewExpression( - javaTypeRef, - List.of() - )) - )); - - body.add(new JavaConstructorDeclaration( - javaTypeRef.typeNames().getLast(), - JavaVisibility.PRIVATE, - List.of(), - new JavaBlock(List.of()) - )); + body.add(generateStructSingletonInstanceField(javaTypeRef)); + body.add(generateStructSingletonConstructor(javaTypeRef)); } body.add(new JavaMethodDeclaration( @@ -203,6 +188,28 @@ public class JavaTypesGenerator implements Generator { } } + private static JavaFieldDeclaration generateStructSingletonInstanceField(JavaTypeRef javaTypeRef) { + return new JavaFieldDeclaration( + JavaVisibility.PUBLIC, + JavaMemberKind.STATIC, + javaTypeRef, + JavaGenerator.INSTANCE_FIELD_NAME, + Optional.of(new JavaNewExpression( + javaTypeRef, + List.of() + )) + ); + } + + private static JavaConstructorDeclaration generateStructSingletonConstructor(JavaTypeRef javaTypeRef) { + return new JavaConstructorDeclaration( + javaTypeRef.typeNames().getLast(), + JavaVisibility.PRIVATE, + List.of(), + new JavaBlock(List.of()) + ); + } + private JavaRecordDeclaration generateStructDefinitionBuilder( TypedStructDefinitionNode structDefinition, List<JavaRecordComponent> components, |
