summaryrefslogtreecommitdiff
path: root/container-compiler-plugin/src/main/java/io/trygvis/container/compiler
diff options
context:
space:
mode:
Diffstat (limited to 'container-compiler-plugin/src/main/java/io/trygvis/container/compiler')
-rw-r--r--container-compiler-plugin/src/main/java/io/trygvis/container/compiler/EntityHandler.java26
-rw-r--r--container-compiler-plugin/src/main/java/io/trygvis/container/compiler/MyProcessor.java6
-rw-r--r--container-compiler-plugin/src/main/java/io/trygvis/container/compiler/SqlUnitModel.java2
-rw-r--r--container-compiler-plugin/src/main/java/io/trygvis/container/compiler/Utils.java4
4 files changed, 25 insertions, 13 deletions
diff --git a/container-compiler-plugin/src/main/java/io/trygvis/container/compiler/EntityHandler.java b/container-compiler-plugin/src/main/java/io/trygvis/container/compiler/EntityHandler.java
index a2bb5a6..9cb85e9 100644
--- a/container-compiler-plugin/src/main/java/io/trygvis/container/compiler/EntityHandler.java
+++ b/container-compiler-plugin/src/main/java/io/trygvis/container/compiler/EntityHandler.java
@@ -33,10 +33,10 @@ import java.util.TreeMap;
import static io.trygvis.container.compiler.Utils.toFieldName;
import static io.trygvis.container.compiler.Utils.writeFile;
-import static io.trygvis.persistence.FieldMirror.AccessorType.FIELD;
-import static io.trygvis.persistence.FieldMirror.AccessorType.METHOD;
import static io.trygvis.persistence.FieldMirror.FieldType.PRIMITIVE;
import static io.trygvis.persistence.FieldMirror.FieldType.REFERENCE;
+import static io.trygvis.persistence.FieldMirror.GetterType;
+import static io.trygvis.persistence.FieldMirror.SetterType;
import static io.trygvis.persistence.TypeHandler.StringEnumTypeHandler;
import static java.lang.Character.isUpperCase;
import static java.lang.String.format;
@@ -91,8 +91,8 @@ public class EntityHandler extends AbstractHandler {
name = value;
}
}
- sqlUnit.setName(name);
sqlUnit.setPackageName(packageElement.getQualifiedName().toString());
+ sqlUnit.setName(name);
}
public void recordEntity(TypeElement element) throws Exception {
@@ -229,7 +229,8 @@ public class EntityHandler extends AbstractHandler {
ExecutableElement getter, ExecutableElement setter) {
// TODO: check the setter for annotations too
// TODO: check for transient and @Transient
- FieldMirror.AccessorType accessorType;
+ final SetterType setterType;
+ final GetterType getterType;
TypeRef type;
Element element;
String javaName;
@@ -240,7 +241,13 @@ public class EntityHandler extends AbstractHandler {
if (var.getModifiers().contains(Modifier.STATIC)) {
return null;
}
- accessorType = FIELD;
+ boolean isFinal = var.getModifiers().contains(Modifier.FINAL);
+ if (isFinal) {
+ setterType = SetterType.CONSTRUCTOR;
+ } else {
+ setterType = setter != null ? SetterType.METHOD : SetterType.FIELD;
+ }
+ getterType = GetterType.FIELD;
type = new TypeRef(var.asType());
element = types.asElement(var.asType());
javaName = var.getSimpleName().toString();
@@ -253,9 +260,9 @@ public class EntityHandler extends AbstractHandler {
if (setter == null) {
// Skipping fields is closer to what hibernate does.
return null;
-// throw new CompilerException(getter, "Missing setter for getter: " + getter.getSimpleName());
}
- accessorType = METHOD;
+ setterType = SetterType.METHOD;
+ getterType = GetterType.METHOD;
type = new TypeRef(getter.getReturnType());
element = types.asElement(getter.getReturnType());
id = isId(getter);
@@ -291,11 +298,11 @@ public class EntityHandler extends AbstractHandler {
System.out.println("typeHandler.typeName() = " + typeHandler.typeName());
// TODO: check for configuration conflict
notNull = !typeHandler.nullable;
- field = new FieldMirror(PRIMITIVE, accessorType, type, javaName, sqlName, id, notNull, unique);
+ field = new FieldMirror(PRIMITIVE, setterType, getterType, type, javaName, sqlName, id, notNull, unique);
} else if (generatorConfiguration.hasTypeHandler(type)) {
throw new CompilerException(var, "Missing type handler for type: " + type.fqName);
} else {
- field = new FieldMirror(REFERENCE, accessorType, type, javaName, sqlName, id, notNull, unique);
+ field = new FieldMirror(REFERENCE, setterType, getterType, type, javaName, sqlName, id, notNull, unique);
}
return field;
}
@@ -309,6 +316,7 @@ public class EntityHandler extends AbstractHandler {
for (EntityMirror entity : sqlUnit.getEntities().values()) {
DaoGenerator daoGenerator = new DaoGenerator(generatorConfiguration, sqlUnit, entity);
writeFile(processingEnv, daoGenerator.generate(), sqlUnit.element(entity));
+ writeFile(processingEnv, daoGenerator.generateRow(), sqlUnit.element(entity));
}
} catch (CompilerException | InternalErrorException e) {
// Ignore any exceptions if we had an error from before
diff --git a/container-compiler-plugin/src/main/java/io/trygvis/container/compiler/MyProcessor.java b/container-compiler-plugin/src/main/java/io/trygvis/container/compiler/MyProcessor.java
index 1272759..24cacf4 100644
--- a/container-compiler-plugin/src/main/java/io/trygvis/container/compiler/MyProcessor.java
+++ b/container-compiler-plugin/src/main/java/io/trygvis/container/compiler/MyProcessor.java
@@ -28,8 +28,6 @@ import java.util.HashSet;
import java.util.Set;
import static io.trygvis.container.compiler.Utils.writeFile;
-import static io.trygvis.persistence.generators.EntityManagerFactoryGenerator.generateEntityManagerFactory;
-import static io.trygvis.persistence.generators.EntityManagerGenerator.generateEntityManager;
import static io.trygvis.persistence.generators.SequencesGenerator.generateSequences;
import static io.trygvis.persistence.generators.SqlSessionGenerator.generateSqlSession;
import static io.trygvis.persistence.generators.SqlSessionFactoryGenerator.generateSqlSessionFactory;
@@ -146,8 +144,8 @@ public class MyProcessor implements Processor {
entityHandler.phase3(hadErrors);
writeFile(processingEnv, generateSequences(unit), null);
- writeFile(processingEnv, generateEntityManagerFactory(unit), null);
- writeFile(processingEnv, generateEntityManager(unit), null);
+// writeFile(processingEnv, generateEntityManagerFactory(unit), null);
+// writeFile(processingEnv, generateEntityManager(unit), null);
writeFile(processingEnv, generateSqlSession(unit), null);
writeFile(processingEnv, generateSqlSessionFactory(unit), null);
diff --git a/container-compiler-plugin/src/main/java/io/trygvis/container/compiler/SqlUnitModel.java b/container-compiler-plugin/src/main/java/io/trygvis/container/compiler/SqlUnitModel.java
index e41fbb8..717715e 100644
--- a/container-compiler-plugin/src/main/java/io/trygvis/container/compiler/SqlUnitModel.java
+++ b/container-compiler-plugin/src/main/java/io/trygvis/container/compiler/SqlUnitModel.java
@@ -15,6 +15,7 @@ public class SqlUnitModel {
private Map<SequenceMirror, Element> sequenceElements = new TreeMap<>();
private String packageName;
private String name;
+ public TypeRef sessionType;
public String getPackageName() {
if (packageName == null) {
@@ -34,6 +35,7 @@ public class SqlUnitModel {
public void setName(String name) {
this.name = name;
+ sessionType = new TypeRef(packageName + "." + name + "SqlSession");
}
// -----------------------------------------------------------------------
diff --git a/container-compiler-plugin/src/main/java/io/trygvis/container/compiler/Utils.java b/container-compiler-plugin/src/main/java/io/trygvis/container/compiler/Utils.java
index 5d69fc0..3478581 100644
--- a/container-compiler-plugin/src/main/java/io/trygvis/container/compiler/Utils.java
+++ b/container-compiler-plugin/src/main/java/io/trygvis/container/compiler/Utils.java
@@ -24,6 +24,10 @@ import static org.apache.commons.lang.StringUtils.stripEnd;
public class Utils {
public static final String EOL = System.getProperty("line.separator");
+ public static String toFieldName(TypeRef type) {
+ return toFieldName(type.className);
+ }
+
public static String toFieldName(String s) {
if (s.length() < 1) {
return s.toLowerCase();