MultipleSheetBindingErrors.java

  1. package com.gh.mygreen.xlsmapper.validation;

  2. import java.util.ArrayList;
  3. import java.util.List;
  4. import java.util.Optional;

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


  6. /**
  7.  * 複数のシートを読み込む場合に、{@link SheetBindingErrors}を格納するクラス。
  8.  *
  9.  * @version 2.0
  10.  * @param <P>
  11.  * @author T.TSUCHIE
  12.  *
  13.  */
  14. public class MultipleSheetBindingErrors<P> {
  15.    
  16.     private final List<SheetBindingErrors<P>> list = new ArrayList<>();
  17.    
  18.     /**
  19.      * マッピング結果を追加する。
  20.      * @param bindingErrors 1シート分のマッピング結果
  21.      */
  22.     public void addBindingErrors(final SheetBindingErrors<P> bindingErrors) {
  23.         list.add(bindingErrors);
  24.     }
  25.    
  26.     /**
  27.      * 全てのマッピング情報を取得する。
  28.      * @return
  29.      */
  30.     public List<SheetBindingErrors<P>> getAll() {
  31.         return list;
  32.     }
  33.    
  34.     /**
  35.      * シート番号を指定して、マッピング情報を取得する。
  36.      * @param sheetIndex シート番号(0から始まる)
  37.      * @return 存在しない場合は空を返す。
  38.      */
  39.     public Optional<SheetBindingErrors<P>> getBySheetIndex(final int sheetIndex) {
  40.         return list.stream()
  41.                 .filter(b -> b.getSheetIndex() == sheetIndex)
  42.                 .findFirst();
  43.     }
  44.    
  45.     /**
  46.      * シート名を指定して、マッピング情報を取得する。
  47.      * @param sheetName シート名
  48.      * @return 存在しない場合は空を返す。
  49.      */
  50.     public Optional<SheetBindingErrors<P>> getBySheetName(final String sheetName) {
  51.         return list.stream()
  52.                 .filter(b -> Utils.equals(b.getSheetName(), sheetName))
  53.                 .findFirst();
  54.     }
  55.    
  56. }