Package com.streamconverter.path
Class CSVPath
最小限のCSVPath実装
CSV列選択のパス一致判定のみに特化したシンプルな設計
複数の列セレクターをOR条件で判定する機能を提供
セレクターには次を指定できる。
- 列名
- 0始まりの数値インデックス
"*"による全列選択
注意: "*" はワイルドカードとして解釈されるため、ヘッダー名そのものが "*" の列を個別指定する用途には使えない。
-
Method Summary
Modifier and TypeMethodDescriptionfindMatchingIndices(int totalColumns) マッチするすべての列インデックスを取得(ヘッダーなしの場合)findMatchingIndices(String[] headers) マッチするすべての列インデックスを取得(Don't Ask Tell準拠)boolean指定された列インデックスがこのパスにマッチするかどうかを判定する(OR条件)。boolean列ヘッダー配列との一致判定(OR条件)static CSVPath単一セレクターでCSVPathを作成static CSVPath複数セレクターでCSVPathを作成(OR条件)toString()このパスの文字列表現を返す。protected voidvalidateAndNormalize(String rawSelector) 検証・正規化処理のフック。Methods inherited from class com.streamconverter.path.AbstractPath
isNullOrEmpty
-
Method Details
-
of
単一セレクターでCSVPathを作成- Parameters:
selector- 列選択子(列名、数値インデックス、または"*"による全列選択)- Returns:
- CSVPath instance
- Throws:
IllegalArgumentException- セレクターが不正な場合
-
of
複数セレクターでCSVPathを作成(OR条件)- Parameters:
selectorList- 列選択子のリスト- Returns:
- CSVPath instance
- Throws:
IllegalArgumentException- セレクターが不正な場合
-
validateAndNormalize
検証・正規化処理のフック。AbstractPath(String)コンストラクタから呼び出されるが、CSVPathでは検証を ファクトリメソッド(of(String)/of(java.util.List))側で行うため、 コンストラクタ内スロー(CT_CONSTRUCTOR_THROW)を避けるためにここでは何もしない。- Specified by:
validateAndNormalizein classAbstractPath<Integer>- Parameters:
rawSelector- 生のセレクター文字列(未使用)
-
matches
指定された列インデックスがこのパスにマッチするかどうかを判定する(OR条件)。いずれかのセレクターがインデックスに一致すれば
trueを返す。注意: このメソッドでインデックス一致として扱えるのは、数値インデックス指定セレクター(例:
"0")と全列選択"*"のみ。 列名指定セレクター (例:"name","userId")は常にfalseを返す。 列名での一致判定にはmatches(String[], int)を使用すること。- Parameters:
columnIndex- 判定対象の列インデックス(0始まり)。nullまたは負値の場合はfalse- Returns:
- いずれかのセレクターが一致する場合true
-
matches
列ヘッダー配列との一致判定(OR条件)- Parameters:
headers- CSV列ヘッダー配列targetIndex- 対象列のインデックス- Returns:
- いずれかのセレクターが一致する場合true
-
findMatchingIndices
マッチするすべての列インデックスを取得(Don't Ask Tell準拠)- Parameters:
headers- CSV列ヘッダー配列- Returns:
- マッチした列インデックスのリスト
-
findMatchingIndices
マッチするすべての列インデックスを取得(ヘッダーなしの場合)- Parameters:
totalColumns- 総列数- Returns:
- マッチした列インデックスのリスト
-
toString
このパスの文字列表現を返す。セレクターが1つの場合はその値をそのまま返し、複数の場合はカンマ区切りで結合する。
-