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);