summaryrefslogtreecommitdiff
path: root/container-compiler-plugin/src/main/java/io/trygvis/persistence/FieldMirror.java
diff options
context:
space:
mode:
authorTrygve Laugstøl <trygvis@inamo.no>2013-08-03 12:33:39 +0200
committerTrygve Laugstøl <trygvis@inamo.no>2013-08-03 12:33:39 +0200
commit34137b599dbea13c94224dff2955376b1394dbc9 (patch)
tree889b4c334014965e451f8d9b308b952a13b4d8d5 /container-compiler-plugin/src/main/java/io/trygvis/persistence/FieldMirror.java
parent4e794b5ed03e5020770becb068d11e6838feec64 (diff)
downloadcontainer-playground-34137b599dbea13c94224dff2955376b1394dbc9.tar.gz
container-playground-34137b599dbea13c94224dff2955376b1394dbc9.tar.bz2
container-playground-34137b599dbea13c94224dff2955376b1394dbc9.tar.xz
container-playground-34137b599dbea13c94224dff2955376b1394dbc9.zip
wip
Diffstat (limited to 'container-compiler-plugin/src/main/java/io/trygvis/persistence/FieldMirror.java')
-rw-r--r--container-compiler-plugin/src/main/java/io/trygvis/persistence/FieldMirror.java63
1 files changed, 63 insertions, 0 deletions
diff --git a/container-compiler-plugin/src/main/java/io/trygvis/persistence/FieldMirror.java b/container-compiler-plugin/src/main/java/io/trygvis/persistence/FieldMirror.java
new file mode 100644
index 0000000..e14fb9f
--- /dev/null
+++ b/container-compiler-plugin/src/main/java/io/trygvis/persistence/FieldMirror.java
@@ -0,0 +1,63 @@
+package io.trygvis.persistence;
+
+import javax.lang.model.element.VariableElement;
+
+import static io.trygvis.persistence.FieldMirror.FieldType.PRIMITIVE;
+import static io.trygvis.persistence.FieldMirror.FieldType.REFERENCE;
+
+/**
+ * TODO: a single field might have to be mapped to multiple sql columns.
+ */
+public abstract class FieldMirror {
+ public final FieldType fieldType;
+ public final VariableElement element;
+ public final String javaName;
+ public final String sqlName;
+ public final boolean notNull;
+
+ public enum FieldType {
+ PRIMITIVE,
+ REFERENCE,
+ }
+
+ protected FieldMirror(FieldType fieldType, VariableElement element, String javaName, String sqlName, boolean notNull) {
+ this.fieldType = fieldType;
+ this.element = element;
+ this.javaName = javaName;
+ this.sqlName = sqlName;
+ this.notNull = notNull;
+ }
+
+ public static class PrimitiveFieldMirror extends FieldMirror {
+ public PrimitiveFieldMirror(VariableElement element, String javaName, String sqlName, boolean notNull) {
+ super(PRIMITIVE, element, javaName, sqlName, notNull);
+ }
+
+ @Override
+ public String toString() {
+ return "PrimitiveFieldMirror{" +
+ "javaName='" + javaName + '\'' +
+ ", sqlName='" + sqlName + '\'' +
+ ", notNull=" + notNull +
+ '}';
+ }
+ }
+
+ public static class ReferenceFieldMirror extends FieldMirror {
+ public ReferenceFieldMirror(VariableElement element, String javaName, String sqlName, boolean notNull) {
+ super(REFERENCE, element, javaName, sqlName, notNull);
+ }
+
+ @Override
+ public String toString() {
+ return "ReferenceFieldMirror{" +
+ "javaName='" + javaName + '\'' +
+ ", sqlName='" + sqlName + '\'' +
+ ", notNull=" + notNull +
+ '}';
+ }
+ }
+
+ @Override
+ public abstract String toString();
+}