46.7. 5.メッセージ
Message アノテーションは、キーと値のペアフィールドが含まれるモデルのクラスを特定するために使用されます。このようなフォーマットは、主にサーバー交換プロトコルメッセージ(FIX)で使用されます。ただし、このアノテーションは、データがキーで識別される他の形式に使用できます。キーペアの値は、タブデリミット(ユニコード表現 : \u0009)や見出しの開始(unicode 表現 : \u0001)などの特殊文字で区切られます。
*"FIX information"*
FIX の詳細は、この Web サイト http://www.fixprotocol.org/ を参照してください。FIX メッセージを使用するには、モデルに Order クラスであるルートメッセージクラスにリンクされた Header および Trailer クラスが含まれている必要があります。これは必須ではありませんが、fastFix プロジェクト http://www.quickfixj.org/ に基づく Fix ゲートウェイである camel-fix と組み合わせて camel-bindy を使用する場合は非常に便利です。
アノテーション名 | レコードタイプ | レベル |
---|---|---|
メッセージ | キーと値のペア | クラス |
パラメーター名 | type | Info |
---|---|---|
pairSeparator | string | 必須 - '= または ';' または 'anything' にすることができます |
keyValuePairSeparair | string | 必須 - '\u0001'、'\u0009'、'#'、または 'anything' にすることができます。 |
crlf | string | オプション - 使用できる値 = WINDOWS、UNIX、MAC、または custom。デフォルト値 = WINDOWS - 使用するキャリッジリターン文字を定義できます。前述した 3 つの値以外の値を指定すると、入力する値が CRLF 文字として使用されます。 |
type | string | オプション: メッセージのタイプを定義します(例: FIX、EMX、…) |
version | string | オプション: メッセージのバージョン(例: 4.1) |
isOrdered | boolean | optional - デフォルト値 = false - FIX メッセージの生成時にフィールドの順番を変更できるようにします。このアノテーションはモデルのメッセージクラスに関連付けられ、一度宣言する必要があります。 |
case 1 : separator = 'u0001'
FIX メッセージ内のキーと値のペアフィールドを分離するために使用される区切り文字は ASCII '01' 文字または unicode 形式の '\u0001' です。この文字は、java ランタイムエラーを回避するために 2 回エスケープする必要があります。以下に例を示します。
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
@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.txt)と Order、Trailer、Header クラス(src\test\java\org\apache\camel\dataformat\bindy\model\fix\simple\Order.java)がどのように見えるかを確認します。