XMLElementDecl* DTDGrammar::putElemDecl (const unsigned int uriId , const XMLCh* const , const XMLCh* const , const XMLCh* const qName , unsigned int , const bool notDeclared) { DTDElementDecl* retVal = new (fMemoryManager) DTDElementDecl ( qName , uriId , DTDElementDecl::Any , fMemoryManager ); if(notDeclared) { if(!fElemNonDeclPool) fElemNonDeclPool = new (fMemoryManager) NameIdPool<DTDElementDecl>(29, 128, fMemoryManager); retVal->setId(fElemNonDeclPool->put(retVal)); } else { retVal->setId(fElemDeclPool->put(retVal)); } return retVal; }
// ----------------------------------------------------------------------- // Virtual methods // ----------------------------------------------------------------------- XMLElementDecl* DTDGrammar::findOrAddElemDecl (const unsigned int uriId , const XMLCh* const baseName , const XMLCh* const , const XMLCh* const qName , unsigned int scope , bool& wasAdded ) { // See it it exists DTDElementDecl* retVal = (DTDElementDecl*) getElemDecl(uriId, baseName, qName, scope); // if not, then add this in if (!retVal) { retVal = new (fMemoryManager) DTDElementDecl ( qName , uriId , DTDElementDecl::Any , fMemoryManager ); if(!fElemNonDeclPool) fElemNonDeclPool = new (fMemoryManager) NameIdPool<DTDElementDecl>(29, 128, fMemoryManager); const unsigned int elemId = fElemNonDeclPool->put(retVal); retVal->setId(elemId); wasAdded = true; } else { wasAdded = false; } return retVal; }