Red Hat Training

A Red Hat training course is available for Red Hat Fuse

第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

dd-MM-yyyy

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

 

BindyType

csv、fixed、または key value ペアモードを使用するかどうか。デフォルト値は、選択した dataformat に応じて Csv または KeyValue です。

classType

 

文字列

使用するモデルクラスの名前。

locale

 

文字列

使用するデフォルトのロケールを設定します(例: ユニットの状態)。JVM プラットフォームのデフォルトロケールを使用するには、default という名前を使用します。

unwrapSingleInstance

true

ブール値

アンマーシャリングは、単一のインスタンスをアンラップし、java.util.List でラップせずに返します。

contentTypeHeader

false

ブール値

データフォーマットがデータ形式を実行できる場合に、データ形式がデータ形式の型で Content-Type ヘッダーを設定するかどうか。たとえば、XML へのデータフォーマットの application/xml、または JSon へのデータフォーマットの application/json など。