ColumnValueConverter.java
package org.itsallcode.jdbc.resultset;
import java.sql.ResultSet;
import java.sql.SQLException;
import org.itsallcode.jdbc.dialect.ColumnValueExtractor;
interface ColumnValueConverter {
<T> T getObject(ResultSet resultSet, int columnIndex, Class<T> type) throws SQLException;
Object getObject(ResultSet resultSet, int columnIndex) throws SQLException;
static ColumnValueConverter simple(final ColumnValueExtractor extractor) {
return new ColumnValueConverter() {
@Override
public <T> T getObject(final ResultSet resultSet, final int columnIndex, final Class<T> type)
throws SQLException {
return type.cast(getObject(resultSet, columnIndex));
}
@Override
public Object getObject(final ResultSet resultSet, final int columnIndex) throws SQLException {
return extractor.getObject(resultSet, columnIndex);
}
};
}
}