summaryrefslogtreecommitdiff
path: root/container-compiler-plugin/src/main/java/io/trygvis/persistence/TypeHandler.java
diff options
context:
space:
mode:
Diffstat (limited to 'container-compiler-plugin/src/main/java/io/trygvis/persistence/TypeHandler.java')
-rw-r--r--container-compiler-plugin/src/main/java/io/trygvis/persistence/TypeHandler.java63
1 files changed, 16 insertions, 47 deletions
diff --git a/container-compiler-plugin/src/main/java/io/trygvis/persistence/TypeHandler.java b/container-compiler-plugin/src/main/java/io/trygvis/persistence/TypeHandler.java
index 31eba4b..dfb2be3 100644
--- a/container-compiler-plugin/src/main/java/io/trygvis/persistence/TypeHandler.java
+++ b/container-compiler-plugin/src/main/java/io/trygvis/persistence/TypeHandler.java
@@ -10,10 +10,12 @@ import static java.sql.Types.*;
public abstract class TypeHandler {
private final String sqlType;
private final int type;
+ public final boolean nullable;
- protected TypeHandler(String sqlType, int type) {
+ protected TypeHandler(String sqlType, int type, boolean nullable) {
this.sqlType = sqlType;
this.type = type;
+ this.nullable = nullable;
}
abstract String setter(int i, String expr);
@@ -48,51 +50,28 @@ public abstract class TypeHandler {
//
// -----------------------------------------------------------------------
- public static class IntTypeHandler extends TypeHandler {
- public IntTypeHandler() {
- super("INTEGER", INTEGER);
- }
+ public static class PrimitiveTypeHandler extends TypeHandler {
+ private final String accessor;
- @Override
- public String setter(int i, String expr) {
- return "setInt(" + i + ", " + expr + ")";
- }
-
- @Override
- public String getter(String rs, int i) {
- return rs + ".getInt(" + i + ")";
- }
- }
-
- public static class LongTypeHandler extends TypeHandler {
- protected LongTypeHandler() {
- super("BIGINT", BIGINT);
+ public PrimitiveTypeHandler(String sqlType, int type, String accessor, boolean nullable) {
+ super(sqlType, type, nullable);
+ this.accessor = accessor;
}
@Override
public String setter(int i, String expr) {
- return "setLong(" + i + ", " + expr + ")";
+ return "set" + accessor + "(" + i + ", " + expr + ")";
}
@Override
public String getter(String rs, int i) {
- return rs + ".getLong(" + i + ")";
+ return rs + ".get" + accessor + "(" + i + ")";
}
}
- public static class StringTypeHandler extends TypeHandler {
+ public static class StringTypeHandler extends PrimitiveTypeHandler {
protected StringTypeHandler() {
- super(null, VARCHAR);
- }
-
- @Override
- public String setter(int i, String expr) {
- return "setString(" + i + ", " + expr + ")";
- }
-
- @Override
- public String getter(String rs, int i) {
- return rs + ".getString(" + i + ")";
+ super(null, VARCHAR, "String", true);
}
@Override
@@ -103,7 +82,7 @@ public abstract class TypeHandler {
public static class DateTypeHandler extends TypeHandler {
protected DateTypeHandler() {
- super("TIMESTAMP", TIMESTAMP);
+ super("TIMESTAMP", TIMESTAMP, true);
}
@Override
@@ -119,7 +98,7 @@ public abstract class TypeHandler {
public static class JodaDateTimeTypeHandler extends TypeHandler {
protected JodaDateTimeTypeHandler() {
- super("TIMESTAMP", TIMESTAMP);
+ super("TIMESTAMP", TIMESTAMP, true);
}
@Override
@@ -133,19 +112,9 @@ public abstract class TypeHandler {
}
}
- public static class UuidTypeHandler extends TypeHandler {
+ public static class UuidTypeHandler extends PrimitiveTypeHandler {
protected UuidTypeHandler() {
- super("CHAR(36)", CHAR);
- }
-
- @Override
- public String setter(int i, String expr) {
- return "setString(" + i + ", " + expr + ".toString())";
- }
-
- @Override
- public String getter(String rs, int i) {
- return "java.util.UUID.fromString(" + rs + ".getString(" + i + "))";
+ super("CHAR(36)", CHAR, "String", true);
}
}
}