60.2.3. 3.DataField
DataField アノテーションは、フィールドのプロパティーを定義します。各データフィールドは、レコード内の位置、タイプ (string、int、date など)、およびパターン (任意) によって識別されます。
アノテーション名 | レコードの種類 | レベル |
---|---|---|
DataField | all | プロパティー |
パラメーター名 | タイプ | 必須/任意 | デフォルト値 | Info |
---|---|---|---|---|
pos | int | ✓ | 入力レコード内のデータの位置。1 から開始する必要があります (必須)。位置パラメーターを参照してください。 | |
align | String | R | テキストを右または左に揃えます。値 <tt>R</tt> または <tt>L</tt> を使用します。 | |
clip | boolean | false | 固定長の使用時に許容される長さを超える場合は、フィールド内のデータを切り取ることを示します。 | |
columnName | String |
ヘッダー列の名前 (オプション)。プロパティーの名前をデフォルトとして使用します。 | ||
decimalSeparator | String | BigDecimal 数値で使用する小数点区切り記号 | ||
defaultValue | String | 値が設定されていない場合のフィールドのデフォルト値 | ||
delimiter | String | フィールドが可変長の場合に使用するオプションの区切り文字 | ||
groupingSeparator | String | 123,456.789 などのグループ化された数値にフォーマット/解析する場合に、BigDecimal 数値と併用するグループ化セパレーター。 | ||
impliedDecimalSeparator | boolean | false | 指定された位置に暗黙の小数点があるかどうかを示します | |
長さ | int | 0 | レコードが固定長に設定されている場合のデータブロックの長さ (文字数) | |
lengthPos | int | 0 | このフィールドで必要とされる固定長を定義するレコードのデータフィールドを識別します | |
メソッド | String | このようなカスタマイズを DataField に適用するために呼び出すメソッド名。これは、データフィールド自体のメソッドである必要があります。そうでない場合には、クラスのメソッドの静的な完全修飾名を指定する必要があります。(例: org.apache.camel.dataformat.bindy.csv.BindySimpleCsvFunctionWithExternalMethodTest.replaceToBar の単体テストを参照) | ||
name | String | フィールドの名前 (オプション) | ||
paddingChar | char | レコードが固定長に設定されている場合に埋め込む文字 | ||
pattern | String | Java フォーマッター (例: SimpleDateFormat) がデータの変換に使用するパターン (オプション)。パターンを使用する場合は、バインドデータ形式にロケールを設定することをお勧めします。us などの既知のロケールに設定するか、default を使用してプラットフォームのデフォルトロケールを使用します。 | ||
position | int | 0 | 生成された出力メッセージ内のフィールドの位置 (1 から開始する必要があります)。生成された CSV 内のフィールドの位置 (出力メッセージ) が、入力位置 (pos) と比較して異なる必要がある場合に使用します。pos パラメーターを参照してください。 | |
精度 | int | 0 | 作成される \{@link java.math.BigDecimal} 数値の精度 | |
必須 | boolean | false | フィールドが必須かどうかを示します | |
rounding | String | CEILING | BigDecimal の丸め/スケーリングに使用される丸めモード 値: UP、DOWN、CEILING、FLOOR、HALF_UP、HALF_DOWN、HALF_EVEN、UNNECESSARY (例: Number = 123456.789, Precision = 2, Rounding = CEILING Result : 123456.79) | |
timezone | String | 使用するタイムゾーン。 | ||
trim | boolean | false | 値をトリミングする必要があるかどうかを示します |
ケース 1: pos
このパラメーター/属性は、CSV レコード内のフィールドの位置を表します。
Position
この例でわかるように、位置は 1
から始まりますが、クラス Order では続きは 5
になります。2
から 4
までの数字はクラス Client で定義されています (以下を参照)。
位置は別のモデルクラスで継続する
ケース 2: pattern
パターンを使用すると、データの形式を強化または検証できます
Pattern
ケース 3: precision
精度は、数値の小数部分を定義する場合に役立ちます。
精度
ケース 4: 出力で位置が異なる
position 属性は、生成された CSV レコードにフィールドを配置する方法を bindy に通知します。デフォルトでは、使用される位置は属性 pos
で定義された位置に対応します。位置が異なる場合 (つまり、マーシャリングとアンマーシャリングを比較する非対称プロセスがあることを意味します)、position
を使用してこれを指定できます。
以下に例を示します。
出力位置が異なる
アノテーション @DataField
のこの属性は、アノテーション @CsvRecord
の属性 isOrdered = true
と組み合わせて使用する必要があります。
ケース 5: 必須
フィールドが必須の場合は、required
属性を true に設定して使用します。
必須
このフィールドがレコードに存在しない場合には、パーサーにより次の情報を含めてエラーが報告されます。
Some fields are missing (optional or mandatory), line :
Some fields are missing (optional or mandatory), line :
ケース 6: trim
フィールドの先頭および/または末尾にスペースがあり、処理する前に削除する必要がある場合は、trim
属性を true に設定してください。
Trim
ケース 7: defaultValue
フィールドが定義されていない場合は、defaultValue
属性で示される値が使用されます。
デフォルト値
ケース 8: columnName
@CsvRecord
にアノテーション generateHeaderColumns = true
がある場合にのみ、プロパティーの列名を指定します。
列名
この属性は、オプションのフィールドにのみ適用されます。