From 05ab707d87f4978d0b33c9fbef0f61204fc77f0d Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Fri, 16 Mar 2012 15:51:49 +0000 Subject: [PATCH] [#1215] Add org.jooq.Converter for custom type mapping - Improved implementation --- .../java/org/jooq/impl/FieldTypeHelper.java | 23 +++++++------------ 1 file changed, 8 insertions(+), 15 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/impl/FieldTypeHelper.java b/jOOQ/src/main/java/org/jooq/impl/FieldTypeHelper.java index e789eaec2a..aaf65df460 100644 --- a/jOOQ/src/main/java/org/jooq/impl/FieldTypeHelper.java +++ b/jOOQ/src/main/java/org/jooq/impl/FieldTypeHelper.java @@ -281,26 +281,19 @@ public final class FieldTypeHelper { } } - static T getFromResultSet(ExecuteContext ctx, Field field, int index) + + static U getFromResultSet(ExecuteContext ctx, Field field, int index) throws SQLException { - Class type = field.getType(); - Class actual = type; - - // TODO [#650] This conversion code is still somewhat experimental... - // conversion and fetching should be made more object-oriented - Converter converter = DataTypes.converter(type); - if (converter != null) { - actual = converter.fromType(); - } - - Object result = getFromResultSet(ctx, actual, index); + @SuppressWarnings("unchecked") + Converter converter = (Converter) DataTypes.converter(field.getType()); if (converter != null) { - result = ((Converter) converter).from(result); + return converter.from(getFromResultSet(ctx, converter.fromType(), index)); + } + else { + return getFromResultSet(ctx, field.getType(), index); } - - return (T) result; } @SuppressWarnings("unchecked")