第55章 Bindy
このコンポーネントの目的は、アノテーションでバインディングマッピングが定義された Java Bean との間で、非構造化データ (より正確には非 XML データ) の解析/バインディングを可能にすることです。Bindy を使用すると、次のようなソースからデータをバインドできます。
- CSV レコード、
- 固定長レコード、
- FIX メッセージ、
- またはほとんどすべての非構造化データ
1 つまたは複数の Plain Old Java Object (POJO)。Bindy は、Java プロパティーの型に従ってデータを変換します。POJO は、場合によっては利用可能な 1 対多の関係と合わせてリンクできます。さらに、Date、Double、Float、Integer、Short、Long、BigDecimal などのデータ型の場合に、プロパティーのフォーマット中に適用するパターンを指定できます。
BigDecimal 数値の場合、精度と小数点またはグループ区切り記号も定義できます。
タイプ | フォーマットの種類 | パターン例 | リンク |
---|---|---|---|
日付 |
|
| https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/text/SimpleDateFormat.html |
Decimal* |
|
| https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/text/DecimalFormat.html |
Decimal には Double、Integer、Float、Short、Long を指定できます。
対応フォーマット
この最初のリリースでは、コンマ区切りの値フィールドとキーと値のペアフィールド (例: FIX メッセージ) のみがサポートされています。
camel-bindy を使用するには、最初にモデルをパッケージ (例: com.acme.model) で定義し、モデルクラス (例: Order、Client、Instrument など) ごとに必要なアノテーション (後述) をクラスまたはフィールドに追加する必要があります。
複数のモデル
パッケージ名の代わりにクラス名を使用して bindy を設定すると、複数のモデルを同じパッケージに入れることができます。
55.1. オプション
Bindy データ形式は、以下に示す 5 つのオプションをサポートしています。
名前 | デフォルト | Java タイプ | 説明 |
---|---|---|---|
type |
| 必須: Csv、Fixed、KeyValue のいずれを使用できます。 列挙値:
| |
classType |
| 使用するモデルクラスの名前。 | |
locale |
| 米国の us など、使用する既定のロケールを設定します。JVM プラットフォームのデフォルトロケールを使用するには、default という名前を使用します。 | |
unwrapSingleInstance |
| アンマーシャリング時に、java.util.List にラップする代わりに、単一のインスタンスをアンラップして返す必要があります。 | |
allowEmptyStream |
| アンマーシャルプロセスで空のストリームを許可するかどうか。true の場合、レコードのないボディが提供されたときに例外は出力されません。 |