@Override @SuppressWarnings("unchecked") public ValueExtractor getExtractor(JavaTypeDescriptor javaTypeDescriptor) { if (Serializable.class.isAssignableFrom(javaTypeDescriptor.getJavaTypeClass())) { return VarbinaryTypeDescriptor.INSTANCE.getExtractor(javaTypeDescriptor); } return new BasicExtractor(javaTypeDescriptor, this) { @Override protected Object doExtract(ResultSet rs, String name, WrapperOptions options) throws SQLException { return rs.getObject(name); } @Override protected Object doExtract(CallableStatement statement, int index, WrapperOptions options) throws SQLException { return statement.getObject(index); } @Override protected Object doExtract(CallableStatement statement, String name, WrapperOptions options) throws SQLException { return statement.getObject(name); } }; }
@Override public <X> ValueBinder<X> getBinder(JavaTypeDescriptor<X> javaTypeDescriptor) { if (Serializable.class.isAssignableFrom(javaTypeDescriptor.getJavaTypeClass())) { return VarbinaryTypeDescriptor.INSTANCE.getBinder(javaTypeDescriptor); } return new BasicBinder<X>(javaTypeDescriptor, this) { @Override protected void doBind(PreparedStatement st, X value, int index, WrapperOptions options) throws SQLException { st.setObject(index, value, jdbcTypeCode); } }; }