From 5046c1d906ae28154cb878e099001da942cbb998 Mon Sep 17 00:00:00 2001 From: Michael Bayne Date: Mon, 25 Oct 2010 19:55:27 +0000 Subject: [PATCH] Unused import trimming. Type parameter cleanup. --- .../samskivert/depot/PersistentRecord.java | 2 +- .../depot/impl/FieldMarshaller.java | 52 +++++++++++-------- 2 files changed, 32 insertions(+), 22 deletions(-) diff --git a/src/main/java/com/samskivert/depot/PersistentRecord.java b/src/main/java/com/samskivert/depot/PersistentRecord.java index 98ca713..21b0466 100644 --- a/src/main/java/com/samskivert/depot/PersistentRecord.java +++ b/src/main/java/com/samskivert/depot/PersistentRecord.java @@ -60,7 +60,7 @@ public class PersistentRecord * we hope to make this form of the Key constructor protected. */ protected static Key newKey ( - Class pClass, Comparable... values) + Class pClass, Comparable... values) { return new Key(pClass, values); } diff --git a/src/main/java/com/samskivert/depot/impl/FieldMarshaller.java b/src/main/java/com/samskivert/depot/impl/FieldMarshaller.java index b0f7ccf..f1ec7c8 100644 --- a/src/main/java/com/samskivert/depot/impl/FieldMarshaller.java +++ b/src/main/java/com/samskivert/depot/impl/FieldMarshaller.java @@ -97,10 +97,9 @@ public abstract class FieldMarshaller } try { - @SuppressWarnings("unchecked") Transformer xformer = - xform.value().newInstance(); - @SuppressWarnings("unchecked") TransformingMarshaller xmarsh = - new TransformingMarshaller(xformer, field, xform); + Transformer xformer = xform.value().newInstance(); + TransformingMarshaller xmarsh = + TransformingMarshaller.create(xformer, field, xform); xmarsh.create(field); return xmarsh; } catch (InstantiationException e) { @@ -381,9 +380,8 @@ public abstract class FieldMarshaller // special Enum type hackery (it would be nice to handle this with @Transform, but that // introduces some undesirable samskivert-Depot dependencies) } else if (ByteEnum.class.isAssignableFrom(ftype)) { - @SuppressWarnings("unchecked") ByteEnumMarshaller bem = - new ByteEnumMarshaller(ftype); - return bem; + @SuppressWarnings("unchecked") Class dtype = (Class)ftype; + return new ByteEnumMarshaller(dtype); } else { return null; @@ -691,20 +689,10 @@ public abstract class FieldMarshaller } protected static class TransformingMarshaller extends FieldMarshaller { - public TransformingMarshaller ( - Transformer xformer, Field field, Transform annotation) { - Class pojoType = getTransformerType(xformer, "from"); - if (!pojoType.isAssignableFrom(field.getType())) { - throw new IllegalArgumentException( - "@Transform error on " + field.getType().getName() + "." + - field.getName() + ": " + xformer.getClass().getName() + " cannot convert " + - field.getType().getName()); - } - @SuppressWarnings("unchecked") FieldMarshaller delegate = - (FieldMarshaller)createMarshaller(getTransformerType(xformer, "to")); - xformer.init(field.getGenericType(), annotation); - _delegate = delegate; - _xformer = xformer; + // simplifies type jockeying + public static TransformingMarshaller create ( + Transformer xformer, Field field, Transform annotation) { + return new TransformingMarshaller(xformer, field, annotation); } @Override public void create (Field field) { @@ -732,10 +720,32 @@ public abstract class FieldMarshaller _delegate.writeToStatement(ps, column, value); } + protected TransformingMarshaller ( + Transformer xformer, Field field, Transform annotation) { + Class pojoType = getTransformerType(xformer, "from"); + if (!pojoType.isAssignableFrom(field.getType())) { + throw new IllegalArgumentException( + "@Transform error on " + field.getType().getName() + "." + + field.getName() + ": " + xformer.getClass().getName() + " cannot convert " + + field.getType().getName()); + } + @SuppressWarnings("unchecked") FieldMarshaller delegate = + (FieldMarshaller)createMarshaller(getTransformerType(xformer, "to")); + xformer.init(field.getGenericType(), annotation); + _delegate = delegate; + _xformer = xformer; + } + protected Transformer _xformer; protected FieldMarshaller _delegate; } + // used to fool the type system when creating ByteEnumMarshallers; look away + protected static enum Dummy implements ByteEnum { + DUMMY; + public byte toByte () { throw new UnsupportedOperationException("Dummy!"); } + } + protected Field _field; protected String _columnName; protected ColumnDefinition _columnDefinition;