package io.trygvis.persistence; public interface TypeHandler { String setter(int i, String expr); String getter(String rs, int i); String sqlType(FieldMirror field); public static class IntTypeHandler implements TypeHandler { @Override public String setter(int i, String expr) { return "setInt(" + i + ", " + expr + ")"; } @Override public String getter(String rs, int i) { return rs + ".getInt(" + i + ")"; } @Override public String sqlType(FieldMirror field) { return "INTEGER"; } } public static class LongTypeHandler implements TypeHandler { @Override public String setter(int i, String expr) { return "setLong(" + i + ", " + expr + ")"; } @Override public String getter(String rs, int i) { return rs + ".getLong(" + i + ")"; } @Override public String sqlType(FieldMirror field) { return "BIGINT"; } } public static class StringTypeHandler implements TypeHandler { @Override public String setter(int i, String expr) { return "setString(" + i + ", " + expr + ")"; } @Override public String getter(String rs, int i) { return rs + ".getString(" + i + ")"; } @Override public String sqlType(FieldMirror field) { return "VARCHAR(1000)"; } } public static class DateTypeHandler implements TypeHandler { @Override public String setter(int i, String expr) { return "setTimestamp(" + i + ", new java.sql.Timestamp(" + expr + ".getTime()))"; } @Override public String getter(String rs, int i) { return "new java.util.Date(" + rs + ".getTimestamp(" + i + ").getTime())"; } @Override public String sqlType(FieldMirror field) { return "TIMESTAMP"; } } }