MultipleSheetBindingErrors.java

package com.gh.mygreen.xlsmapper.validation;

import java.util.ArrayList;
import java.util.List;
import java.util.Optional;

import com.gh.mygreen.xlsmapper.util.Utils;


/**
 * 複数のシートを読み込む場合に、{@link SheetBindingErrors}を格納するクラス。
 * 
 * @version 2.0
 * @param <P>
 * @author T.TSUCHIE
 *
 */
public class MultipleSheetBindingErrors<P> {
    
    private final List<SheetBindingErrors<P>> list = new ArrayList<>();
    
    /**
     * マッピング結果を追加する。
     * @param bindingErrors 1シート分のマッピング結果
     */
    public void addBindingErrors(final SheetBindingErrors<P> bindingErrors) {
        list.add(bindingErrors);
    }
    
    /**
     * 全てのマッピング情報を取得する。
     * @return
     */
    public List<SheetBindingErrors<P>> getAll() {
        return list;
    }
    
    /**
     * シート番号を指定して、マッピング情報を取得する。
     * @param sheetIndex シート番号(0から始まる)
     * @return 存在しない場合は空を返す。
     */
    public Optional<SheetBindingErrors<P>> getBySheetIndex(final int sheetIndex) {
        return list.stream()
                .filter(b -> b.getSheetIndex() == sheetIndex)
                .findFirst();
    }
    
    /**
     * シート名を指定して、マッピング情報を取得する。
     * @param sheetName シート名
     * @return 存在しない場合は空を返す。
     */
    public Optional<SheetBindingErrors<P>> getBySheetName(final String sheetName) {
        return list.stream()
                .filter(b -> Utils.equals(b.getSheetName(), sheetName))
                .findFirst();
    }
    
}