MCPcopy Create free account
hub / github.com/FreeCAD/FreeCAD / registerExtension

Method registerExtension

src/App/ExtensionContainer.cpp:55–73  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

53}
54
55void ExtensionContainer::registerExtension(Base::Type extension, Extension* ext)
56{
57 if (ext->getExtendedContainer() != this) {
58 throw Base::ValueError(
59 "ExtensionContainer::registerExtension: Extension has not this as base object");
60 }
61
62 // no duplicate extensions (including base classes)
63 if (hasExtension(extension)) {
64 for (const auto& entry : _extensions) {
65 if (entry.first == extension || entry.first.isDerivedFrom(extension)) {
66 _extensions.erase(entry.first);
67 break;
68 }
69 }
70 }
71
72 _extensions[extension] = ext;
73}
74
75bool ExtensionContainer::hasExtension(Base::Type type, bool derived) const
76{

Callers 1

initExtensionMethod · 0.80

Calls 3

hasExtensionFunction · 0.50
isDerivedFromMethod · 0.45
eraseMethod · 0.45

Tested by

no test coverage detected