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