From 4e794b5ed03e5020770becb068d11e6838feec64 Mon Sep 17 00:00:00 2001 From: Trygve Laugstøl Date: Fri, 2 Aug 2013 21:57:54 +0200 Subject: wip --- .../trygvis/container/compiler/model/ClassG.java | 27 ++++++++++++++-------- 1 file changed, 18 insertions(+), 9 deletions(-) (limited to 'container-compiler-plugin/src/main/java/io/trygvis/container/compiler/model/ClassG.java') 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 methods = new ArrayList<>(); private final List 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) { -- cgit v1.2.3