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

org.simpleflatmapper.poi.impl.SheetEnumerable Maven / Gradle / Ivy

The newest version!
package org.simpleflatmapper.poi.impl;

import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.simpleflatmapper.map.MappingContext;
import org.simpleflatmapper.map.SourceMapper;
import org.simpleflatmapper.util.Enumerable;

public class SheetEnumerable implements Enumerable {

    private final SourceMapper mapper;
    private final Sheet sheet;
    private final MappingContext mappingContext;

    private int rowNum;
    private int lastRowNum;
    private T currentValue;

    public SheetEnumerable(SourceMapper mapper, int startRow, Sheet sheet, MappingContext mappingContext) {
        this.mapper = mapper;
        this.rowNum = startRow;
        this.lastRowNum = sheet.getLastRowNum();
        this.sheet = sheet;
        this.mappingContext = mappingContext;
    }

    @Override
    public boolean next() {
        currentValue = null;
        while(rowNum <= lastRowNum) {
            Row row = sheet.getRow(rowNum);
            rowNum ++;
            if (row != null) {
                currentValue = mapper.map(row, mappingContext);
                return true;
            }
        }
        return false;
    }

    @Override
    public T currentValue() {
        return currentValue;
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy