39 memset(&data, 0,
sizeof(data));
42 if (para_tag_identifier ==
"STOCKINFO")
43 data.security_type = data.OFX_STOCK_SECURITY;
44 else if (para_tag_identifier ==
"MFINFO")
45 data.security_type = data.OFX_FUND_SECURITY;
46 else if (para_tag_identifier ==
"OPTINFO")
47 data.security_type = data.OFX_OPTION_SECURITY;
48 else if (para_tag_identifier ==
"DEBTINFO")
49 data.security_type = data.OFX_DEBT_SECURITY;
51 ASSIGN(data.security_type, data.OFX_OTHER_SECURITY);
54 OfxSecurityContainer::~OfxSecurityContainer()
60 if (identifier ==
"UNIQUEID")
66 if (data.unique_id_valid ==
false)
76 else if (identifier ==
"UNIQUEIDTYPE")
82 if (data.unique_id_type_valid ==
false)
92 else if (identifier ==
"SECNAME")
96 else if (identifier ==
"TICKER")
100 else if (identifier ==
"RATING")
104 else if (identifier ==
"UNITPRICE")
108 else if (identifier ==
"DTASOF")
112 else if (identifier ==
"CURRATE")
116 else if (identifier ==
"CURSYM")
120 else if (identifier ==
"CURRENCY")
124 else if (identifier ==
"ORIGCURRENCY")
128 else if (identifier ==
"MEMO" || identifier ==
"MEMO2")
132 else if (identifier ==
"FIID")
136 else if (identifier ==
"ASSETCLASS")
138 if (value ==
"DOMESTICBOND")
140 ASSIGN(data.asset_class, data.OFX_ASSET_CLASS_DOMESTICBOND);
142 else if (value ==
"INTLBOND")
144 ASSIGN(data.asset_class, data.OFX_ASSET_CLASS_INTLBOND);
146 else if (value ==
"LARGESTOCK")
148 ASSIGN(data.asset_class, data.OFX_ASSET_CLASS_LARGESTOCK);
150 else if (value ==
"SMALLSTOCK")
152 ASSIGN(data.asset_class, data.OFX_ASSET_CLASS_SMALLSTOCK);
154 else if (value ==
"INTLSTOCK")
156 ASSIGN(data.asset_class, data.OFX_ASSET_CLASS_INTLSTOCK);
158 else if (value ==
"MONEYMRKT")
160 ASSIGN(data.asset_class, data.OFX_ASSET_CLASS_MONEYMRKT);
162 else if (value ==
"OTHER")
164 ASSIGN(data.asset_class, data.OFX_ASSET_CLASS_OTHER);
167 else if (identifier ==
"PARVALUE")
171 else if (identifier ==
"DEBTTYPE")
173 if (value ==
"COUPON")
175 ASSIGN(data.debt_type, data.OFX_DEBT_TYPE_COUPON);
177 else if (value ==
"ZERO")
179 ASSIGN(data.debt_type, data.OFX_DEBT_TYPE_ZERO);
182 else if (identifier ==
"DEBTCLASS")
184 if (value ==
"TREASURY")
186 ASSIGN(data.debt_class, data.OFX_DEBTCLASS_TREASURY);
188 else if (value ==
"MUNICIPAL")
190 ASSIGN(data.debt_class, data.OFX_DEBTCLASS_MUNICIPAL);
192 else if (value ==
"CORPORATE")
194 ASSIGN(data.debt_class, data.OFX_DEBTCLASS_CORPORATE);
196 else if (value ==
"OTHER")
198 ASSIGN(data.debt_class, data.OFX_DEBTCLASS_OTHER);
201 else if (identifier ==
"COUPONRT")
205 else if (identifier ==
"DTCOUPON")
209 else if (identifier ==
"COUPONFREQ")
211 if (value ==
"MONTHLY")
213 ASSIGN(data.coupon_freq, data.OFX_COUPON_FREQ_MONTHLY);
215 else if (value ==
"QUARTERLY")
217 ASSIGN(data.coupon_freq, data.OFX_COUPON_FREQ_QUARTERLY);
219 else if (value ==
"SEMIANNUAL")
221 ASSIGN(data.coupon_freq, data.OFX_COUPON_FREQ_SEMIANNUAL);
223 else if (value ==
"ANNUAL")
225 ASSIGN(data.coupon_freq, data.OFX_COUPON_FREQ_ANNUAL);
227 else if (value ==
"OTHER")
229 ASSIGN(data.coupon_freq, data.OFX_COUPON_FREQ_OTHER);
232 else if (identifier ==
"CALLPRICE")
236 else if (identifier ==
"YIELDTOCALL")
240 else if (identifier ==
"DTCALL")
244 else if (identifier ==
"CALLTYPE")
248 ASSIGN(data.call_type, data.OFX_CALL_TYPE_CALL);
250 else if (value ==
"PUT")
252 ASSIGN(data.call_type, data.OFX_CALL_TYPE_PUT);
254 else if (value ==
"PREFUND")
256 ASSIGN(data.call_type, data.OFX_CALL_TYPE_PREFUND);
258 else if (value ==
"MATURITY")
260 ASSIGN(data.call_type, data.OFX_CALL_TYPE_MATURITY);
263 else if (identifier ==
"YIELDTOMAT")
267 else if (identifier ==
"DTMAT")
271 else if (identifier ==
"MFTYPE")
273 if (value ==
"OPENEND")
275 ASSIGN(data.mutual_fund_type, data.OFX_MFTYPE_OPENEND);
277 else if (value ==
"CLOSEEND")
279 ASSIGN(data.mutual_fund_type, data.OFX_MFTYPE_CLOSEEND);
281 else if (value ==
"OTHER")
283 ASSIGN(data.mutual_fund_type, data.OFX_MFTYPE_OTHER);
286 else if (identifier ==
"STOCKTYPE")
288 if (value ==
"COMMON")
290 ASSIGN(data.stock_type, data.OFX_STOCKTYPE_COMMON);
292 else if (value ==
"PREFERRED")
294 ASSIGN(data.stock_type, data.OFX_STOCKTYPE_PREFERRED);
296 else if (value ==
"CONVERTIBLE")
298 ASSIGN(data.stock_type, data.OFX_STOCKTYPE_CONVERTIBLE);
300 else if (value ==
"OTHER")
302 ASSIGN(data.stock_type, data.OFX_STOCKTYPE_OTHER);
305 else if (identifier ==
"YIELD")
309 else if (identifier ==
"DTYIELDASOF")
313 else if (identifier ==
"OPTTYPE")
315 if (value ==
"CALL" || value ==
"Call")
317 ASSIGN(data.option_type, data.OFX_OPTION_TYPE_CALL);
319 else if (value ==
"PUT" || value ==
"Put")
321 ASSIGN(data.option_type, data.OFX_OPTION_TYPE_PUT);
324 else if (identifier ==
"STRIKEPRICE")
328 else if (identifier ==
"DTEXPIRE")
332 else if (identifier ==
"SHPERCTRCT")
344 libofx_context->securityCallback(data);
350 if (MainContainer != NULL)
352 return MainContainer->add_container(
this);