
org.sfm.jdbc.impl.getter.ArrayResultSetGetter Maven / Gradle / Ivy
package org.sfm.jdbc.impl.getter;
import org.sfm.reflect.Getter;
import java.sql.Array;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
public final class ArrayResultSetGetter implements Getter {
private final int column;
private final Class elementType;
private final Getter elementGetter;
public ArrayResultSetGetter(final int column, final Class elementType, final Getter elementGetter) {
this.column = column;
this.elementType = elementType;
this.elementGetter = elementGetter;
}
@SuppressWarnings("unchecked")
public E[] get(final ResultSet target) throws Exception {
Array array = target.getArray(column);
List list = new ArrayList();
ResultSet rs = array.getResultSet();
try {
while(rs.next()) {
list.add(elementGetter.get(rs));
}
} finally {
rs.close();
}
E[] eltArray = (E[]) java.lang.reflect.Array.newInstance(elementType, list.size());
return list.toArray(eltArray);
}
@Override
public String toString() {
return "ArrayResultSetGetter{" +
"column=" + column +
", elementGetter=" + elementGetter +
'}';
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy