From 34137b599dbea13c94224dff2955376b1394dbc9 Mon Sep 17 00:00:00 2001 From: Trygve Laugstøl Date: Sat, 3 Aug 2013 12:33:39 +0200 Subject: wip --- .../java/io/trygvis/persistence/FieldMirror.java | 63 ++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 container-compiler-plugin/src/main/java/io/trygvis/persistence/FieldMirror.java (limited to 'container-compiler-plugin/src/main/java/io/trygvis/persistence/FieldMirror.java') 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(); +} -- cgit v1.2.3