|
#include <ArmarXCore/core/application/properties/IceProperties.h>
Public Types | |
using | NamespaceMap = std::map< std::string, bool > |
Public Member Functions | |
void | extractNamespaces (const Ice::PropertiesPtr &properties, NamespaceMap &namespaces) |
Extracts all existing namespace within the passed property container. More... | |
std::string | getParent (const std::string &childNamespace, const Ice::PropertiesPtr &properties) |
Returns the parent namespace of a child namespace. More... | |
bool | hasParent (const std::string &childNamespace, const Ice::PropertiesPtr &properties) |
Checks whether the specified namespace has a parent which it inherits from. More... | |
void | inherit (const std::string &childNamespace, const std::string &parentNamespace, Ice::PropertiesPtr &properties, std::vector< std::string > heritageLine) |
Performs the inheritance of properties from parentNamespace to childNamespace. More... | |
bool | isInHeritageLine (const std::vector< std::string > &heritageLine, const std::string &namespace_) |
Checks whether the specified namespace exists already in the heritageLine. More... | |
void | resolveInheritance (Ice::PropertiesPtr &properties) |
Resolves all inheritance specifications made using the config notation "<namespace>.inheritFrom = <namespace>" while <namespace> is <domain>. More... | |
void | resolveNamespaceInheritance (const std::string &childNamespace, Ice::PropertiesPtr &properties) |
Resolves namespace inheritance for a specific namespace. More... | |
std::string | stripNamespace (const std::string &propertyName, const std::string &namespace_) |
Removes the namespace of the property name. More... | |
~InheritanceSolver () override | |
Definition at line 210 of file IceProperties.h.
using NamespaceMap = std::map<std::string, bool> |
Definition at line 214 of file IceProperties.h.
|
override |
Definition at line 223 of file IceProperties.cpp.
void extractNamespaces | ( | const Ice::PropertiesPtr & | properties, |
NamespaceMap & | namespaces | ||
) |
Extracts all existing namespace within the passed property container.
More simply it extracts all existing prefixes.
[in] | properties | Input property container |
[out] | namespaces | Extracted properties |
Definition at line 244 of file IceProperties.cpp.
std::string getParent | ( | const std::string & | childNamespace, |
const Ice::PropertiesPtr & | properties | ||
) |
Returns the parent namespace of a child namespace.
[in] | childNamespace | Child namespace. |
[in] | properties | Input properties containing inheritance specifications. |
Definition at line 280 of file IceProperties.cpp.
bool hasParent | ( | const std::string & | childNamespace, |
const Ice::PropertiesPtr & | properties | ||
) |
Checks whether the specified namespace has a parent which it inherits from.
The inheritance is specified via a property as follows: <childNamespace>.inheritFrom = <parentNamespace>.
<childNamespace> can be anything. Usually it consists of the <domain> and <object-name>.
[in] | childNamespace | Child namespace. |
[in] | properties | Input properties containing inheritance specifications. |
Definition at line 266 of file IceProperties.cpp.
void inherit | ( | const std::string & | childNamespace, |
const std::string & | parentNamespace, | ||
Ice::PropertiesPtr & | properties, | ||
std::vector< std::string > | heritageLine | ||
) |
Performs the inheritance of properties from parentNamespace to childNamespace.
[in] | childNamespace | Namespace requiring inheritance |
[in] | parentNamespace | Parent namespace to inherit from. |
properties | Input and output properties | |
heritageLine | Heritage line vector. This is used to detect inheritance cycles. |
Definition at line 323 of file IceProperties.cpp.
bool isInHeritageLine | ( | const std::vector< std::string > & | heritageLine, |
const std::string & | namespace_ | ||
) |
Checks whether the specified namespace exists already in the heritageLine.
[in] | heritageLine | Heritage line vector |
[in] | namespace | The namespace to look for |
Definition at line 288 of file IceProperties.cpp.
void resolveInheritance | ( | Ice::PropertiesPtr & | properties | ) |
Resolves all inheritance specifications made using the config notation "<namespace>.inheritFrom = <namespace>" while <namespace> is <domain>.
<object-name>.
properties | The properties with inheritance specifications. The resolved inheritance is done within this property contain as well. |
Definition at line 228 of file IceProperties.cpp.
void resolveNamespaceInheritance | ( | const std::string & | childNamespace, |
Ice::PropertiesPtr & | properties | ||
) |
Resolves namespace inheritance for a specific namespace.
This will resolve all inheritance specifications of it's parent namespace.
[in] | childNamespace | Namespace requiring inheritance |
properties | Input and output properties |
Definition at line 312 of file IceProperties.cpp.
std::string stripNamespace | ( | const std::string & | propertyName, |
const std::string & | namespace_ | ||
) |
Removes the namespace of the property name.
"<namespace>.<property-name> = <propertyValue>" becomes "<property-name> = <property-value>".
Definition at line 306 of file IceProperties.cpp.