第46章 bindy DataFormat
Camel バージョン 2.0 で利用可能
このコンポーネントの目的は、非構造化データ(またはより正確な非 XML データである)
アノテーションで定義されたバインディングマッピングを持つ Java Bean の解析/バインディングを許可することです。Bindy を使用すると、以下のようなソースからデータをバインドできます。
- CSV レコード
- 固定長レコード
- Reseller メッセージ
- またはほぼすべての構造化されていないデータ
1 つまたは多数のPlain Old Java Object(POJO)。バインドは、java プロパティーのタイプに従ってデータを変換します。POJO は、場合によっては利用可能な 1 対多の関係とリンクすることができます。さらに、Date、Double、Float、Integer、Short、Long、および BigDecimal などのデータ型の場合、プロパティーのフォーマット時に適用するパターンを指定できます。
BigDecimal 番号では、精度と小数点またはグループ化セパレーターを定義することもできます。
Type | 形式タイプ | パターンの例 | リンク |
---|---|---|---|
Date | DateFormat |
| http://java.sun.com/j2se/1.5.0/docs/api/java/text/SimpleDateFormat.html |
10 進数* | Decimalformat |
| http://java.sun.com/j2se/1.5.0/docs/api/java/text/DecimalFormat.html |
10 進数* = Double、Integer、Float、Short、Long
*Format supported*
この最初のリリースでは、コンマ区切りの値フィールドとキーと値のペアのフィールドのみをサポートしています(例: FIX messages)。
camel-bindy と連携するには、まずパッケージにモデルを定義する必要があります(例: com.acme.model)。また、各モデルクラス(order、Client、Instrument、… など)で、必要なアノテーション(ここで説明)を Class またはフィールドに追加します。
*Multiple models*
複数のモデルを使用する場合は、予測不可能な結果を防ぐために、各モデルを独自のパッケージに配置する必要があります。
Camel 2.16 以降では、パッケージ名ではなくクラス名を使用してバインドを設定するため、同じパッケージに複数のモデルを安全に設定できるため、これは当てはまりなくなりました。
46.1. オプション
Bindy データフォーマットは、以下に示す 5 つのオプションをサポートします。
Name | デフォルト | Java タイプ | 説明 |
---|---|---|---|
type |
| csv、fixed、または key value ペアモードを使用するかどうか。デフォルト値は、選択した dataformat に応じて Csv または KeyValue です。 | |
classType |
| 使用するモデルクラスの名前。 | |
locale |
| 使用するデフォルトのロケールを設定します(例: ユニットの状態)。JVM プラットフォームのデフォルトロケールを使用するには、default という名前を使用します。 | |
unwrapSingleInstance |
|
| アンマーシャリングは、単一のインスタンスをアンラップし、java.util.List でラップせずに返します。 |
contentTypeHeader |
|
| データフォーマットがデータ形式を実行できる場合に、データ形式がデータ形式の型で Content-Type ヘッダーを設定するかどうか。たとえば、XML へのデータフォーマットの application/xml、または JSon へのデータフォーマットの application/json など。 |