48.9. 6.KeyValuePairField

KeyValuePairField アノテーションは、キーと値のペアフィールドのプロパティーを定義します。各 KeyValuePairField は、タグ (= キー) とそれに関連付けられた値、タイプ (文字列、整数、日付など)、オプションのパターン、およびフィールドが必須かどうかによって識別されます

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

KeyValuePairField

キーと値のペア - FIX

プロパティー

パラメーター名typeInfo

tag

int

必須 - メッセージ内のフィールドを識別する数字 - 一意でなければなりません

pattern

string

オプション - デフォルト値 = "" - Decimal、Date などのフォーマットに使用されます

精度

int

オプション - 桁数 - 10 進数がフォーマット/解析されるときに使用される精度を表します

position

int

オプション - FIX メッセージ内のキー/タグの位置が異なる必要がある場合に使用する必要があります

必須

boolean

optional - default value = "false"

impliedDecimalSeparator

boolean

Camel 2.11: オプション - デフォルト値 = "false" - 指定された位置に暗黙の小数点があるかどうかを示します

case 1 : tag

このパラメーターは、メッセージ内のフィールドのキーを表します

FIX メッセージ - タグ

@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(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;
}