第48章 Bindy DataFormat

Camel バージョン 2.0 以降で利用可能

このコンポーネントの目的は、アノテーションでバインディングマッピングが定義された Java Bean との間で、非構造化データ (より正確には非 XML データ)
の解析/バインディングを可能にすることです。Bindy を使用すると、次のようなソースからデータをバインドできます。

  • CSV レコード、
  • 固定長レコード、
  • FIX メッセージ、
  • またはほとんどすべての非構造化データ

1 つまたは複数の Plain Old Java Object (POJO)。Bindy は、Java プロパティーの型に従ってデータを変換します。POJO は、場合によっては利用可能な 1 対多の関係と合わせてリンクできます。さらに、Date、Double、Float、Integer、Short、Long、BigDecimal などのデータ型の場合に、プロパティーのフォーマット中に適用するパターンを指定できます。

BigDecimal 数値の場合、精度と小数点またはグループ区切り記号も定義できます。

タイプフォーマットの種類パターン例リンク

Date

DateFormat

dd-MM-yyyy

http://java.sun.com/j2se/1.5.0/docs/api/java/text/SimpleDateFormat.html

Decimal*

Decimalformat

..##

http://java.sun.com/j2se/1.5.0/docs/api/java/text/DecimalFormat.html

Decimal* = Double、Integer、Float、Short、Long

*Format supported*

この最初のリリースでは、コンマ区切りの値フィールドとキーと値のペアフィールド (例: FIX メッセージ) のみがサポートされています。

camel-bindy を使用するには、最初にモデルをパッケージ (例: com.acme.model) で定義し、モデルクラス (例: Order、Client、Instrument など) ごとに必要なアノテーション (後述) をクラスまたはフィールドに追加する必要があります。

*Multiple models*

複数のモデルを使用する場合は、予測できない結果を防ぐために、各モデルを独自のパッケージに配置する必要があります。

Camel 2.16 以降では、パッケージ名の代わりにクラス名を使用して bindy を設定するため、同じパッケージに複数のモデルを安全に含めることができるため、これは当てはまりません。

48.1. オプション

Bindy データ形式は、以下に示す 5 つのオプションをサポートしています。

名前デフォルトJava タイプ説明

type

 

BindyType

csv、固定、またはキーと値のペアのモードを使用するかどうか。デフォルト値は、選択したデータ形式に応じて Csv または KeyValue のいずれかです。

classType

 

String

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

locale

 

String

米国の us など、使用する既定のロケールを設定します。JVM プラットフォームのデフォルトロケールを使用するには、default という名前を使用します。

unwrapSingleInstance

true

Boolean

アンマーシャリング時に、java.util.List にラップする代わりに、単一のインスタンスをアンラップして返す必要があります。

contentTypeHeader

false

Boolean

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