summaryrefslogtreecommitdiff
path: root/container-compiler-plugin/src/main/java/io/trygvis/container/compiler/model/ClassG.java
diff options
context:
space:
mode:
Diffstat (limited to 'container-compiler-plugin/src/main/java/io/trygvis/container/compiler/model/ClassG.java')
-rw-r--r--container-compiler-plugin/src/main/java/io/trygvis/container/compiler/model/ClassG.java27
1 files changed, 18 insertions, 9 deletions
diff --git a/container-compiler-plugin/src/main/java/io/trygvis/container/compiler/model/ClassG.java b/container-compiler-plugin/src/main/java/io/trygvis/container/compiler/model/ClassG.java
index 13e1b03..cf68cba 100644
--- a/container-compiler-plugin/src/main/java/io/trygvis/container/compiler/model/ClassG.java
+++ b/container-compiler-plugin/src/main/java/io/trygvis/container/compiler/model/ClassG.java
@@ -2,6 +2,7 @@ package io.trygvis.container.compiler.model;
import javax.lang.model.type.TypeMirror;
import java.io.PrintWriter;
+import java.lang.reflect.Modifier;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
@@ -18,10 +19,6 @@ public class ClassG {
private final List<MethodRef> methods = new ArrayList<>();
private final List<Constructor> constructors = new ArrayList<>();
-// public ClassG(String packageName, String className) {
-// this(packageName, className, null);
-// }
-
public ClassG(String packageName, String className, String extendsClass) {
this.packageName = packageName;
this.className = className;
@@ -74,7 +71,14 @@ public class ClassG {
public FieldRef addField(Class<?> klass, String name) {
TypeRef type = addImport(klass);
- FieldRef ref = new FieldRef(type, name);
+ FieldRef ref = new FieldRef(Modifier.PRIVATE | Modifier.FINAL, type, name);
+ fields.add(ref);
+ return ref;
+ }
+
+ public FieldRef addPublicFinalField(Class<?> klass, String name) {
+ TypeRef type = addImport(klass);
+ FieldRef ref = new FieldRef(Modifier.PUBLIC | Modifier.FINAL, type, name);
fields.add(ref);
return ref;
}
@@ -92,8 +96,10 @@ public class ClassG {
}
public void write(PrintWriter writer) {
- writer.println("package " + packageName + ";");
- writer.println();
+ if(packageName.length() > 0) {
+ writer.println("package " + packageName + ";");
+ writer.println();
+ }
for (TypeRef i : imports) {
if (i.isPrimitive()) {
continue;
@@ -101,10 +107,13 @@ public class ClassG {
writer.println("import " + i.canonicalName() + ";");
}
writer.println();
- writer.println("public class " + className + " extends " + extendsClass + " {");
+
+ String extendsString = extendsClass == null ? "" : " extends " + extendsClass;
+
+ writer.println("public class " + className + extendsString + " {");
for (FieldRef field : fields) {
writer.println();
- writer.println(" private final " + field.klass.name + " " + field.name + ";");
+ writer.println(" " + field.toJava() + ";");
}
for (Constructor constructor : constructors) {