diff --git a/jOOQ/src/main/java/org/jooq/Converter.java b/jOOQ/src/main/java/org/jooq/Converter.java index 2236a81828..933d2fc775 100644 --- a/jOOQ/src/main/java/org/jooq/Converter.java +++ b/jOOQ/src/main/java/org/jooq/Converter.java @@ -40,6 +40,7 @@ package org.jooq; import java.io.Serializable; import java.util.function.Function; +import org.jooq.impl.AbstractConverter; import org.jooq.impl.SQLDataType; import org.jetbrains.annotations.NotNull; @@ -164,7 +165,7 @@ public interface Converter extends Serializable { Function from, Function to ) { - return new Converter() { + return new AbstractConverter(fromType, toType) { /** * Generated UID @@ -180,21 +181,6 @@ public interface Converter extends Serializable { public final T to(U u) { return to.apply(u); } - - @Override - public final Class fromType() { - return fromType; - } - - @Override - public final Class toType() { - return toType; - } - - @Override - public String toString() { - return "Converter [ " + fromType.getName() + " -> " + toType.getName() + " ]"; - } }; } diff --git a/jOOQ/src/main/java/org/jooq/impl/DefaultConverterProvider.java b/jOOQ/src/main/java/org/jooq/impl/DefaultConverterProvider.java index 5dd2b5cc83..a0125ed5e4 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DefaultConverterProvider.java +++ b/jOOQ/src/main/java/org/jooq/impl/DefaultConverterProvider.java @@ -108,7 +108,7 @@ public final class DefaultConverterProvider implements ConverterProvider { || Record.class.isAssignableFrom(tWrapper) || Struct.class.isAssignableFrom(tWrapper) && UDTRecord.class.isAssignableFrom(uWrapper) ) { - return new Converter() { + return new AbstractConverter(tType, uType) { /** * Generated UID. @@ -124,16 +124,6 @@ public final class DefaultConverterProvider implements ConverterProvider { public T to(U u) { return Convert.convert(u, tType); } - - @Override - public Class fromType() { - return tType; - } - - @Override - public Class toType() { - return uType; - } }; } else diff --git a/jOOQ/src/main/java/org/jooq/impl/RowField.java b/jOOQ/src/main/java/org/jooq/impl/RowField.java index 1b8b1018c5..172d68cbbe 100644 --- a/jOOQ/src/main/java/org/jooq/impl/RowField.java +++ b/jOOQ/src/main/java/org/jooq/impl/RowField.java @@ -43,7 +43,6 @@ import static org.jooq.impl.Names.N_ROW; import static org.jooq.impl.Tools.BooleanDataKey.DATA_LIST_ALREADY_INDENTED; import org.jooq.Context; -import org.jooq.Converter; import org.jooq.DataType; import org.jooq.Field; import org.jooq.Name; @@ -69,7 +68,9 @@ final class RowField extends AbstractField< @SuppressWarnings({ "serial", "unchecked", "rawtypes" }) RowField(final ROW row, Name as) { - super(as, (DataType) SQLDataType.RECORD, CommentImpl.NO_COMMENT, binding(new Converter() { + super(as, (DataType) SQLDataType.RECORD, CommentImpl.NO_COMMENT, binding(new AbstractConverter( + Object.class, (Class) Tools.recordType(row.size()) + ) { @Override public REC from(final Object t) { // So far, this is only supported for PostgreSQL @@ -80,16 +81,6 @@ final class RowField extends AbstractField< public Object to(REC u) { throw new UnsupportedOperationException("Converting from nested records to bind values is not yet supported"); } - - @Override - public Class fromType() { - return Object.class; - } - - @Override - public Class toType() { - return (Class) Tools.recordType(row.size()); - } })); this.row = row; diff --git a/jOOQ/src/main/java/org/jooq/impl/XMLasDOMBinding.java b/jOOQ/src/main/java/org/jooq/impl/XMLasDOMBinding.java index b342d796dd..cb05fa82a2 100644 --- a/jOOQ/src/main/java/org/jooq/impl/XMLasDOMBinding.java +++ b/jOOQ/src/main/java/org/jooq/impl/XMLasDOMBinding.java @@ -77,7 +77,7 @@ public class XMLasDOMBinding extends AbstractVarcharBinding { private final Converter converter; public XMLasDOMBinding() { - this.converter = new Converter() { + this.converter = new AbstractConverter(Object.class, Node.class) { /** * Generated UID @@ -93,16 +93,6 @@ public class XMLasDOMBinding extends AbstractVarcharBinding { public Object to(Node u) { return u == null ? null : XMLasDOMBinding.toString(u); } - - @Override - public Class fromType() { - return Object.class; - } - - @Override - public Class toType() { - return Node.class; - } }; }