31 const std::string &className,
34 if (propertyName.empty())
37 ExtensionMap &extensions = m_Extensions[className];
38 std::pair<ExtensionMapIterator, bool> ret = extensions.insert(std::make_pair(propertyName, extension));
40 if (!ret.second && overwrite)
42 ret.first->second = extension;
50 const std::string &className)
52 if (!propertyName.empty())
54 ExtensionMap &extensions = m_Extensions[className];
55 ExtensionMapConstIterator iter = extensions.find(propertyName);
57 if (iter != extensions.end())
66 const ExtensionMap &extensions = m_Extensions[className];
68 return !propertyName.empty() ? extensions.find(propertyName) != extensions.end() :
false;
73 m_Extensions[className].clear();
78 if (!propertyName.empty())
79 m_Extensions[className].erase(propertyName);
PropertyExtension::Pointer GetExtension(const std::string &propertyName, const std::string &className) override
Get the extension of a specific property.
void RemoveExtension(const std::string &propertyName, const std::string &className) override
Remove extension of a specific property.
bool HasExtension(const std::string &propertyName, const std::string &className) override
Check if a specific property has an extension.
void RemoveAllExtensions(const std::string &className) override
Remove all property extensions.
bool AddExtension(const std::string &propertyName, PropertyExtension::Pointer extension, const std::string &className, bool overwrite) override
Add an extension to a specific property.