summaryrefslogtreecommitdiff
path: root/container-compiler-plugin/src/main/java/io/trygvis/container/compiler/model
diff options
context:
space:
mode:
Diffstat (limited to 'container-compiler-plugin/src/main/java/io/trygvis/container/compiler/model')
-rw-r--r--container-compiler-plugin/src/main/java/io/trygvis/container/compiler/model/ClassG.java27
-rw-r--r--container-compiler-plugin/src/main/java/io/trygvis/container/compiler/model/MethodRef.java13
2 files changed, 32 insertions, 8 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 cf68cba..8ff91a0 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
@@ -31,7 +31,6 @@ public class ClassG {
}
String canonicalName = type.toString();
- System.out.println("canonicalName = " + canonicalName);
for (TypeRef i : imports) {
if (i.canonicalName().equals(canonicalName)) {
@@ -45,10 +44,6 @@ public class ClassG {
}
public TypeRef addImport(Class<?> klass) {
-// if (klass.isPrimitive()) {
-// return TypeRef.PRIMITIVE;
-// }
-
String canonicalName = klass.getCanonicalName();
String simpleName = klass.getSimpleName();
String name = simpleName;
@@ -104,6 +99,9 @@ public class ClassG {
if (i.isPrimitive()) {
continue;
}
+ if(i.canonicalName().indexOf('.') == -1) {
+ continue;
+ }
writer.println("import " + i.canonicalName() + ";");
}
writer.println();
@@ -144,7 +142,24 @@ public class ClassG {
parameters.add("final " + p.klass.name + " " + p.name);
}
- writer.println(" public " + returnString + " " + method.name + "(" + collectionToDelimitedString(parameters, ", ") + ") {");
+ writer.print(" public " + returnString + " " + method.name + "(" + collectionToDelimitedString(parameters, ", ") + ")");
+ if(method.exceptions.isEmpty()) {
+ writer.println(" {");
+ }
+ else {
+ writer.println(" throws");
+ ArrayList<TypeRef> typeRefs = new ArrayList<>(method.exceptions);
+ for (int i = 0; i < typeRefs.size(); i++) {
+ TypeRef e = typeRefs.get(i);
+ writer.print(" " + e.name);
+ if(i < typeRefs.size() - 1) {
+ writer.println(",");
+ }
+ else {
+ writer.println(" {");
+ }
+ }
+ }
for (String s : method.body) {
writer.print(" ");
writer.println(s);
diff --git a/container-compiler-plugin/src/main/java/io/trygvis/container/compiler/model/MethodRef.java b/container-compiler-plugin/src/main/java/io/trygvis/container/compiler/model/MethodRef.java
index 36f61e8..a59e9a6 100644
--- a/container-compiler-plugin/src/main/java/io/trygvis/container/compiler/model/MethodRef.java
+++ b/container-compiler-plugin/src/main/java/io/trygvis/container/compiler/model/MethodRef.java
@@ -1,18 +1,27 @@
package io.trygvis.container.compiler.model;
import java.util.List;
+import java.util.Set;
+import java.util.TreeSet;
+
+import static java.util.Collections.addAll;
public class MethodRef {
public final TypeRef returnType;
public final String name;
public final ParameterRef[] parameters;
+ public final Set<TypeRef> exceptions = new TreeSet<>();
public final List<String> body;
- public
- MethodRef(TypeRef returnType, String name, ParameterRef[] parameters, List<String> body) {
+ public MethodRef(TypeRef returnType, String name, ParameterRef[] parameters, List<String> body) {
this.returnType = returnType;
this.name = name;
this.parameters = parameters;
this.body = body;
}
+
+ public MethodRef exception(TypeRef... exceptions) {
+ addAll(this.exceptions, exceptions);
+ return this;
+ }
}