summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--hobgoblin/src/output/lang/java/ast.hob17
-rw-r--r--src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javapreciselymatchers/JavaPreciselyMatchersGenerator.java5
-rw-r--r--src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javatransient0/JavaTransient0Generator.java10
-rw-r--r--src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javatypes/JavaTypesGenerator.java23
-rw-r--r--src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaClassDeclaration.java36
-rw-r--r--src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaCompilationUnit.java35
-rw-r--r--src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaEnumDeclaration.java32
-rw-r--r--src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaInterfaceDeclaration.java38
-rw-r--r--src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaRecordDeclaration.java42
-rw-r--r--src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaTypeDeclaration.java11
-rw-r--r--src/test/java/org/zwobble/hobgoblin/compiler/output/lang/java/JavaWriterTests.java70
-rw-r--r--src/test/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaClassDeclarationMatcher.java10
-rw-r--r--src/test/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaCompilationUnitMatcher.java12
-rw-r--r--src/test/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaEnumDeclarationMatcher.java10
-rw-r--r--src/test/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaInterfaceDeclarationMatcher.java10
-rw-r--r--src/test/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaRecordDeclarationMatcher.java10
16 files changed, 116 insertions, 255 deletions
diff --git a/hobgoblin/src/output/lang/java/ast.hob b/hobgoblin/src/output/lang/java/ast.hob
index c6b9afd..912644c 100644
--- a/hobgoblin/src/output/lang/java/ast.hob
+++ b/hobgoblin/src/output/lang/java/ast.hob
@@ -3,8 +3,6 @@ import {DocComment} from ast;
// == Compilation units ==
struct JavaCompilationUnit {
- field packageName: JavaPackageName;
- field customAreaImports: JavaCustomArea;
field typeDeclaration: JavaTypeDeclaration;
}
@@ -16,22 +14,19 @@ sum JavaTypeDeclaration {
variant JavaInterfaceDeclaration;
variant JavaRecordDeclaration;
- field name: JavaIdentifier;
- field customArea: JavaCustomArea;
+ field type: JavaTypeRef;
}
struct JavaClassDeclaration {
- field name: JavaIdentifier;
+ field type: JavaTypeRef;
field implementsTypes: List[JavaTypeRef];
field body: List[JavaClassBodyDeclaration];
- field customArea: JavaCustomArea;
field docComment: DocComment;
}
struct JavaEnumDeclaration {
- field name: JavaIdentifier;
+ field type: JavaTypeRef;
field constants: List[JavaEnumConstant];
- field customArea: JavaCustomArea;
field docComment: DocComment;
}
@@ -40,11 +35,10 @@ struct JavaEnumConstant {
}
struct JavaInterfaceDeclaration {
- field name: JavaIdentifier;
+ field type: JavaTypeRef;
field openness: JavaInterfaceOpenness;
field permitsTypes: List[JavaTypeRef];
field body: List[JavaClassBodyDeclaration];
- field customArea: JavaCustomArea;
field docComment: DocComment;
}
@@ -59,11 +53,10 @@ struct JavaRecordComponent {
}
struct JavaRecordDeclaration {
- field name: JavaIdentifier;
+ field type: JavaTypeRef;
field components: List[JavaRecordComponent];
field implementsTypes: List[JavaTypeRef];
field body: List[JavaClassBodyDeclaration];
- field customArea: JavaCustomArea;
field docComment: DocComment;
}
diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javapreciselymatchers/JavaPreciselyMatchersGenerator.java b/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javapreciselymatchers/JavaPreciselyMatchersGenerator.java
index 6c12f22..f6da3c1 100644
--- a/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javapreciselymatchers/JavaPreciselyMatchersGenerator.java
+++ b/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javapreciselymatchers/JavaPreciselyMatchersGenerator.java
@@ -73,8 +73,6 @@ public class JavaPreciselyMatchersGenerator implements Generator {
case TypedStructDefinitionNode structDefinition -> {
var javaCompilationUnit = new JavaCompilationUnit(
- packageParts,
- new JavaCustomArea(structMatcherRef(structDefinition.type()), "imports"),
generateStructDefinition(structDefinition, context)
);
@@ -242,10 +240,9 @@ public class JavaPreciselyMatchersGenerator implements Generator {
}
return new JavaClassDeclaration(
- matcherTypeName,
+ javaMatcherTypeRef,
List.of(genericMatcherRef(JavaTypeArg.invariant(JavaTypeRef.OBJECT))),
methods,
- JavaCustomArea.forType(javaMatcherTypeRef, "body"),
DocComment.EMPTY
);
}
diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javatransient0/JavaTransient0Generator.java b/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javatransient0/JavaTransient0Generator.java
index e61146a..572ab29 100644
--- a/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javatransient0/JavaTransient0Generator.java
+++ b/src/main/java/org/zwobble/hobgoblin/compiler/output/generators/javatransient0/JavaTransient0Generator.java
@@ -79,10 +79,8 @@ public class JavaTransient0Generator implements Generator {
JavaGenerator.write(this.sourceRootDirectory, List.of(
new JavaCompilationUnit(
- packageName,
- new JavaCustomArea(transient0JavaTypeRef, "imports"),
new JavaClassDeclaration(
- transient0JavaName,
+ transient0JavaTypeRef,
List.of(),
List.of(
generateEncodeBoolMethod(),
@@ -94,7 +92,6 @@ public class JavaTransient0Generator implements Generator {
generateEncodeStringMethod(),
generateDecodeStringMethod()
),
- new JavaCustomArea(transient0JavaTypeRef, "body"),
DocComment.EMPTY
)
)
@@ -290,15 +287,12 @@ public class JavaTransient0Generator implements Generator {
return List.of(
new JavaCompilationUnit(
- packageName,
- new JavaCustomArea(transient0JavaTypeRef, "imports"),
new JavaClassDeclaration(
- transient0JavaName,
+ transient0JavaTypeRef,
List.of(),
namespace.body().stream()
.flatMap(statement -> generateNamespaceStatement(statement, context))
.toList(),
- new JavaCustomArea(transient0JavaTypeRef, "body"),
DocComment.EMPTY
)
)
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 821389f..b445747 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
@@ -69,16 +69,12 @@ public class JavaTypesGenerator implements Generator {
}
private List<JavaCompilationUnit> generateNamespace(TypedNamespaceNode namespace, Context context) {
- var packageParts = namespaceToJavaPackageName(namespace.namespaceName());
-
var javaCompilationUnits = new ArrayList<JavaCompilationUnit>();
for (var statement : namespace.body()) {
switch (statement) {
case TypedEnumDefinitionNode enumDefinition -> {
var javaCompilationUnit = new JavaCompilationUnit(
- packageParts,
- new JavaCustomArea(generateTypeRef(enumDefinition.type(), context), "imports"),
generateEnumDefinition(enumDefinition, context)
);
@@ -90,8 +86,6 @@ public class JavaTypesGenerator implements Generator {
case TypedStructDefinitionNode structDefinition -> {
var javaCompilationUnit = new JavaCompilationUnit(
- packageParts,
- new JavaCustomArea(generateTypeRef(structDefinition.type(), context), "imports"),
generateStructDefinition(structDefinition, context)
);
@@ -100,8 +94,6 @@ public class JavaTypesGenerator implements Generator {
case TypedSumDefinitionNode sumDefinition -> {
var javaCompilationUnit = new JavaCompilationUnit(
- packageParts,
- new JavaCustomArea(generateTypeRef(sumDefinition.type(), context), "imports"),
generateSumDefinition(sumDefinition, context)
);
@@ -118,11 +110,10 @@ public class JavaTypesGenerator implements Generator {
Context context
) {
return new JavaEnumDeclaration(
- generateTypeName(enumDefinition.name()),
+ generateTypeRef(enumDefinition.type(), context),
enumDefinition.variants().stream()
.map(variant -> new JavaEnumConstant(generateEnumConstantName(variant.name())))
.toList(),
- JavaCustomArea.forType(generateTypeRef(enumDefinition.type(), context), "body"),
enumDefinition.docComment()
);
}
@@ -149,7 +140,7 @@ public class JavaTypesGenerator implements Generator {
.toList();
return new JavaRecordDeclaration(
- generateTypeName(structDefinition.name()),
+ generateTypeRef(structDefinition.type(), context),
components,
implementsTypes,
List.of(
@@ -169,7 +160,6 @@ public class JavaTypesGenerator implements Generator {
),
generateStructDefinitionBuilder(structDefinition, components, context)
),
- JavaCustomArea.forType(generateTypeRef(structDefinition.type(), context), "body"),
structDefinition.docComment()
);
}
@@ -206,11 +196,10 @@ public class JavaTypesGenerator implements Generator {
}
return new JavaRecordDeclaration(
- BUILDER_TYPE_NAME,
+ builderJavaTypeRef,
components,
implementsTypes,
body,
- JavaCustomArea.forType(builderJavaTypeRef, "body"),
DocComment.EMPTY
);
}
@@ -438,13 +427,12 @@ public class JavaTypesGenerator implements Generator {
}
return new JavaInterfaceDeclaration(
- generateTypeName(sumDefinition.name()),
+ generateTypeRef(sumDefinition.type(), context),
JavaInterfaceOpenness.SEALED,
sumDefinition.variants().stream()
.map(variant -> generateTypeRef(variant.type(), context))
.toList(),
body,
- JavaCustomArea.forType(generateTypeRef(sumDefinition.type(), context), "body"),
sumDefinition.docComment()
);
}
@@ -454,7 +442,7 @@ public class JavaTypesGenerator implements Generator {
Context context
) {
return new JavaInterfaceDeclaration(
- BUILDER_TYPE_NAME,
+ generateBuilderTypeRef(sumDefinition.type()),
JavaInterfaceOpenness.OPEN,
List.of(),
List.of(
@@ -468,7 +456,6 @@ public class JavaTypesGenerator implements Generator {
Optional.empty()
)
),
- JavaCustomArea.forType(generateBuilderTypeRef(sumDefinition.type()), "body"),
DocComment.EMPTY
);
}
diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaClassDeclaration.java b/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaClassDeclaration.java
index e12a0cc..8f26f7a 100644
--- a/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaClassDeclaration.java
+++ b/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaClassDeclaration.java
@@ -5,60 +5,48 @@ package org.zwobble.hobgoblin.compiler.output.lang.java.ast;
// Custom area start: org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassDeclaration imports
// Custom area end: org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassDeclaration imports
-public record JavaClassDeclaration(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaIdentifier name, java.util.List<org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaTypeRef> implementsTypes, java.util.List<org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassBodyDeclaration> body, org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaCustomArea customArea, org.zwobble.hobgoblin.compiler.ast.DocComment docComment) implements org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaTypeDeclaration, org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassBodyDeclaration {
+public record JavaClassDeclaration(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaTypeRef type, java.util.List<org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaTypeRef> implementsTypes, java.util.List<org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassBodyDeclaration> body, org.zwobble.hobgoblin.compiler.ast.DocComment docComment) implements org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaTypeDeclaration, org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassBodyDeclaration {
public static org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassDeclaration.Builder arbitrary() {
- return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassDeclaration.Builder(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaIdentifier.arbitrary().build(), java.util.List.of(), java.util.List.of(), org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaCustomArea.arbitrary().build(), org.zwobble.hobgoblin.compiler.ast.HobgoblinNativeAst.arbitraryDocComment());
+ return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassDeclaration.Builder(org.zwobble.hobgoblin.compiler.output.lang.java.ast.HobgoblinNativeAst.arbitraryJavaTypeRef(), java.util.List.of(), java.util.List.of(), org.zwobble.hobgoblin.compiler.ast.HobgoblinNativeAst.arbitraryDocComment());
}
- public record Builder(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaIdentifier name, java.util.List<org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaTypeRef> implementsTypes, java.util.List<org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassBodyDeclaration> body, org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaCustomArea customArea, org.zwobble.hobgoblin.compiler.ast.DocComment docComment) implements org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaTypeDeclaration.Builder, org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassBodyDeclaration.Builder {
+ public record Builder(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaTypeRef type, java.util.List<org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaTypeRef> implementsTypes, java.util.List<org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassBodyDeclaration> body, org.zwobble.hobgoblin.compiler.ast.DocComment docComment) implements org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaTypeDeclaration.Builder, org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassBodyDeclaration.Builder {
public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassDeclaration build() {
- return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassDeclaration(name, implementsTypes, body, customArea, docComment);
+ return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassDeclaration(type, implementsTypes, body, docComment);
}
- public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassDeclaration.Builder withName(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaIdentifier name) {
- return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassDeclaration.Builder(name, implementsTypes, body, customArea, docComment);
- }
-
- public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassDeclaration.Builder withName(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaIdentifier.Builder name) {
- return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassDeclaration.Builder(name.build(), implementsTypes, body, customArea, docComment);
+ public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassDeclaration.Builder withType(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaTypeRef type) {
+ return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassDeclaration.Builder(type, implementsTypes, body, docComment);
}
public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassDeclaration.Builder withImplementsTypes(java.util.List<org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaTypeRef> implementsTypes) {
- return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassDeclaration.Builder(name, implementsTypes, body, customArea, docComment);
+ return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassDeclaration.Builder(type, implementsTypes, body, docComment);
}
public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassDeclaration.Builder addImplementsType(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaTypeRef implementsType) {
var implementsTypes = new java.util.ArrayList<org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaTypeRef>(this.implementsTypes);
implementsTypes.add(implementsType);
- return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassDeclaration.Builder(name, implementsTypes, body, customArea, docComment);
+ return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassDeclaration.Builder(type, implementsTypes, body, docComment);
}
public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassDeclaration.Builder withBody(java.util.List<org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassBodyDeclaration> body) {
- return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassDeclaration.Builder(name, implementsTypes, body, customArea, docComment);
+ return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassDeclaration.Builder(type, implementsTypes, body, docComment);
}
public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassDeclaration.Builder addBodyElement(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassBodyDeclaration bodyElement) {
var body = new java.util.ArrayList<org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassBodyDeclaration>(this.body);
body.add(bodyElement);
- return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassDeclaration.Builder(name, implementsTypes, body, customArea, docComment);
+ return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassDeclaration.Builder(type, implementsTypes, body, docComment);
}
public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassDeclaration.Builder addBodyElement(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassBodyDeclaration.Builder bodyElement) {
var body = new java.util.ArrayList<org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassBodyDeclaration>(this.body);
body.add(bodyElement.build());
- return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassDeclaration.Builder(name, implementsTypes, body, customArea, docComment);
- }
-
- public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassDeclaration.Builder withCustomArea(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaCustomArea customArea) {
- return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassDeclaration.Builder(name, implementsTypes, body, customArea, docComment);
- }
-
- public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassDeclaration.Builder withCustomArea(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaCustomArea.Builder customArea) {
- return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassDeclaration.Builder(name, implementsTypes, body, customArea.build(), docComment);
+ return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassDeclaration.Builder(type, implementsTypes, body, docComment);
}
public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassDeclaration.Builder withDocComment(org.zwobble.hobgoblin.compiler.ast.DocComment docComment) {
- return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassDeclaration.Builder(name, implementsTypes, body, customArea, docComment);
+ return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassDeclaration.Builder(type, implementsTypes, body, docComment);
}
// Custom area start: org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassDeclaration.Builder body
diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaCompilationUnit.java b/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaCompilationUnit.java
index d196003..927c54e 100644
--- a/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaCompilationUnit.java
+++ b/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaCompilationUnit.java
@@ -5,38 +5,22 @@ package org.zwobble.hobgoblin.compiler.output.lang.java.ast;
// Custom area start: org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaCompilationUnit imports
// Custom area end: org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaCompilationUnit imports
-public record JavaCompilationUnit(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaPackageName packageName, org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaCustomArea customAreaImports, org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaTypeDeclaration typeDeclaration) {
+public record JavaCompilationUnit(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaTypeDeclaration typeDeclaration) {
public static org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaCompilationUnit.Builder arbitrary() {
- return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaCompilationUnit.Builder(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaPackageName.arbitrary().build(), org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaCustomArea.arbitrary().build(), org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassDeclaration.arbitrary().build());
+ return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaCompilationUnit.Builder(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassDeclaration.arbitrary().build());
}
- public record Builder(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaPackageName packageName, org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaCustomArea customAreaImports, org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaTypeDeclaration typeDeclaration) {
+ public record Builder(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaTypeDeclaration typeDeclaration) {
public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaCompilationUnit build() {
- return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaCompilationUnit(packageName, customAreaImports, typeDeclaration);
- }
-
- public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaCompilationUnit.Builder withPackageName(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaPackageName packageName) {
- return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaCompilationUnit.Builder(packageName, customAreaImports, typeDeclaration);
- }
-
- public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaCompilationUnit.Builder withPackageName(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaPackageName.Builder packageName) {
- return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaCompilationUnit.Builder(packageName.build(), customAreaImports, typeDeclaration);
- }
-
- public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaCompilationUnit.Builder withCustomAreaImports(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaCustomArea customAreaImports) {
- return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaCompilationUnit.Builder(packageName, customAreaImports, typeDeclaration);
- }
-
- public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaCompilationUnit.Builder withCustomAreaImports(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaCustomArea.Builder customAreaImports) {
- return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaCompilationUnit.Builder(packageName, customAreaImports.build(), typeDeclaration);
+ return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaCompilationUnit(typeDeclaration);
}
public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaCompilationUnit.Builder withTypeDeclaration(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaTypeDeclaration typeDeclaration) {
- return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaCompilationUnit.Builder(packageName, customAreaImports, typeDeclaration);
+ return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaCompilationUnit.Builder(typeDeclaration);
}
public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaCompilationUnit.Builder withTypeDeclaration(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaTypeDeclaration.Builder typeDeclaration) {
- return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaCompilationUnit.Builder(packageName, customAreaImports, typeDeclaration.build());
+ return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaCompilationUnit.Builder(typeDeclaration.build());
}
// Custom area start: org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaCompilationUnit.Builder body
@@ -44,5 +28,12 @@ public record JavaCompilationUnit(org.zwobble.hobgoblin.compiler.output.lang.jav
}
// Custom area start: org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaCompilationUnit body
+ public JavaPackageName packageName() {
+ return this.typeDeclaration.type().packageName();
+ }
+
+ public JavaCustomArea customAreaImports() {
+ return new JavaCustomArea(this.typeDeclaration.type(), "imports");
+ }
// Custom area end: org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaCompilationUnit body
}
diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaEnumDeclaration.java b/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaEnumDeclaration.java
index 5668bbd..d95d0b9 100644
--- a/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaEnumDeclaration.java
+++ b/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaEnumDeclaration.java
@@ -5,50 +5,38 @@ package org.zwobble.hobgoblin.compiler.output.lang.java.ast;
// Custom area start: org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaEnumDeclaration imports
// Custom area end: org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaEnumDeclaration imports
-public record JavaEnumDeclaration(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaIdentifier name, java.util.List<org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaEnumConstant> constants, org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaCustomArea customArea, org.zwobble.hobgoblin.compiler.ast.DocComment docComment) implements org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaTypeDeclaration {
+public record JavaEnumDeclaration(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaTypeRef type, java.util.List<org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaEnumConstant> constants, org.zwobble.hobgoblin.compiler.ast.DocComment docComment) implements org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaTypeDeclaration {
public static org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaEnumDeclaration.Builder arbitrary() {
- return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaEnumDeclaration.Builder(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaIdentifier.arbitrary().build(), java.util.List.of(), org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaCustomArea.arbitrary().build(), org.zwobble.hobgoblin.compiler.ast.HobgoblinNativeAst.arbitraryDocComment());
+ return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaEnumDeclaration.Builder(org.zwobble.hobgoblin.compiler.output.lang.java.ast.HobgoblinNativeAst.arbitraryJavaTypeRef(), java.util.List.of(), org.zwobble.hobgoblin.compiler.ast.HobgoblinNativeAst.arbitraryDocComment());
}
- public record Builder(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaIdentifier name, java.util.List<org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaEnumConstant> constants, org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaCustomArea customArea, org.zwobble.hobgoblin.compiler.ast.DocComment docComment) implements org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaTypeDeclaration.Builder {
+ public record Builder(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaTypeRef type, java.util.List<org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaEnumConstant> constants, org.zwobble.hobgoblin.compiler.ast.DocComment docComment) implements org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaTypeDeclaration.Builder {
public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaEnumDeclaration build() {
- return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaEnumDeclaration(name, constants, customArea, docComment);
+ return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaEnumDeclaration(type, constants, docComment);
}
- public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaEnumDeclaration.Builder withName(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaIdentifier name) {
- return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaEnumDeclaration.Builder(name, constants, customArea, docComment);
- }
-
- public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaEnumDeclaration.Builder withName(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaIdentifier.Builder name) {
- return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaEnumDeclaration.Builder(name.build(), constants, customArea, docComment);
+ public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaEnumDeclaration.Builder withType(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaTypeRef type) {
+ return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaEnumDeclaration.Builder(type, constants, docComment);
}
public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaEnumDeclaration.Builder withConstants(java.util.List<org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaEnumConstant> constants) {
- return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaEnumDeclaration.Builder(name, constants, customArea, docComment);
+ return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaEnumDeclaration.Builder(type, constants, docComment);
}
public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaEnumDeclaration.Builder addConstant(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaEnumConstant constant) {
var constants = new java.util.ArrayList<org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaEnumConstant>(this.constants);
constants.add(constant);
- return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaEnumDeclaration.Builder(name, constants, customArea, docComment);
+ return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaEnumDeclaration.Builder(type, constants, docComment);
}
public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaEnumDeclaration.Builder addConstant(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaEnumConstant.Builder constant) {
var constants = new java.util.ArrayList<org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaEnumConstant>(this.constants);
constants.add(constant.build());
- return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaEnumDeclaration.Builder(name, constants, customArea, docComment);
- }
-
- public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaEnumDeclaration.Builder withCustomArea(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaCustomArea customArea) {
- return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaEnumDeclaration.Builder(name, constants, customArea, docComment);
- }
-
- public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaEnumDeclaration.Builder withCustomArea(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaCustomArea.Builder customArea) {
- return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaEnumDeclaration.Builder(name, constants, customArea.build(), docComment);
+ return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaEnumDeclaration.Builder(type, constants, docComment);
}
public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaEnumDeclaration.Builder withDocComment(org.zwobble.hobgoblin.compiler.ast.DocComment docComment) {
- return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaEnumDeclaration.Builder(name, constants, customArea, docComment);
+ return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaEnumDeclaration.Builder(type, constants, docComment);
}
// Custom area start: org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaEnumDeclaration.Builder body
diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaInterfaceDeclaration.java b/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaInterfaceDeclaration.java
index a00a080..5b0089a 100644
--- a/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaInterfaceDeclaration.java
+++ b/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaInterfaceDeclaration.java
@@ -5,64 +5,52 @@ package org.zwobble.hobgoblin.compiler.output.lang.java.ast;
// Custom area start: org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaInterfaceDeclaration imports
// Custom area end: org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaInterfaceDeclaration imports
-public record JavaInterfaceDeclaration(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaIdentifier name, org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaInterfaceOpenness openness, java.util.List<org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaTypeRef> permitsTypes, java.util.List<org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassBodyDeclaration> body, org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaCustomArea customArea, org.zwobble.hobgoblin.compiler.ast.DocComment docComment) implements org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaTypeDeclaration, org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassBodyDeclaration {
+public record JavaInterfaceDeclaration(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaTypeRef type, org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaInterfaceOpenness openness, java.util.List<org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaTypeRef> permitsTypes, java.util.List<org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassBodyDeclaration> body, org.zwobble.hobgoblin.compiler.ast.DocComment docComment) implements org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaTypeDeclaration, org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassBodyDeclaration {
public static org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaInterfaceDeclaration.Builder arbitrary() {
- return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaInterfaceDeclaration.Builder(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaIdentifier.arbitrary().build(), org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaInterfaceOpenness.OPEN, java.util.List.of(), java.util.List.of(), org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaCustomArea.arbitrary().build(), org.zwobble.hobgoblin.compiler.ast.HobgoblinNativeAst.arbitraryDocComment());
+ return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaInterfaceDeclaration.Builder(org.zwobble.hobgoblin.compiler.output.lang.java.ast.HobgoblinNativeAst.arbitraryJavaTypeRef(), org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaInterfaceOpenness.OPEN, java.util.List.of(), java.util.List.of(), org.zwobble.hobgoblin.compiler.ast.HobgoblinNativeAst.arbitraryDocComment());
}
- public record Builder(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaIdentifier name, org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaInterfaceOpenness openness, java.util.List<org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaTypeRef> permitsTypes, java.util.List<org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassBodyDeclaration> body, org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaCustomArea customArea, org.zwobble.hobgoblin.compiler.ast.DocComment docComment) implements org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaTypeDeclaration.Builder, org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassBodyDeclaration.Builder {
+ public record Builder(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaTypeRef type, org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaInterfaceOpenness openness, java.util.List<org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaTypeRef> permitsTypes, java.util.List<org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassBodyDeclaration> body, org.zwobble.hobgoblin.compiler.ast.DocComment docComment) implements org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaTypeDeclaration.Builder, org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassBodyDeclaration.Builder {
public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaInterfaceDeclaration build() {
- return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaInterfaceDeclaration(name, openness, permitsTypes, body, customArea, docComment);
+ return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaInterfaceDeclaration(type, openness, permitsTypes, body, docComment);
}
- public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaInterfaceDeclaration.Builder withName(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaIdentifier name) {
- return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaInterfaceDeclaration.Builder(name, openness, permitsTypes, body, customArea, docComment);
- }
-
- public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaInterfaceDeclaration.Builder withName(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaIdentifier.Builder name) {
- return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaInterfaceDeclaration.Builder(name.build(), openness, permitsTypes, body, customArea, docComment);
+ public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaInterfaceDeclaration.Builder withType(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaTypeRef type) {
+ return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaInterfaceDeclaration.Builder(type, openness, permitsTypes, body, docComment);
}
public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaInterfaceDeclaration.Builder withOpenness(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaInterfaceOpenness openness) {
- return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaInterfaceDeclaration.Builder(name, openness, permitsTypes, body, customArea, docComment);
+ return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaInterfaceDeclaration.Builder(type, openness, permitsTypes, body, docComment);
}
public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaInterfaceDeclaration.Builder withPermitsTypes(java.util.List<org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaTypeRef> permitsTypes) {
- return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaInterfaceDeclaration.Builder(name, openness, permitsTypes, body, customArea, docComment);
+ return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaInterfaceDeclaration.Builder(type, openness, permitsTypes, body, docComment);
}
public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaInterfaceDeclaration.Builder addPermitsType(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaTypeRef permitsType) {
var permitsTypes = new java.util.ArrayList<org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaTypeRef>(this.permitsTypes);
permitsTypes.add(permitsType);
- return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaInterfaceDeclaration.Builder(name, openness, permitsTypes, body, customArea, docComment);
+ return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaInterfaceDeclaration.Builder(type, openness, permitsTypes, body, docComment);
}
public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaInterfaceDeclaration.Builder withBody(java.util.List<org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassBodyDeclaration> body) {
- return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaInterfaceDeclaration.Builder(name, openness, permitsTypes, body, customArea, docComment);
+ return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaInterfaceDeclaration.Builder(type, openness, permitsTypes, body, docComment);
}
public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaInterfaceDeclaration.Builder addBodyElement(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassBodyDeclaration bodyElement) {
var body = new java.util.ArrayList<org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassBodyDeclaration>(this.body);
body.add(bodyElement);
- return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaInterfaceDeclaration.Builder(name, openness, permitsTypes, body, customArea, docComment);
+ return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaInterfaceDeclaration.Builder(type, openness, permitsTypes, body, docComment);
}
public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaInterfaceDeclaration.Builder addBodyElement(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassBodyDeclaration.Builder bodyElement) {
var body = new java.util.ArrayList<org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassBodyDeclaration>(this.body);
body.add(bodyElement.build());
- return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaInterfaceDeclaration.Builder(name, openness, permitsTypes, body, customArea, docComment);
- }
-
- public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaInterfaceDeclaration.Builder withCustomArea(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaCustomArea customArea) {
- return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaInterfaceDeclaration.Builder(name, openness, permitsTypes, body, customArea, docComment);
- }
-
- public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaInterfaceDeclaration.Builder withCustomArea(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaCustomArea.Builder customArea) {
- return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaInterfaceDeclaration.Builder(name, openness, permitsTypes, body, customArea.build(), docComment);
+ return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaInterfaceDeclaration.Builder(type, openness, permitsTypes, body, docComment);
}
public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaInterfaceDeclaration.Builder withDocComment(org.zwobble.hobgoblin.compiler.ast.DocComment docComment) {
- return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaInterfaceDeclaration.Builder(name, openness, permitsTypes, body, customArea, docComment);
+ return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaInterfaceDeclaration.Builder(type, openness, permitsTypes, body, docComment);
}
// Custom area start: org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaInterfaceDeclaration.Builder body
diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaRecordDeclaration.java b/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaRecordDeclaration.java
index d4bbc65..e62298d 100644
--- a/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaRecordDeclaration.java
+++ b/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaRecordDeclaration.java
@@ -5,76 +5,64 @@ package org.zwobble.hobgoblin.compiler.output.lang.java.ast;
// Custom area start: org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaRecordDeclaration imports
// Custom area end: org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaRecordDeclaration imports
-public record JavaRecordDeclaration(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaIdentifier name, java.util.List<org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaRecordComponent> components, java.util.List<org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaTypeRef> implementsTypes, java.util.List<org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassBodyDeclaration> body, org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaCustomArea customArea, org.zwobble.hobgoblin.compiler.ast.DocComment docComment) implements org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaTypeDeclaration, org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassBodyDeclaration {
+public record JavaRecordDeclaration(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaTypeRef type, java.util.List<org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaRecordComponent> components, java.util.List<org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaTypeRef> implementsTypes, java.util.List<org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassBodyDeclaration> body, org.zwobble.hobgoblin.compiler.ast.DocComment docComment) implements org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaTypeDeclaration, org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassBodyDeclaration {
public static org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaRecordDeclaration.Builder arbitrary() {
- return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaRecordDeclaration.Builder(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaIdentifier.arbitrary().build(), java.util.List.of(), java.util.List.of(), java.util.List.of(), org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaCustomArea.arbitrary().build(), org.zwobble.hobgoblin.compiler.ast.HobgoblinNativeAst.arbitraryDocComment());
+ return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaRecordDeclaration.Builder(org.zwobble.hobgoblin.compiler.output.lang.java.ast.HobgoblinNativeAst.arbitraryJavaTypeRef(), java.util.List.of(), java.util.List.of(), java.util.List.of(), org.zwobble.hobgoblin.compiler.ast.HobgoblinNativeAst.arbitraryDocComment());
}
- public record Builder(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaIdentifier name, java.util.List<org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaRecordComponent> components, java.util.List<org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaTypeRef> implementsTypes, java.util.List<org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassBodyDeclaration> body, org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaCustomArea customArea, org.zwobble.hobgoblin.compiler.ast.DocComment docComment) implements org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaTypeDeclaration.Builder, org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassBodyDeclaration.Builder {
+ public record Builder(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaTypeRef type, java.util.List<org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaRecordComponent> components, java.util.List<org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaTypeRef> implementsTypes, java.util.List<org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassBodyDeclaration> body, org.zwobble.hobgoblin.compiler.ast.DocComment docComment) implements org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaTypeDeclaration.Builder, org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassBodyDeclaration.Builder {
public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaRecordDeclaration build() {
- return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaRecordDeclaration(name, components, implementsTypes, body, customArea, docComment);
+ return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaRecordDeclaration(type, components, implementsTypes, body, docComment);
}
- public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaRecordDeclaration.Builder withName(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaIdentifier name) {
- return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaRecordDeclaration.Builder(name, components, implementsTypes, body, customArea, docComment);
- }
-
- public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaRecordDeclaration.Builder withName(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaIdentifier.Builder name) {
- return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaRecordDeclaration.Builder(name.build(), components, implementsTypes, body, customArea, docComment);
+ public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaRecordDeclaration.Builder withType(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaTypeRef type) {
+ return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaRecordDeclaration.Builder(type, components, implementsTypes, body, docComment);
}
public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaRecordDeclaration.Builder withComponents(java.util.List<org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaRecordComponent> components) {
- return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaRecordDeclaration.Builder(name, components, implementsTypes, body, customArea, docComment);
+ return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaRecordDeclaration.Builder(type, components, implementsTypes, body, docComment);
}
public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaRecordDeclaration.Builder addComponent(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaRecordComponent component) {
var components = new java.util.ArrayList<org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaRecordComponent>(this.components);
components.add(component);
- return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaRecordDeclaration.Builder(name, components, implementsTypes, body, customArea, docComment);
+ return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaRecordDeclaration.Builder(type, components, implementsTypes, body, docComment);
}
public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaRecordDeclaration.Builder addComponent(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaRecordComponent.Builder component) {
var components = new java.util.ArrayList<org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaRecordComponent>(this.components);
components.add(component.build());
- return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaRecordDeclaration.Builder(name, components, implementsTypes, body, customArea, docComment);
+ return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaRecordDeclaration.Builder(type, components, implementsTypes, body, docComment);
}
public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaRecordDeclaration.Builder withImplementsTypes(java.util.List<org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaTypeRef> implementsTypes) {
- return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaRecordDeclaration.Builder(name, components, implementsTypes, body, customArea, docComment);
+ return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaRecordDeclaration.Builder(type, components, implementsTypes, body, docComment);
}
public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaRecordDeclaration.Builder addImplementsType(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaTypeRef implementsType) {
var implementsTypes = new java.util.ArrayList<org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaTypeRef>(this.implementsTypes);
implementsTypes.add(implementsType);
- return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaRecordDeclaration.Builder(name, components, implementsTypes, body, customArea, docComment);
+ return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaRecordDeclaration.Builder(type, components, implementsTypes, body, docComment);
}
public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaRecordDeclaration.Builder withBody(java.util.List<org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassBodyDeclaration> body) {
- return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaRecordDeclaration.Builder(name, components, implementsTypes, body, customArea, docComment);
+ return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaRecordDeclaration.Builder(type, components, implementsTypes, body, docComment);
}
public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaRecordDeclaration.Builder addBodyElement(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassBodyDeclaration bodyElement) {
var body = new java.util.ArrayList<org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassBodyDeclaration>(this.body);
body.add(bodyElement);
- return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaRecordDeclaration.Builder(name, components, implementsTypes, body, customArea, docComment);
+ return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaRecordDeclaration.Builder(type, components, implementsTypes, body, docComment);
}
public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaRecordDeclaration.Builder addBodyElement(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassBodyDeclaration.Builder bodyElement) {
var body = new java.util.ArrayList<org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassBodyDeclaration>(this.body);
body.add(bodyElement.build());
- return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaRecordDeclaration.Builder(name, components, implementsTypes, body, customArea, docComment);
- }
-
- public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaRecordDeclaration.Builder withCustomArea(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaCustomArea customArea) {
- return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaRecordDeclaration.Builder(name, components, implementsTypes, body, customArea, docComment);
- }
-
- public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaRecordDeclaration.Builder withCustomArea(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaCustomArea.Builder customArea) {
- return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaRecordDeclaration.Builder(name, components, implementsTypes, body, customArea.build(), docComment);
+ return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaRecordDeclaration.Builder(type, components, implementsTypes, body, docComment);
}
public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaRecordDeclaration.Builder withDocComment(org.zwobble.hobgoblin.compiler.ast.DocComment docComment) {
- return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaRecordDeclaration.Builder(name, components, implementsTypes, body, customArea, docComment);
+ return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaRecordDeclaration.Builder(type, components, implementsTypes, body, docComment);
}
// Custom area start: org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaRecordDeclaration.Builder body
diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaTypeDeclaration.java b/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaTypeDeclaration.java
index e4e7b01..3ac5a48 100644
--- a/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaTypeDeclaration.java
+++ b/src/main/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaTypeDeclaration.java
@@ -13,10 +13,15 @@ public sealed interface JavaTypeDeclaration permits org.zwobble.hobgoblin.compil
// Custom area end: org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaTypeDeclaration.Builder body
}
- public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaIdentifier name();
-
- public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaCustomArea customArea();
+ public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaTypeRef type();
// Custom area start: org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaTypeDeclaration body
+ default JavaIdentifier name() {
+ return this.type().typeNames().getLast();
+ }
+
+ default JavaCustomArea customArea() {
+ return new JavaCustomArea(this.type(), "body");
+ }
// Custom area end: org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaTypeDeclaration body
}
diff --git a/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/java/JavaWriterTests.java b/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/java/JavaWriterTests.java
index 0b5f959..ecdcaff 100644
--- a/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/java/JavaWriterTests.java
+++ b/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/java/JavaWriterTests.java
@@ -17,13 +17,10 @@ public class JavaWriterTests {
@Test
public void compilationUnit() throws IOException {
var java = new JavaCompilationUnit(
- JavaPackageName.of("com", "example", "shapes"),
- new JavaCustomArea(JavaTypeRef.topLevel(JavaPackageName.EMPTY, JavaIdentifier.of("Rectangle")), "imports"),
new JavaClassDeclaration(
- JavaIdentifier.of("Rectangle"),
+ JavaTypeRef.topLevel(JavaPackageName.of("com", "example", "shapes"), JavaIdentifier.of("Rectangle")),
List.of(),
List.of(),
- new JavaCustomArea(JavaTypeRef.topLevel(JavaPackageName.EMPTY, JavaIdentifier.of("Rectangle")), "body"),
DocComment.EMPTY
)
);
@@ -35,12 +32,12 @@ public class JavaWriterTests {
package com.example.shapes;
- // Custom area start: Rectangle imports
- // Custom area end: Rectangle imports
+ // Custom area start: com.example.shapes.Rectangle imports
+ // Custom area end: com.example.shapes.Rectangle imports
public class Rectangle {
- // Custom area start: Rectangle body
- // Custom area end: Rectangle body
+ // Custom area start: com.example.shapes.Rectangle body
+ // Custom area end: com.example.shapes.Rectangle body
}
"""
));
@@ -49,10 +46,9 @@ public class JavaWriterTests {
@Test
public void emptyClassDeclaration() throws IOException {
var java = new JavaClassDeclaration(
- JavaIdentifier.of("Rectangle"),
+ JavaTypeRef.topLevel(JavaPackageName.EMPTY, JavaIdentifier.of("Rectangle")),
List.of(),
List.of(),
- new JavaCustomArea(JavaTypeRef.topLevel(JavaPackageName.EMPTY, JavaIdentifier.of("Rectangle")), "body"),
DocComment.EMPTY
);
@@ -69,7 +65,7 @@ public class JavaWriterTests {
@Test
public void classDeclarationImplementingSingleInterface() throws IOException {
var java = new JavaClassDeclaration(
- JavaIdentifier.of("Rectangle"),
+ JavaTypeRef.topLevel(JavaPackageName.EMPTY, JavaIdentifier.of("Rectangle")),
List.of(
JavaTypeRef.topLevel(
JavaPackageName.of("com", "example"),
@@ -77,7 +73,6 @@ public class JavaWriterTests {
)
),
List.of(),
- new JavaCustomArea(JavaTypeRef.topLevel(JavaPackageName.EMPTY, JavaIdentifier.of("Rectangle")), "body"),
DocComment.EMPTY
);
@@ -94,13 +89,12 @@ public class JavaWriterTests {
@Test
public void classDeclarationImplementingMultipleInterfaces() throws IOException {
var java = new JavaClassDeclaration(
- JavaIdentifier.of("Rectangle"),
+ JavaTypeRef.topLevel(JavaPackageName.EMPTY, JavaIdentifier.of("Rectangle")),
List.of(
JavaTypeRef.topLevel(JavaPackageName.of("com", "example"), JavaIdentifier.of("Shape")),
JavaTypeRef.topLevel(JavaPackageName.of("com", "example"), JavaIdentifier.of("Drawable"))
),
List.of(),
- new JavaCustomArea(JavaTypeRef.topLevel(JavaPackageName.EMPTY, JavaIdentifier.of("Rectangle")), "body"),
DocComment.EMPTY
);
@@ -117,7 +111,7 @@ public class JavaWriterTests {
@Test
public void classDeclarationWithMethods() throws IOException {
var java = new JavaClassDeclaration(
- JavaIdentifier.of("Rectangle"),
+ JavaTypeRef.topLevel(JavaPackageName.EMPTY, JavaIdentifier.of("Rectangle")),
List.of(),
List.of(
JavaMethodDeclaration.arbitrary()
@@ -135,7 +129,6 @@ public class JavaWriterTests {
.withBody(JavaBlock.EMPTY)
.build()
),
- new JavaCustomArea(JavaTypeRef.topLevel(JavaPackageName.EMPTY, JavaIdentifier.of("Rectangle")), "body"),
DocComment.EMPTY
);
@@ -158,10 +151,9 @@ public class JavaWriterTests {
@Test
public void classDeclarationWithDocComment() throws IOException {
var java = new JavaClassDeclaration(
- JavaIdentifier.of("Point"),
+ JavaTypeRef.topLevel(JavaPackageName.EMPTY, JavaIdentifier.of("Point")),
List.of(),
List.of(),
- new JavaCustomArea(JavaTypeRef.topLevel(JavaPackageName.EMPTY, JavaIdentifier.of("Point")), "body"),
new DocComment("A 2D point.")
);
@@ -179,8 +171,7 @@ public class JavaWriterTests {
@Test
public void emptyEnumDeclaration() throws IOException {
var java = JavaEnumDeclaration.arbitrary()
- .withName(JavaIdentifier.of("SmallNumber"))
- .withCustomArea(JavaCustomArea.forType(JavaTypeRef.topLevel(JavaPackageName.EMPTY, JavaIdentifier.of("SmallNumber")), "body"))
+ .withType(JavaTypeRef.topLevel(JavaPackageName.EMPTY, JavaIdentifier.of("SmallNumber")))
.build();
var string = write(writer -> writer.writeTypeDeclaration(java));
@@ -196,8 +187,7 @@ public class JavaWriterTests {
@Test
public void enumDeclarationWithConstants() throws IOException {
var java = JavaEnumDeclaration.arbitrary()
- .withName(JavaIdentifier.of("SmallNumber"))
- .withCustomArea(JavaCustomArea.forType(JavaTypeRef.topLevel(JavaPackageName.EMPTY, JavaIdentifier.of("SmallNumber")), "body"))
+ .withType(JavaTypeRef.topLevel(JavaPackageName.EMPTY, JavaIdentifier.of("SmallNumber")))
.withConstants(List.of(
JavaEnumConstant.arbitrary().withName(JavaIdentifier.of("ZERO")).build(),
JavaEnumConstant.arbitrary().withName(JavaIdentifier.of("ONE")).build(),
@@ -222,9 +212,8 @@ public class JavaWriterTests {
@Test
public void enumDeclarationWithDocComment() throws IOException {
var java = JavaEnumDeclaration.arbitrary()
- .withName(JavaIdentifier.of("SmallNumber"))
+ .withType(JavaTypeRef.topLevel(JavaPackageName.EMPTY, JavaIdentifier.of("SmallNumber")))
.withDocComment(new DocComment("A small number."))
- .withCustomArea(JavaCustomArea.forType(JavaTypeRef.topLevel(JavaPackageName.EMPTY, JavaIdentifier.of("SmallNumber")), "body"))
.build();
var string = write(writer -> writer.writeTypeDeclaration(java));
@@ -241,11 +230,10 @@ public class JavaWriterTests {
@Test
public void openInterfaceDeclaration() throws IOException {
var java = new JavaInterfaceDeclaration(
- JavaIdentifier.of("Shape"),
+ JavaTypeRef.topLevel(JavaPackageName.EMPTY, JavaIdentifier.of("Shape")),
JavaInterfaceOpenness.OPEN,
List.of(),
List.of(),
- new JavaCustomArea(JavaTypeRef.topLevel(JavaPackageName.EMPTY, JavaIdentifier.of("Shape")), "body"),
DocComment.EMPTY
);
@@ -262,11 +250,10 @@ public class JavaWriterTests {
@Test
public void sealedInterfaceDeclaration() throws IOException {
var java = new JavaInterfaceDeclaration(
- JavaIdentifier.of("Shape"),
+ JavaTypeRef.topLevel(JavaPackageName.EMPTY, JavaIdentifier.of("Shape")),
JavaInterfaceOpenness.SEALED,
List.of(),
List.of(),
- new JavaCustomArea(JavaTypeRef.topLevel(JavaPackageName.EMPTY, JavaIdentifier.of("Shape")), "body"),
DocComment.EMPTY
);
@@ -283,14 +270,13 @@ public class JavaWriterTests {
@Test
public void sealedInterfaceDeclarationWithPermitsTypes() throws IOException {
var java = new JavaInterfaceDeclaration(
- JavaIdentifier.of("Shape"),
+ JavaTypeRef.topLevel(JavaPackageName.EMPTY, JavaIdentifier.of("Shape")),
JavaInterfaceOpenness.SEALED,
List.of(
JavaTypeRef.topLevel(JavaPackageName.of("abc", "def"), JavaIdentifier.of("One")),
JavaTypeRef.topLevel(JavaPackageName.of("abc", "def"), JavaIdentifier.of("Two"))
),
List.of(),
- new JavaCustomArea(JavaTypeRef.topLevel(JavaPackageName.EMPTY, JavaIdentifier.of("Shape")), "body"),
DocComment.EMPTY
);
@@ -307,11 +293,10 @@ public class JavaWriterTests {
@Test
public void interfaceDeclarationWithDocComment() throws IOException {
var java = new JavaInterfaceDeclaration(
- JavaIdentifier.of("Shape"),
+ JavaTypeRef.topLevel(JavaPackageName.EMPTY, JavaIdentifier.of("Shape")),
JavaInterfaceOpenness.OPEN,
List.of(),
List.of(),
- new JavaCustomArea(JavaTypeRef.topLevel(JavaPackageName.EMPTY, JavaIdentifier.of("Shape")), "body"),
new DocComment("A 2D shape.")
);
@@ -329,7 +314,7 @@ public class JavaWriterTests {
@Test
public void interfaceDeclarationWithBody() throws IOException {
var java = new JavaInterfaceDeclaration(
- JavaIdentifier.of("Shape"),
+ JavaTypeRef.topLevel(JavaPackageName.EMPTY, JavaIdentifier.of("Shape")),
JavaInterfaceOpenness.OPEN,
List.of(),
List.of(
@@ -348,7 +333,6 @@ public class JavaWriterTests {
.withBody(JavaBlock.EMPTY)
.build()
),
- new JavaCustomArea(JavaTypeRef.topLevel(JavaPackageName.EMPTY, JavaIdentifier.of("Shape")), "body"),
DocComment.EMPTY
);
@@ -371,11 +355,10 @@ public class JavaWriterTests {
@Test
public void emptyRecordDeclaration() throws IOException {
var java = new JavaRecordDeclaration(
- JavaIdentifier.of("Point"),
+ JavaTypeRef.topLevel(JavaPackageName.EMPTY, JavaIdentifier.of("Point")),
List.of(),
List.of(),
List.of(),
- new JavaCustomArea(JavaTypeRef.topLevel(JavaPackageName.EMPTY, JavaIdentifier.of("Point")), "body"),
DocComment.EMPTY
);
@@ -392,11 +375,10 @@ public class JavaWriterTests {
@Test
public void recordDeclarationWithDocComment() throws IOException {
var java = new JavaRecordDeclaration(
- JavaIdentifier.of("Point"),
+ JavaTypeRef.topLevel(JavaPackageName.EMPTY, JavaIdentifier.of("Point")),
List.of(),
List.of(),
List.of(),
- new JavaCustomArea(JavaTypeRef.topLevel(JavaPackageName.EMPTY, JavaIdentifier.of("Point")), "body"),
new DocComment("A 2D point.")
);
@@ -414,13 +396,12 @@ public class JavaWriterTests {
@Test
public void recordDeclarationImplementingOneInterface() throws IOException {
var java = new JavaRecordDeclaration(
- JavaIdentifier.of("Rectangle"),
+ JavaTypeRef.topLevel(JavaPackageName.EMPTY, JavaIdentifier.of("Rectangle")),
List.of(),
List.of(
JavaTypeRef.topLevel(JavaPackageName.of("com", "example"), JavaIdentifier.of("Shape"))
),
List.of(),
- new JavaCustomArea(JavaTypeRef.topLevel(JavaPackageName.EMPTY, JavaIdentifier.of("Rectangle")), "body"),
DocComment.EMPTY
);
@@ -437,14 +418,13 @@ public class JavaWriterTests {
@Test
public void recordDeclarationImplementingMultipleInterfaces() throws IOException {
var java = new JavaRecordDeclaration(
- JavaIdentifier.of("Rectangle"),
+ JavaTypeRef.topLevel(JavaPackageName.EMPTY, JavaIdentifier.of("Rectangle")),
List.of(),
List.of(
JavaTypeRef.topLevel(JavaPackageName.of("com", "example"), JavaIdentifier.of("Shape")),
JavaTypeRef.topLevel(JavaPackageName.of("com", "example"), JavaIdentifier.of("Drawable"))
),
List.of(),
- new JavaCustomArea(JavaTypeRef.topLevel(JavaPackageName.EMPTY, JavaIdentifier.of("Rectangle")), "body"),
DocComment.EMPTY
);
@@ -461,7 +441,7 @@ public class JavaWriterTests {
@Test
public void recordDeclarationWithMethods() throws IOException {
var java = new JavaRecordDeclaration(
- JavaIdentifier.of("Rectangle"),
+ JavaTypeRef.topLevel(JavaPackageName.EMPTY, JavaIdentifier.of("Rectangle")),
List.of(),
List.of(),
List.of(
@@ -480,7 +460,6 @@ public class JavaWriterTests {
.withBody(JavaBlock.EMPTY)
.build()
),
- new JavaCustomArea(JavaTypeRef.topLevel(JavaPackageName.EMPTY, JavaIdentifier.of("Rectangle")), "body"),
DocComment.EMPTY
);
@@ -1152,11 +1131,10 @@ public class JavaWriterTests {
@Test
public void customAreaContentsArePreserved() throws IOException {
var java = new JavaRecordDeclaration(
- JavaIdentifier.of("Point"),
+ JavaTypeRef.topLevel(JavaPackageName.EMPTY, JavaIdentifier.of("Point")),
List.of(),
List.of(),
List.of(),
- new JavaCustomArea(JavaTypeRef.topLevel(JavaPackageName.EMPTY, JavaIdentifier.of("Point")), "body"),
DocComment.EMPTY
);
diff --git a/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaClassDeclarationMatcher.java b/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaClassDeclarationMatcher.java
index 5a94055..9145e8a 100644
--- a/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaClassDeclarationMatcher.java
+++ b/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaClassDeclarationMatcher.java
@@ -28,9 +28,9 @@ public class JavaClassDeclarationMatcher implements org.zwobble.precisely.Matche
return org.zwobble.precisely.Matchers.instanceOf(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassDeclaration.class, this.submatchers);
}
- public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassDeclarationMatcher withName(org.zwobble.precisely.Matcher<? super org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaIdentifier> name) {
+ public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassDeclarationMatcher withType(org.zwobble.precisely.Matcher<? super org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaTypeRef> type) {
var submatchers = new java.util.ArrayList<org.zwobble.precisely.Matcher<? super org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassDeclaration>>(this.submatchers);
- submatchers.add(org.zwobble.precisely.Matchers.has("name", org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassDeclaration::name, name));
+ submatchers.add(org.zwobble.precisely.Matchers.has("type", org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassDeclaration::type, type));
return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassDeclarationMatcher(submatchers);
}
@@ -46,12 +46,6 @@ public class JavaClassDeclarationMatcher implements org.zwobble.precisely.Matche
return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassDeclarationMatcher(submatchers);
}
- public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassDeclarationMatcher withCustomArea(org.zwobble.precisely.Matcher<? super org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaCustomArea> customArea) {
- var submatchers = new java.util.ArrayList<org.zwobble.precisely.Matcher<? super org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassDeclaration>>(this.submatchers);
- submatchers.add(org.zwobble.precisely.Matchers.has("customArea", org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassDeclaration::customArea, customArea));
- return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassDeclarationMatcher(submatchers);
- }
-
public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassDeclarationMatcher withDocComment(org.zwobble.precisely.Matcher<? super org.zwobble.hobgoblin.compiler.ast.DocComment> docComment) {
var submatchers = new java.util.ArrayList<org.zwobble.precisely.Matcher<? super org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassDeclaration>>(this.submatchers);
submatchers.add(org.zwobble.precisely.Matchers.has("docComment", org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaClassDeclaration::docComment, docComment));
diff --git a/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaCompilationUnitMatcher.java b/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaCompilationUnitMatcher.java
index b25759a..95bb6d1 100644
--- a/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaCompilationUnitMatcher.java
+++ b/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaCompilationUnitMatcher.java
@@ -28,18 +28,6 @@ public class JavaCompilationUnitMatcher implements org.zwobble.precisely.Matcher
return org.zwobble.precisely.Matchers.instanceOf(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaCompilationUnit.class, this.submatchers);
}
- public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaCompilationUnitMatcher withPackageName(org.zwobble.precisely.Matcher<? super org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaPackageName> packageName) {
- var submatchers = new java.util.ArrayList<org.zwobble.precisely.Matcher<? super org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaCompilationUnit>>(this.submatchers);
- submatchers.add(org.zwobble.precisely.Matchers.has("packageName", org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaCompilationUnit::packageName, packageName));
- return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaCompilationUnitMatcher(submatchers);
- }
-
- public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaCompilationUnitMatcher withCustomAreaImports(org.zwobble.precisely.Matcher<? super org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaCustomArea> customAreaImports) {
- var submatchers = new java.util.ArrayList<org.zwobble.precisely.Matcher<? super org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaCompilationUnit>>(this.submatchers);
- submatchers.add(org.zwobble.precisely.Matchers.has("customAreaImports", org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaCompilationUnit::customAreaImports, customAreaImports));
- return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaCompilationUnitMatcher(submatchers);
- }
-
public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaCompilationUnitMatcher withTypeDeclaration(org.zwobble.precisely.Matcher<? super org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaTypeDeclaration> typeDeclaration) {
var submatchers = new java.util.ArrayList<org.zwobble.precisely.Matcher<? super org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaCompilationUnit>>(this.submatchers);
submatchers.add(org.zwobble.precisely.Matchers.has("typeDeclaration", org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaCompilationUnit::typeDeclaration, typeDeclaration));
diff --git a/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaEnumDeclarationMatcher.java b/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaEnumDeclarationMatcher.java
index a97ded5..86a477a 100644
--- a/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaEnumDeclarationMatcher.java
+++ b/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaEnumDeclarationMatcher.java
@@ -28,9 +28,9 @@ public class JavaEnumDeclarationMatcher implements org.zwobble.precisely.Matcher
return org.zwobble.precisely.Matchers.instanceOf(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaEnumDeclaration.class, this.submatchers);
}
- public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaEnumDeclarationMatcher withName(org.zwobble.precisely.Matcher<? super org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaIdentifier> name) {
+ public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaEnumDeclarationMatcher withType(org.zwobble.precisely.Matcher<? super org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaTypeRef> type) {
var submatchers = new java.util.ArrayList<org.zwobble.precisely.Matcher<? super org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaEnumDeclaration>>(this.submatchers);
- submatchers.add(org.zwobble.precisely.Matchers.has("name", org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaEnumDeclaration::name, name));
+ submatchers.add(org.zwobble.precisely.Matchers.has("type", org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaEnumDeclaration::type, type));
return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaEnumDeclarationMatcher(submatchers);
}
@@ -40,12 +40,6 @@ public class JavaEnumDeclarationMatcher implements org.zwobble.precisely.Matcher
return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaEnumDeclarationMatcher(submatchers);
}
- public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaEnumDeclarationMatcher withCustomArea(org.zwobble.precisely.Matcher<? super org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaCustomArea> customArea) {
- var submatchers = new java.util.ArrayList<org.zwobble.precisely.Matcher<? super org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaEnumDeclaration>>(this.submatchers);
- submatchers.add(org.zwobble.precisely.Matchers.has("customArea", org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaEnumDeclaration::customArea, customArea));
- return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaEnumDeclarationMatcher(submatchers);
- }
-
public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaEnumDeclarationMatcher withDocComment(org.zwobble.precisely.Matcher<? super org.zwobble.hobgoblin.compiler.ast.DocComment> docComment) {
var submatchers = new java.util.ArrayList<org.zwobble.precisely.Matcher<? super org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaEnumDeclaration>>(this.submatchers);
submatchers.add(org.zwobble.precisely.Matchers.has("docComment", org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaEnumDeclaration::docComment, docComment));
diff --git a/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaInterfaceDeclarationMatcher.java b/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaInterfaceDeclarationMatcher.java
index 2d7a89c..bd45d2b 100644
--- a/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaInterfaceDeclarationMatcher.java
+++ b/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaInterfaceDeclarationMatcher.java
@@ -28,9 +28,9 @@ public class JavaInterfaceDeclarationMatcher implements org.zwobble.precisely.Ma
return org.zwobble.precisely.Matchers.instanceOf(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaInterfaceDeclaration.class, this.submatchers);
}
- public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaInterfaceDeclarationMatcher withName(org.zwobble.precisely.Matcher<? super org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaIdentifier> name) {
+ public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaInterfaceDeclarationMatcher withType(org.zwobble.precisely.Matcher<? super org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaTypeRef> type) {
var submatchers = new java.util.ArrayList<org.zwobble.precisely.Matcher<? super org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaInterfaceDeclaration>>(this.submatchers);
- submatchers.add(org.zwobble.precisely.Matchers.has("name", org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaInterfaceDeclaration::name, name));
+ submatchers.add(org.zwobble.precisely.Matchers.has("type", org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaInterfaceDeclaration::type, type));
return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaInterfaceDeclarationMatcher(submatchers);
}
@@ -52,12 +52,6 @@ public class JavaInterfaceDeclarationMatcher implements org.zwobble.precisely.Ma
return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaInterfaceDeclarationMatcher(submatchers);
}
- public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaInterfaceDeclarationMatcher withCustomArea(org.zwobble.precisely.Matcher<? super org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaCustomArea> customArea) {
- var submatchers = new java.util.ArrayList<org.zwobble.precisely.Matcher<? super org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaInterfaceDeclaration>>(this.submatchers);
- submatchers.add(org.zwobble.precisely.Matchers.has("customArea", org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaInterfaceDeclaration::customArea, customArea));
- return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaInterfaceDeclarationMatcher(submatchers);
- }
-
public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaInterfaceDeclarationMatcher withDocComment(org.zwobble.precisely.Matcher<? super org.zwobble.hobgoblin.compiler.ast.DocComment> docComment) {
var submatchers = new java.util.ArrayList<org.zwobble.precisely.Matcher<? super org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaInterfaceDeclaration>>(this.submatchers);
submatchers.add(org.zwobble.precisely.Matchers.has("docComment", org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaInterfaceDeclaration::docComment, docComment));
diff --git a/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaRecordDeclarationMatcher.java b/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaRecordDeclarationMatcher.java
index d3eed88..afcc36e 100644
--- a/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaRecordDeclarationMatcher.java
+++ b/src/test/java/org/zwobble/hobgoblin/compiler/output/lang/java/ast/JavaRecordDeclarationMatcher.java
@@ -28,9 +28,9 @@ public class JavaRecordDeclarationMatcher implements org.zwobble.precisely.Match
return org.zwobble.precisely.Matchers.instanceOf(org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaRecordDeclaration.class, this.submatchers);
}
- public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaRecordDeclarationMatcher withName(org.zwobble.precisely.Matcher<? super org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaIdentifier> name) {
+ public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaRecordDeclarationMatcher withType(org.zwobble.precisely.Matcher<? super org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaTypeRef> type) {
var submatchers = new java.util.ArrayList<org.zwobble.precisely.Matcher<? super org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaRecordDeclaration>>(this.submatchers);
- submatchers.add(org.zwobble.precisely.Matchers.has("name", org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaRecordDeclaration::name, name));
+ submatchers.add(org.zwobble.precisely.Matchers.has("type", org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaRecordDeclaration::type, type));
return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaRecordDeclarationMatcher(submatchers);
}
@@ -52,12 +52,6 @@ public class JavaRecordDeclarationMatcher implements org.zwobble.precisely.Match
return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaRecordDeclarationMatcher(submatchers);
}
- public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaRecordDeclarationMatcher withCustomArea(org.zwobble.precisely.Matcher<? super org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaCustomArea> customArea) {
- var submatchers = new java.util.ArrayList<org.zwobble.precisely.Matcher<? super org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaRecordDeclaration>>(this.submatchers);
- submatchers.add(org.zwobble.precisely.Matchers.has("customArea", org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaRecordDeclaration::customArea, customArea));
- return new org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaRecordDeclarationMatcher(submatchers);
- }
-
public org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaRecordDeclarationMatcher withDocComment(org.zwobble.precisely.Matcher<? super org.zwobble.hobgoblin.compiler.ast.DocComment> docComment) {
var submatchers = new java.util.ArrayList<org.zwobble.precisely.Matcher<? super org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaRecordDeclaration>>(this.submatchers);
submatchers.add(org.zwobble.precisely.Matchers.has("docComment", org.zwobble.hobgoblin.compiler.output.lang.java.ast.JavaRecordDeclaration::docComment, docComment));