48.7. 5.メッセージ

Message アノテーションは、キーと値のペアフィールドを含むモデルのクラスを識別するために使用されます。この種の形式は、主に Financial Exchange Protocol Messages (FIX) で使用されます。いずれの場合も、このアノテーションは、データがキーによって識別される他の形式に使用できます。キーペアの値は、区切り記号で互いに区切られます。区切り文字には、タブ区切り記号 (Unicode 表現: \u0009) または見出しの開始 (Unicode 表現: \u0001) などの特殊文字を使用できます。

*"FIX information"*

FIX の詳細については、Web サイト http://www.fixprotocol.org/ を参照してください。FIX メッセージを操作するには、モデルに、Order クラスである可能性があるルートメッセージクラスにリンクされた Header クラスと Trailer クラスが含まれている必要があります。これは必須ではありませんが、camel-bindy を、quickFix プロジェクト (http://www.quickfixj.org/) に基づく修正ゲートウェイである camel-fix と組み合わせて使用する場合に非常に役立ちます。

アノテーション名レコードの種類レベル

メッセージ

キーと値のペア。

Class

パラメーター名typeInfo

pairSeparator

string

必須 - '=' または ';' または 'anything'

keyValuePairSeparair

string

必須 - '\u0001、'\u0009'、'#' または 'anything'

crlf

string

オプション - 可能な値 = WINDOWS、UNIX、MAC、またはカスタム。デフォルト値 = WINDOWS - 使用する復帰文字を定義できます。上記の 3 つ以外の値を指定すると、入力した値 (カスタム) が CRLF 文字として使用されます

type

string

オプション - メッセージのタイプを定義します (FIX、EMX など)。

version

string

オプション - メッセージのバージョン (例: 4.1)

isOrdered

boolean

オプション - デフォルト値 = false - FIX メッセージの生成時にフィールドの順序を変更できます。このアノテーションは、モデルのメッセージクラスに関連付けられており、一度宣言する必要があります。

ケース 1: separator = 'u0001'

FIX メッセージでキーと値のペアフィールドを分離するために使用される区切り文字は、ASCII 01 文字または Unicode 形式の \u0001 です。Java ランタイムエラーを回避するには、この文字をもう一度エスケープする必要があります。以下は例です。

8=FIX.4.1 9=20 34=1 35=0 49=INVMGR 56=BRKR 1=BE.CHM.001 11=CHM0001-01
22=4 ...

およびアノテーションの使用方法

FIX - メッセージ

@Message(keyValuePairSeparator = "=", pairSeparator = "\u0001", type="FIX", version="4.1")
public class Order {

}
*Look at test cases*

タブなどの ASCII 文字は、WIKI ページでは表示できません。そのため、camel-bindy のテストケースを見て、FIX メッセージ (src\test\data\fix\fix.txt) と Order、Trailer、Header クラス (src\test\java\) がどのように見えるかを正確に確認してください。org\apache\camel\dataformat\bindy\model\fix\simple\Order.java)