Class CsvValidateCommand
java.lang.Object
com.streamconverter.command.AbstractStreamCommand
com.streamconverter.command.ConsumerCommand
com.streamconverter.command.impl.csv.CsvValidateCommand
- All Implemented Interfaces:
IStreamCommand
CSVデータのバリデーションを行うコマンドクラス
CSVデータの構造とデータ妥当性を検証します。以下の項目をチェックします:
- 必須カラムの存在
- ヘッダー行の妥当性
- データ行の整合性
- 重複ヘッダーの検出
使用例:
String[] requiredColumns = {"id", "name", "email"};
CsvValidateCommand validator = CsvValidateCommand.create(requiredColumns);
validator.consume(csvInputStream);
-
Field Summary
Fields inherited from class com.streamconverter.command.AbstractStreamCommand
log -
Method Summary
Modifier and TypeMethodDescriptionvoidconsume(InputStream inputStream) CSVバリデーションを実行しますstatic CsvValidateCommand詳細設定を指定してCsvValidateCommandを作成static CsvValidateCommand必須カラムを指定してCsvValidateCommandを作成(ヘッダー行ありと仮定)int最大エラー報告数を取得必須カラムを取得booleanヘッダー行の存在フラグを取得Methods inherited from class com.streamconverter.command.ConsumerCommand
executeMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface com.streamconverter.command.IStreamCommand
commandName, withLogging, withLogging
-
Method Details
-
create
必須カラムを指定してCsvValidateCommandを作成(ヘッダー行ありと仮定)- Parameters:
requiredColumns- 必須カラム名の配列- Returns:
- a CsvValidateCommand instance
- Throws:
IllegalArgumentException- 必須カラムがnullの場合
-
create
public static CsvValidateCommand create(boolean hasHeader, int maxErrorsToReport, String... requiredColumns) 詳細設定を指定してCsvValidateCommandを作成- Parameters:
hasHeader- ヘッダー行の存在フラグmaxErrorsToReport- 報告する最大エラー数requiredColumns- 必須カラム名の配列- Returns:
- a CsvValidateCommand instance
- Throws:
IllegalArgumentException- requiredColumnsがnullの場合
-
consume
CSVバリデーションを実行します- Specified by:
consumein classConsumerCommand- Parameters:
inputStream- 検証対象のCSVデータを含む入力ストリーム- Throws:
IOException- I/Oエラーが発生した場合StreamProcessingException- CSVバリデーションエラーが発生した場合
-
getRequiredColumns
必須カラムを取得- Returns:
- 必須カラムのセット
-
hasHeaderRow
ヘッダー行の存在フラグを取得- Returns:
- ヘッダー行ありの場合true
-
getMaxErrorsToReport
最大エラー報告数を取得- Returns:
- 最大エラー報告数
-