//--------------------------------------------------------------------------- // @function: // CParseHandlerSearchStrategy::EndElement // // @doc: // Invoked by Xerces to process a closing tag // //--------------------------------------------------------------------------- void CParseHandlerSearchStrategy::EndElement ( const XMLCh* const, // xmlstrUri, const XMLCh* const xmlstrLocalname, const XMLCh* const // xmlstrQname ) { if (0 != XMLString::compareString(CDXLTokens::XmlstrToken(EdxltokenSearchStrategy), xmlstrLocalname)) { CWStringDynamic *pstr = CDXLUtils::PstrFromXMLCh(m_pphm->Pmm(), xmlstrLocalname); GPOS_RAISE(gpdxl::ExmaDXL, gpdxl::ExmiDXLUnexpectedTag, pstr->Wsz()); } const ULONG ulSize = this->UlLength(); for (ULONG ul = 0; ul < ulSize; ul++) { CParseHandlerSearchStage *pphSearchStage = dynamic_cast<CParseHandlerSearchStage*>((*this)[ul]); CXformSet *pxfs = pphSearchStage->Pxfs(); pxfs->AddRef(); CSearchStage *pss = GPOS_NEW(m_pmp) CSearchStage(pxfs, pphSearchStage->UlTimeThreshold(), pphSearchStage->CostThreshold()); m_pdrgpss->Append(pss); } // deactivate handler m_pphm->DeactivateHandler(); }