All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.sfm.jdbc.impl.AbstractForEachDynamicJdbcMapper Maven / Gradle / Ivy

Go to download

Java library to map flat record - ResultSet, csv - to java object with minimum configuration and low footprint.

There is a newer version: 1.10.3
Show newest version
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