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

org.sfm.csv.impl.InstantiatorOnReader 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.csv.impl;

import org.sfm.csv.CellValueReader;
import org.sfm.reflect.Instantiator;
import org.sfm.utils.ErrorHelper;

public class InstantiatorOnReader implements CellValueReader {
	private final Instantiator instantiator;
	private final CellValueReader innerReader;

	public InstantiatorOnReader(Instantiator constructor,
								CellValueReader innerReader) {
		this.instantiator = constructor;
		this.innerReader = innerReader;
	}

	@Override
	public T read(char[] chars, int offset, int length,
			ParsingContext parsingContext) {
		try {
			return instantiator.newInstance(innerReader.read(chars, offset, length, parsingContext));
		} catch (Exception e) {
            return ErrorHelper.rethrow(e);
		}
	}

    @Override
    public String toString() {
        return "ConstructorOnReader{" +
                "constructor=" + instantiator +
                ", innerReader=" + innerReader +
                '}';
    }
}