// --------------------------------------------------------------------------- // RangeTokenMap: Initialization methods // --------------------------------------------------------------------------- void RangeTokenMap::initializeRegistry() { // Add categories fCategories->addOrFind(fgXMLCategory); fCategories->addOrFind(fgASCIICategory); fCategories->addOrFind(fgUnicodeCategory); fCategories->addOrFind(fgBlockCategory); // Add xml range factory RangeFactory* rangeFact = new XMLRangeFactory(); fRangeMap->put((void*)fgXMLCategory, rangeFact); rangeFact->initializeKeywordMap(this); // Add ascii range factory rangeFact = new ASCIIRangeFactory(); fRangeMap->put((void*)fgASCIICategory, rangeFact); rangeFact->initializeKeywordMap(this); // Add unicode range factory rangeFact = new UnicodeRangeFactory(); fRangeMap->put((void*)fgUnicodeCategory, rangeFact); rangeFact->initializeKeywordMap(this); // Add block range factory rangeFact = new BlockRangeFactory(); fRangeMap->put((void*)fgBlockCategory, rangeFact); rangeFact->initializeKeywordMap(this); }
// --------------------------------------------------------------------------- // TokenFactory - Helper methods // --------------------------------------------------------------------------- void TokenFactory::initializeRegistry() { if (!fRangeInitialized) { XMLMutexLock lockInit(&gTokenFactoryMutex()); if (!fRangeInitialized) { RangeTokenMap::instance()->initializeRegistry(); // Add categories RangeTokenMap::instance()->addCategory(fgXMLCategory); RangeTokenMap::instance()->addCategory(fgASCIICategory); RangeTokenMap::instance()->addCategory(fgUnicodeCategory); RangeTokenMap::instance()->addCategory(fgBlockCategory); // Add xml range factory RangeFactory* rangeFact = new XMLRangeFactory(); RangeTokenMap::instance()->addRangeMap(fgXMLCategory, rangeFact); rangeFact->initializeKeywordMap(); // Add ascii range factory rangeFact = new ASCIIRangeFactory(); RangeTokenMap::instance()->addRangeMap(fgASCIICategory, rangeFact); rangeFact->initializeKeywordMap(); // Add unicode range factory rangeFact = new UnicodeRangeFactory(); RangeTokenMap::instance()->addRangeMap(fgUnicodeCategory, rangeFact); rangeFact->initializeKeywordMap(); // Add block range factory rangeFact = new BlockRangeFactory(); RangeTokenMap::instance()->addRangeMap(fgBlockCategory, rangeFact); rangeFact->initializeKeywordMap(); fRangeInitialized = true; } } }