summaryrefslogtreecommitdiff
path: root/container-compiler-plugin/src/main/java/io/trygvis/persistence/generators/DaoGenerator.java
diff options
context:
space:
mode:
Diffstat (limited to 'container-compiler-plugin/src/main/java/io/trygvis/persistence/generators/DaoGenerator.java')
-rw-r--r--container-compiler-plugin/src/main/java/io/trygvis/persistence/generators/DaoGenerator.java20
1 files changed, 12 insertions, 8 deletions
diff --git a/container-compiler-plugin/src/main/java/io/trygvis/persistence/generators/DaoGenerator.java b/container-compiler-plugin/src/main/java/io/trygvis/persistence/generators/DaoGenerator.java
index 7cd3f59..b9b65a5 100644
--- a/container-compiler-plugin/src/main/java/io/trygvis/persistence/generators/DaoGenerator.java
+++ b/container-compiler-plugin/src/main/java/io/trygvis/persistence/generators/DaoGenerator.java
@@ -26,9 +26,10 @@ import static io.trygvis.container.compiler.Utils.*;
import static io.trygvis.container.compiler.model.TypeRef.VOID;
import static io.trygvis.persistence.FieldMirror.FieldType.PRIMITIVE;
import static io.trygvis.persistence.FieldMirror.FieldType.REFERENCE;
-import static io.trygvis.persistence.FieldMirror.SetterType;
import static java.lang.String.format;
import static java.lang.reflect.Modifier.PUBLIC;
+import static javax.persistence.AccessType.FIELD;
+import static javax.persistence.AccessType.PROPERTY;
import static org.apache.commons.lang.StringUtils.join;
public class DaoGenerator {
@@ -51,16 +52,17 @@ public class DaoGenerator {
g.add(new Constructor(p, "super(" + session.name + ");"));
TypeRef stringType = g.imports.add(String.class);
+ TypeRef stringArrayType = g.imports.add(String[].class);
TypeRef sqlEntityDescType = g.imports.add(SqlEntityMeta.class);
TypeRef sqlException = g.imports.add(SQLException.class);
// TypeRef listOfEntityType = new TypeRef(List.class).args(entity.type);
FieldRef createTableSql = g.addPublicStaticFinalField(stringType, "createTableSql").
value(toJavaString(createTableSql()));
- g.add(new MethodRef(PUBLIC, stringType, "createTableSql", "return createTableSql;"));
+ g.add(new MethodRef(PUBLIC, stringArrayType, "createTableSql", "return new String[]{createTableSql};"));
FieldRef dropTableSql = g.addPublicStaticFinalField(stringType, "dropTableSql").
value(toJavaString(dropTableSql()));
- g.add(new MethodRef(PUBLIC, stringType, "dropTableSql", "return dropTableSql;"));
+ g.add(new MethodRef(PUBLIC, stringArrayType, "dropTableSql", "return new String[]{dropTableSql};"));
g.addPublicStaticFinalField(stringType, "insertIntoSql").
value(toJavaString(insertIntoSql()));
g.addPublicStaticFinalField(stringType, "deleteFromSql").
@@ -277,7 +279,7 @@ public class DaoGenerator {
Parameters.ParameterRef row = p.addParameter(this.entity.rowType, "row");
List<String> body = new ArrayList<>();
- List<String> cArgs = new ArrayList<>();
+ String[] cArgs = new String[entity.getConstructorParameters().size()];
List<String> method = new ArrayList<>();
for (int i = 0; i < entity.getFields().size(); i++) {
FieldMirror field = this.entity.getFields().get(i);
@@ -292,11 +294,13 @@ public class DaoGenerator {
// body.add(x);
}
- if (field.setterType == SetterType.CONSTRUCTOR) {
- cArgs.add(value);
- } else if (field.setterType == SetterType.METHOD) {
+ if (field.constructorParam) {
+ System.out.println("entity.getConstructorParameters() = " + entity.getConstructorParameters());
+ System.out.println("field.javaName = " + field.javaName);
+ cArgs[entity.getConstructorParameters().indexOf(field.javaName)] = value;
+ } else if (field.setterType == PROPERTY) {
method.add("_entity." + toSetterName(field.javaName) + "(" + value + ");");
- } else if (field.setterType == SetterType.FIELD) {
+ } else if (field.setterType == FIELD) {
method.add("_entity." + field.javaName + " = " + value + ";");
}
}