View Javadoc
1   package com.github.mygreen.supercsv.cellprocessor;
2   
3   import java.util.Optional;
4   
5   import org.supercsv.cellprocessor.ift.CellProcessor;
6   
7   import com.github.mygreen.supercsv.builder.BuildCase;
8   import com.github.mygreen.supercsv.builder.Configuration;
9   import com.github.mygreen.supercsv.builder.FieldAccessor;
10  import com.github.mygreen.supercsv.cellprocessor.format.TextFormatter;
11  
12  /**
13   * {@link CellProcessor}のインスタンスを作成するインタフェース。
14   *
15   * @since 2.0
16   * @author T.TSUCHIE
17   *
18   */
19  @FunctionalInterface
20  public interface ProcessorFactory {
21      
22      /**
23       * 値を変換する{@link CellProcessor}を作成する。
24       * 
25       * @param next Chainで次に実行される{@link CellProcessor}。値がない場合がある。
26       * @param field 処理対象のフィールド情報。
27       * @param formatter フィールドの書式に沿ったフォーマッタ。
28       * @param config システム情報。
29       * @param buildCase 組み立てる際の種別。読み込み時と書き込み時と区別する際に利用します。
30       * @param groups グループ情報。提供するアノテーションの絞り込みに利用します。
31       * @return {@link CellProcessor}の実装クラスのインスタンス。
32       *         引数nextをそのまま返すため、値がない場合がある。
33       */
34      Optional<CellProcessor> create(Optional<CellProcessor> next, FieldAccessor field, 
35              TextFormatter<?> formatter, Configuration config, BuildCase buildCase, Class<?>[] groups);
36      
37  }