BundleDescriptorReader::PointExtensionsPairType BundleDescriptorReader::processPoint(xmlNodePtr node, const ::boost::shared_ptr<Bundle> bundle) throw(RuntimeException) { // Creates the extension instance. xmlAttrPtr curAttr; std::string schema; std::string identifier; for(curAttr = node->properties; curAttr != 0; curAttr = curAttr->next) { if(xmlStrcmp(curAttr->name, (const xmlChar*) ID.c_str()) == 0) { identifier = (const char*) curAttr->children->content; continue; } if(xmlStrcmp(curAttr->name, (const xmlChar*) SCHEMA.c_str()) == 0) { schema = (const char*) curAttr->children->content; continue; } } ::boost::shared_ptr<ExtensionPoint> extensionPoint(new ExtensionPoint(bundle, identifier, schema)); // Processes child nodes which declare identifier as extensions. std::vector< ::boost::shared_ptr<Extension> > extensionContainer ; xmlNodePtr curChild; for(curChild = node->children; curChild != 0; curChild = curChild->next) { if(curChild->type == XML_ELEMENT_NODE) { if( xmlStrcmp(curChild->name, (const xmlChar*) IMPLEMENTS.c_str()) == 0 ) { std::string extensionId = (const char*) curChild->children->content ; ::boost::shared_ptr<Extension> extension(new Extension(bundle, identifier , extensionId, curChild)); extensionContainer.push_back( extension ) ; } } } return PointExtensionsPairType( extensionPoint, extensionContainer ) ; }
QList<SmartPointer<IExtensionPoint> > CombinedEventDelta::GetExtensionPoints(const IExtensionPointFilter& filter) const { QList<int> extensionPoints; if (!filter.IsNull() && !d->extPointsByID.isEmpty()) { extensionPoints = FilterExtensionPoints(filter); } else if (filter.IsNull()) { extensionPoints = d->allExtensionPoints; } if (extensionPoints.isEmpty()) // no changes that fit the filter return QList<IExtensionPoint::Pointer>(); QList<IExtensionPoint::Pointer> result; for (int i = 0; i < extensionPoints.size(); ++i) { int extPt = extensionPoints[i]; IExtensionPoint::Pointer extensionPoint(new ExtensionPointHandle(d->objectManager, extPt)); result.push_back(extensionPoint); } return result; }