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

org.sfm.jdbc.JdbcMapperImpl Maven / Gradle / Ivy

package org.sfm.jdbc;

import java.sql.ResultSet;

import org.sfm.map.FieldMapper;
import org.sfm.reflect.Instantiator;
import org.sfm.utils.Handler;

public final class JdbcMapperImpl implements JdbcMapper {

	
	private final FieldMapper[] fieldMappers;
	private final Instantiator instantiator;
	
	public JdbcMapperImpl(final FieldMapper[] mappers, final Instantiator instantiator) {
		this.fieldMappers = mappers;
		this.instantiator = instantiator;
	}

	@Override
	public T map(final ResultSet source) throws Exception {
		final T target = instantiator.newInstance(source);
		for(int i = 0; i < fieldMappers.length; i++) {
			fieldMappers[i].map(source, target);
		}
		return target;
	}
	
	@Override
	public > H forEach(final ResultSet rs, final H handler)
			throws Exception {
		while(rs.next()) {
			T t = map(rs);
			handler.handle(t);
		}
		return handler;
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy