46.8. 6.KeyValuePairField
KeyValuePairField アノテーションは、キーと値のペアフィールドのプロパティーを定義します。各 KeyValuePairField はタグ(= キー)とその関連付けられた値(タイプ(string、int、date、…)、任意パターン、およびフィールドが必要な場合で識別されます。
アノテーション名 | レコードタイプ | レベル |
---|---|---|
KeyValuePairField | キー値のペア - FIX | プロパティー |
パラメーター名 | type | Info |
---|---|---|
tag | int | mandatory: メッセージのフィールドを識別する数字 - 一意である必要があります。 |
pattern | string | オプション: デフォルト値 = "" - will be used to format Decimal, Date, … |
精度 | int | オプション: 数字の数字 - デクリー番号がフォーマット/解析されるときに使用される精度を表します。 |
position | int | オプション: FIX メッセージのキー/タグの位置が異なる場合は、これを使用する必要があります。 |
required | boolean | optional - default value = "false" |
impliedDecimalSeparator | boolean | Camel 2.11: optional - デフォルト値 = "false" - 指定の場所の 10 進数の暗黙がある場合に示唆します。 |
case 1 : tag
このパラメーターは、メッセージのフィールドのキーを表します。
FIX message: Tag
@Message(keyValuePairSeparator = "=", pairSeparator = "\u0001", type="FIX", version="4.1") public class Order { @Link Header header; @Link Trailer trailer; @KeyValuePairField(tag = 1) // Client reference private String Account; @KeyValuePairField(tag = 11) // Order reference private String ClOrdId; @KeyValuePairField(tag = 22) // Fund ID type (Sedol, ISIN, ...) private String IDSource; @KeyValuePairField(tag = 48) // Fund code private String SecurityId; @KeyValuePairField(tag = 54) // Movement type ( 1 = Buy, 2 = sell) private String Side; @KeyValuePairField(tag = 58) // Free text private String Text; }
ケース 2: 出力の異なる位置
FIX メッセージに配置されるタグ/キーが事前に定義順に並べ替える必要がある場合、@KeyValuePairField のアノテーション 'position' 属性を使用します。
FIX message: Tag - sort
@Message(keyValuePairSeparator = "=", pairSeparator = "\\u0001", type = "FIX", version = "4.1", isOrdered = true) public class Order { @Link Header header; @Link Trailer trailer; @KeyValuePairField(tag = 1, position = 1) // Client reference private String account; @KeyValuePairField(tag = 11, position = 3) // Order reference private String clOrdId; }