forked from quickfixgo/quickfix
/
PositionMaintenanceRequest.go
140 lines (133 loc) · 7.3 KB
/
PositionMaintenanceRequest.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
//Package positionmaintenancerequest msg type = AL.
package positionmaintenancerequest
import (
"github.com/quickfixgo/quickfix"
"github.com/quickfixgo/quickfix/enum"
"github.com/quickfixgo/quickfix/fix50/instrmtleggrp"
"github.com/quickfixgo/quickfix/fix50/instrument"
"github.com/quickfixgo/quickfix/fix50/parties"
"github.com/quickfixgo/quickfix/fix50/positionamountdata"
"github.com/quickfixgo/quickfix/fix50/positionqty"
"github.com/quickfixgo/quickfix/fix50/trdgsesgrp"
"github.com/quickfixgo/quickfix/fix50/undinstrmtgrp"
"github.com/quickfixgo/quickfix/fixt11"
"time"
)
//Message is a PositionMaintenanceRequest FIX Message
type Message struct {
FIXMsgType string `fix:"AL"`
fixt11.Header
//PosReqID is a non-required field for PositionMaintenanceRequest.
PosReqID *string `fix:"710"`
//PosTransType is a required field for PositionMaintenanceRequest.
PosTransType int `fix:"709"`
//PosMaintAction is a required field for PositionMaintenanceRequest.
PosMaintAction int `fix:"712"`
//OrigPosReqRefID is a non-required field for PositionMaintenanceRequest.
OrigPosReqRefID *string `fix:"713"`
//PosMaintRptRefID is a non-required field for PositionMaintenanceRequest.
PosMaintRptRefID *string `fix:"714"`
//ClearingBusinessDate is a required field for PositionMaintenanceRequest.
ClearingBusinessDate string `fix:"715"`
//SettlSessID is a non-required field for PositionMaintenanceRequest.
SettlSessID *string `fix:"716"`
//SettlSessSubID is a non-required field for PositionMaintenanceRequest.
SettlSessSubID *string `fix:"717"`
//Parties is a required component for PositionMaintenanceRequest.
parties.Parties
//Account is a non-required field for PositionMaintenanceRequest.
Account *string `fix:"1"`
//AcctIDSource is a non-required field for PositionMaintenanceRequest.
AcctIDSource *int `fix:"660"`
//AccountType is a non-required field for PositionMaintenanceRequest.
AccountType *int `fix:"581"`
//Instrument is a required component for PositionMaintenanceRequest.
instrument.Instrument
//Currency is a non-required field for PositionMaintenanceRequest.
Currency *string `fix:"15"`
//InstrmtLegGrp is a non-required component for PositionMaintenanceRequest.
InstrmtLegGrp *instrmtleggrp.InstrmtLegGrp
//UndInstrmtGrp is a non-required component for PositionMaintenanceRequest.
UndInstrmtGrp *undinstrmtgrp.UndInstrmtGrp
//TrdgSesGrp is a non-required component for PositionMaintenanceRequest.
TrdgSesGrp *trdgsesgrp.TrdgSesGrp
//TransactTime is a non-required field for PositionMaintenanceRequest.
TransactTime *time.Time `fix:"60"`
//PositionQty is a required component for PositionMaintenanceRequest.
positionqty.PositionQty
//AdjustmentType is a non-required field for PositionMaintenanceRequest.
AdjustmentType *int `fix:"718"`
//ContraryInstructionIndicator is a non-required field for PositionMaintenanceRequest.
ContraryInstructionIndicator *bool `fix:"719"`
//PriorSpreadIndicator is a non-required field for PositionMaintenanceRequest.
PriorSpreadIndicator *bool `fix:"720"`
//ThresholdAmount is a non-required field for PositionMaintenanceRequest.
ThresholdAmount *float64 `fix:"834"`
//Text is a non-required field for PositionMaintenanceRequest.
Text *string `fix:"58"`
//EncodedTextLen is a non-required field for PositionMaintenanceRequest.
EncodedTextLen *int `fix:"354"`
//EncodedText is a non-required field for PositionMaintenanceRequest.
EncodedText *string `fix:"355"`
//PositionAmountData is a non-required component for PositionMaintenanceRequest.
PositionAmountData *positionamountdata.PositionAmountData
//SettlCurrency is a non-required field for PositionMaintenanceRequest.
SettlCurrency *string `fix:"120"`
fixt11.Trailer
}
//Marshal converts Message to a quickfix.Message instance
func (m Message) Marshal() quickfix.Message { return quickfix.Marshal(m) }
//New returns an initialized PositionMaintenanceRequest instance
func New(postranstype int, posmaintaction int, clearingbusinessdate string, parties parties.Parties, instrument instrument.Instrument, positionqty positionqty.PositionQty) *Message {
var m Message
m.SetPosTransType(postranstype)
m.SetPosMaintAction(posmaintaction)
m.SetClearingBusinessDate(clearingbusinessdate)
m.SetParties(parties)
m.SetInstrument(instrument)
m.SetPositionQty(positionqty)
return &m
}
func (m *Message) SetPosReqID(v string) { m.PosReqID = &v }
func (m *Message) SetPosTransType(v int) { m.PosTransType = v }
func (m *Message) SetPosMaintAction(v int) { m.PosMaintAction = v }
func (m *Message) SetOrigPosReqRefID(v string) { m.OrigPosReqRefID = &v }
func (m *Message) SetPosMaintRptRefID(v string) { m.PosMaintRptRefID = &v }
func (m *Message) SetClearingBusinessDate(v string) { m.ClearingBusinessDate = v }
func (m *Message) SetSettlSessID(v string) { m.SettlSessID = &v }
func (m *Message) SetSettlSessSubID(v string) { m.SettlSessSubID = &v }
func (m *Message) SetParties(v parties.Parties) { m.Parties = v }
func (m *Message) SetAccount(v string) { m.Account = &v }
func (m *Message) SetAcctIDSource(v int) { m.AcctIDSource = &v }
func (m *Message) SetAccountType(v int) { m.AccountType = &v }
func (m *Message) SetInstrument(v instrument.Instrument) { m.Instrument = v }
func (m *Message) SetCurrency(v string) { m.Currency = &v }
func (m *Message) SetInstrmtLegGrp(v instrmtleggrp.InstrmtLegGrp) { m.InstrmtLegGrp = &v }
func (m *Message) SetUndInstrmtGrp(v undinstrmtgrp.UndInstrmtGrp) { m.UndInstrmtGrp = &v }
func (m *Message) SetTrdgSesGrp(v trdgsesgrp.TrdgSesGrp) { m.TrdgSesGrp = &v }
func (m *Message) SetTransactTime(v time.Time) { m.TransactTime = &v }
func (m *Message) SetPositionQty(v positionqty.PositionQty) { m.PositionQty = v }
func (m *Message) SetAdjustmentType(v int) { m.AdjustmentType = &v }
func (m *Message) SetContraryInstructionIndicator(v bool) { m.ContraryInstructionIndicator = &v }
func (m *Message) SetPriorSpreadIndicator(v bool) { m.PriorSpreadIndicator = &v }
func (m *Message) SetThresholdAmount(v float64) { m.ThresholdAmount = &v }
func (m *Message) SetText(v string) { m.Text = &v }
func (m *Message) SetEncodedTextLen(v int) { m.EncodedTextLen = &v }
func (m *Message) SetEncodedText(v string) { m.EncodedText = &v }
func (m *Message) SetPositionAmountData(v positionamountdata.PositionAmountData) {
m.PositionAmountData = &v
}
func (m *Message) SetSettlCurrency(v string) { m.SettlCurrency = &v }
//A RouteOut is the callback type that should be implemented for routing Message
type RouteOut func(msg Message, sessionID quickfix.SessionID) quickfix.MessageRejectError
//Route returns the beginstring, message type, and MessageRoute for this Message type
func Route(router RouteOut) (string, string, quickfix.MessageRoute) {
r := func(msg quickfix.Message, sessionID quickfix.SessionID) quickfix.MessageRejectError {
m := new(Message)
if err := quickfix.Unmarshal(msg, m); err != nil {
return err
}
return router(*m, sessionID)
}
return enum.BeginStringFIX50, "AL", r
}