void NclLayoutConverter::addImportBaseToRegionBase( void *parentObject, void *childObject) { map<int, RegionBase*>* bases; map<int, RegionBase*>::iterator i; string baseAlias, baseLocation; NclDocumentConverter *compiler; NclDocument *importedDocument; // get the external base alias and location baseAlias = XMLString::transcode(((DOMElement*)childObject)-> getAttribute(XMLString::transcode("alias"))); baseLocation = XMLString::transcode(((DOMElement*)childObject)-> getAttribute(XMLString::transcode("documentURI")) ); compiler = (NclDocumentConverter*)getDocumentParser(); importedDocument = compiler->importDocument(baseLocation); if (importedDocument == NULL) { return; } bases = importedDocument->getRegionBases(); if (bases == NULL || bases->empty()) { return; } // insert the imported base into the document region base i = bases->begin(); while (i != bases->end()) { ((RegionBase*) parentObject)->addBase( i->second, baseAlias, baseLocation); ++i; } }
void NclLayoutConverter::addImportBaseToRegionBase( void *parentObject, void *childObject ) { std::map<int, bptnl::RegionBase*>* bases; std::map<int, bptnl::RegionBase*>::iterator i; std::string baseAlias, baseLocation; NclDocumentConverter *compiler; bptn::NclDocument *importedDocument; bptcf::XMLChHandler* xmlHndl = getXmlHandler(); // get the external base alias and location baseAlias = xmlHndl->getStr( ((DOMElement*) childObject)->getAttribute( xmlHndl->getXMLCh( "alias" ) ) ); baseLocation = xmlHndl->getStr( ((DOMElement*) childObject)->getAttribute( xmlHndl->getXMLCh( "documentURI" ) ) ); compiler = (NclDocumentConverter*) getDocumentParser(); importedDocument = compiler->importDocument( baseLocation ); //TODO memory leak if (importedDocument == NULL) { return; } bases = importedDocument->getRegionBases(); if (bases == NULL || bases->empty()) { return; } // insert the imported base into the document region base i = bases->begin(); while (i != bases->end()) { ((bptnl::RegionBase*) parentObject)->addBase( i->second, baseAlias, baseLocation ); ++i; } }