コード例 #1
0
        // find all trade IDs by party herf id
        private ListMultimap <string, StandardId> parseAllTradeIds(XmlElement tradeHeaderEl)
        {
            // look through each partyTradeIdentifier
            ListMultimap <string, StandardId> allIds   = ArrayListMultimap.create();
            IList <XmlElement> partyTradeIdentifierEls = tradeHeaderEl.getChildren("partyTradeIdentifier");

            foreach (XmlElement partyTradeIdentifierEl in partyTradeIdentifierEls)
            {
                Optional <XmlElement> partyRefOptEl = partyTradeIdentifierEl.findChild("partyReference");
                if (partyRefOptEl.Present && partyRefOptEl.get().findAttribute(HREF).Present)
                {
                    string partyHref = partyRefOptEl.get().findAttribute(HREF).get();
                    // try to find a tradeId, either in versionedTradeId or as a direct child
                    Optional <XmlElement> vtradeIdOptEl = partyTradeIdentifierEl.findChild("versionedTradeId");
                    Optional <XmlElement> tradeIdOptEl  = vtradeIdOptEl.map(vt => vt.getChild("tradeId")).orElse(partyTradeIdentifierEl.findChild("tradeId"));
                    if (tradeIdOptEl.Present && tradeIdOptEl.get().findAttribute("tradeIdScheme").Present)
                    {
                        XmlElement tradeIdEl = tradeIdOptEl.get();
                        string     scheme    = tradeIdEl.getAttribute("tradeIdScheme");
                        // ignore if there is an empty scheme or value
                        if (scheme.Length > 0 && tradeIdEl.Content.Length > 0)
                        {
                            allIds.put(partyHref, StandardId.of(StandardId.encodeScheme(scheme), tradeIdEl.Content));
                        }
                    }
                }
            }
            return(allIds);
        }