
org.sfm.jdbc.impl.AbstractForEachDynamicJdbcMapper Maven / Gradle / Ivy
package org.sfm.jdbc.impl;
import org.sfm.map.MappingException;
import org.sfm.map.RowHandlerErrorHandler;
import org.sfm.utils.*;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Iterator;
//IFJAVA8_START
import java.util.stream.Stream;
import java.util.stream.StreamSupport;
//IFJAVA8_END
public abstract class AbstractForEachDynamicJdbcMapper extends AbstractDynamicJdbcMapper {
protected final RowHandlerErrorHandler errorHandler;
public AbstractForEachDynamicJdbcMapper(RowHandlerErrorHandler errorHandler) {
this.errorHandler = errorHandler;
}
@Override
public final > H forEach(final ResultSet rs, final H handler)
throws SQLException, MappingException {
try {
newForEachIterator(rs).forEach(handler);
return handler;
} catch(Exception e) {
return ErrorHelper.rethrow(e);
}
}
protected abstract ForEachIterator newForEachIterator(ResultSet rs) throws SQLException;
@Override
@Deprecated
public final Iterator iterate(ResultSet rs) throws SQLException,
MappingException {
return new ForEachIteratorIterator(newForEachIterator(rs));
}
@Override
@SuppressWarnings("deprecation")
public final Iterator iterator(ResultSet rs) throws SQLException,
MappingException {
return iterate(rs);
}
//IFJAVA8_START
@Override
public final Stream stream(ResultSet rs) throws SQLException, MappingException {
return StreamSupport.stream(new ForEachIteratorSpliterator(newForEachIterator(rs)), false);
}
//IFJAVA8_END
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy