Class CsvValidateCommand

All Implemented Interfaces:
IStreamCommand

public class CsvValidateCommand extends ConsumerCommand
CSVデータのバリデーションを行うコマンドクラス

CSVデータの構造とデータ妥当性を検証します。以下の項目をチェックします:

  • 必須カラムの存在
  • ヘッダー行の妥当性
  • データ行の整合性
  • 重複ヘッダーの検出

使用例:

 String[] requiredColumns = {"id", "name", "email"};
 CsvValidateCommand validator = new CsvValidateCommand(requiredColumns);
 validator.consume(csvInputStream);
 
  • Constructor Details

    • CsvValidateCommand

      public CsvValidateCommand(String... requiredColumns)
      必須カラムを指定するコンストラクタ(ヘッダー行ありと仮定)
      Parameters:
      requiredColumns - 必須カラム名の配列
      Throws:
      IllegalArgumentException - 必須カラムがnullの場合
    • CsvValidateCommand

      public CsvValidateCommand(boolean hasHeader, int maxErrorsToReport, String... requiredColumns)
      詳細設定を指定するコンストラクタ
      Parameters:
      hasHeader - ヘッダー行の存在フラグ
      maxErrorsToReport - 報告する最大エラー数
      requiredColumns - 必須カラム名の配列
      Throws:
      IllegalArgumentException - requiredColumnsがnullの場合
  • Method Details

    • consume

      public void consume(InputStream inputStream) throws IOException
      CSVバリデーションを実行します
      Specified by:
      consume in class ConsumerCommand
      Parameters:
      inputStream - 検証対象のCSVデータを含む入力ストリーム
      Throws:
      IOException - I/Oエラーが発生した場合
      StreamProcessingException - CSVバリデーションエラーが発生した場合
    • getRequiredColumns

      必須カラムを取得
      Returns:
      必須カラムのセット
    • hasHeaderRow

      public boolean hasHeaderRow()
      ヘッダー行の存在フラグを取得
      Returns:
      ヘッダー行ありの場合true
    • getMaxErrorsToReport

      public int getMaxErrorsToReport()
      最大エラー報告数を取得
      Returns:
      最大エラー報告数