|
|
PropertyDefinition defines a property that will be available within the PropertyUser. More...
#include <ArmarXCore/core/application/properties/PropertyDefinition.h>
Inheritance diagram for PropertyDefinition< PropertyType >:Public Types | |
| typedef std::function< PropertyType(std::string)> | PropertyFactoryFunction |
| using | PropertyTypePtr = std::shared_ptr<PropertyType> |
| using | PropertyValuesMap = std::map<std::string, ValueEntry> |
| using | ValueEntry = std::pair<std::string, PropertyType> |
Public Types inherited from PropertyDefinitionBase | |
| enum | PropertyConstness { eConstant , eModifiable } |
Public Member Functions | |
| bool | expandEnvironmentVariables () const |
| std::string | getDefaultAsString () override |
| PropertyType | getDefaultValue () |
| std::string | getDescription () const |
| PropertyFactoryFunction | getFactory () const |
| std::string | getMatchRegex () const |
| double | getMax () const |
| double | getMin () const |
| std::string | getPropertyName () const |
| PropertyType | getValue (const std::string &prefix, Ice::PropertiesPtr) |
| PropertyValuesMap & | getValueMap () |
| bool | isCaseInsensitive () const |
| bool | isSet (const std::string &prefix, Ice::PropertiesPtr iceProperties) const |
| PropertyDefinition< PropertyType > & | map (const std::map< std::string, PropertyType > &values) |
| template<class T> | |
| std::enable_if_t< std::is_same_v< T, PropertyType > &&!std::is_same_v< T, std::string >, PropertyDefinition< T > & > | map (const std::map< T, std::string > &values) |
| PropertyDefinition< PropertyType > & | map (const std::string &valueString, PropertyType value) |
| Maps a string value onto a value of the specified template type. | |
| template<class T> | |
| std::enable_if_t< meta::properties::MapPropertyValuePlugin< T >::value, PropertyDefinition< PropertyType > & > | map (const T &values) |
| PropertyDefinition (PropertyType *setterRef, const std::string &propertyName, const std::string &description, PropertyDefinitionBase::PropertyConstness constness=PropertyDefinitionBase::eConstant) | |
| Constructs a property definition of a required property. | |
| PropertyDefinition (PropertyType *setterRef, const std::string &propertyName, PropertyType defaultValue, const std::string &description, PropertyDefinitionBase::PropertyConstness constness=PropertyDefinitionBase::eConstant) | |
| Constructs a property definition of an optional property. | |
| PropertyDefinition (std::function< void(const PropertyType &)> setter, const std::string &propertyName, PropertyType defaultValue, const std::string &description, PropertyDefinitionBase::PropertyConstness constness=PropertyDefinitionBase::eConstant) | |
| bool | removeQuotes () const |
| PropertyDefinition< PropertyType > & | setCaseInsensitive (bool isCaseInsensitive) |
| Sets whether the property value matching is case insensitive. | |
| PropertyDefinition< PropertyType > & | setExpandEnvironmentVariables (bool expand) |
| Sets whether for string values environment varbiale expanding should be considered. | |
| PropertyDefinition< PropertyType > & | setFactory (const PropertyFactoryFunction &func) |
| Sets the factory function that creates the specified template type from the actual string value. | |
| PropertyDefinition< PropertyType > & | setMatchRegex (const std::string &expr) |
| Sets the regular expression which the value has to be matched with. | |
| PropertyDefinition< PropertyType > & | setMax (double max) |
| Sets the max allowed numeric value. | |
| template<class T = PropertyType> | |
| PropertyDefinition< PropertyType > & | setMax (std::array< T, 1 > max) |
| PropertyDefinition< PropertyType > & | setMin (double min) |
| Sets the min allowed numeric value. | |
| template<class T = PropertyType> | |
| PropertyDefinition< PropertyType > & | setMin (std::array< T, 1 > min) |
| PropertyDefinition< PropertyType > & | setRemoveQuotes (bool removeQuotes) |
| Sets whether for string values leading and trailing quotes should be removed. | |
| std::string | toString (PropertyDefinitionFormatter &formatter, const std::string &value) override |
| virtual void | writeValueToSetter (const std::string &prefix, Ice::PropertiesPtr) override |
Public Member Functions inherited from PropertyDefinitionBase | |
| bool | isConstant () const |
| bool | isRequired () const |
| bool | isSet (std::string const &prefix, std::string const &propertyName, Ice::PropertiesPtr const &iceProperties) const |
| PropertyDefinitionBase (bool required=true, PropertyConstness constness=eConstant) | |
| virtual | ~PropertyDefinitionBase () |
Static Public Member Functions | |
| static void | removeQuotes (const std::string &input, std::string &output) |
| Checks first and last character of input and in case both are quotes, they are removed and the remaining result is stored in output. | |
Static Public Member Functions inherited from PropertyDefinitionBase | |
| static std::string | icePropertyGet (Ice::PropertiesPtr const &iceProperties, std::string const &key) |
Protected Attributes | |
| bool | caseInsensitive |
| Case sensitivity indicator. | |
| PropertyType | defaultValue |
| Fallback/Default property value. | |
| std::string | description |
| Property description. | |
| bool | expandEnvVars |
| Exand environments variables indicator (standard: true) | |
| PropertyFactoryFunction | factory |
| Builder function. | |
| double | max |
| Upper bound of numeric values (used for numeric value retrieval without mapping) | |
| double | min |
| Lower bound of numeric values (used for numeric value retrieval without mapping) | |
| std::string | propertyName |
| Property name. | |
| PropertyValuesMap | propertyValuesMap |
| Main property map. | |
| std::string | regex |
| Regular expression to approve a required value pattern. | |
| std::optional< std::function< void(const PropertyType &)> > | setter |
| PropertyType * | setterRef |
| Reference to a variable to set. | |
| bool | stringRemoveQuotes |
| Remove leading and trailing quotes indicator (standard: true) First and last character of a string property value are checked for quotes. | |
Protected Attributes inherited from PropertyDefinitionBase | |
| PropertyConstness | constness |
| bool | required |
| If set to true, the property must be explicitely set through configuration parameters. | |
PropertyDefinition defines a property that will be available within the PropertyUser.
PropertyDefinition provides the definition and description of a property that may be definined in a config file or passed via command line as an option. Depending which constructor is used a property is either required or optional. In the latter case a default value has to be specified.
The property specific value type (PropertyType) can be arbitrary, yet it is devided into these three groups which are handled internally differently:
All setters are self referential and therefor can be chained to simplify the implementation and increase the readability.
Definition at line 119 of file PropertyDefinition.h.
| typedef std::function<PropertyType(std::string)> PropertyFactoryFunction |
Definition at line 125 of file PropertyDefinition.h.
| using PropertyTypePtr = std::shared_ptr<PropertyType> |
Definition at line 122 of file PropertyDefinition.h.
| using PropertyValuesMap = std::map<std::string, ValueEntry> |
Definition at line 124 of file PropertyDefinition.h.
| using ValueEntry = std::pair<std::string, PropertyType> |
Definition at line 123 of file PropertyDefinition.h.
| PropertyDefinition | ( | PropertyType * | setterRef, |
| const std::string & | propertyName, | ||
| const std::string & | description, | ||
| PropertyDefinitionBase::PropertyConstness | constness = PropertyDefinitionBase::eConstant ) |
Constructs a property definition of a required property.
| setterRef | Setter |
| propertyName | Name of the property used in config files |
| description | Mandatory property description |
Definition at line 59 of file PropertyDefinition.hpp.
Here is the call graph for this function:
|
inline |
Constructs a property definition of an optional property.
| setterRef | Setter |
| propertyName | Name of the property used in config files |
| defaultValue | Property default value of the type PropertyType |
| description | Mandatory property description |
Definition at line 80 of file PropertyDefinition.hpp.
Here is the call graph for this function:
|
inline |
| bool expandEnvironmentVariables | ( | ) | const |
Definition at line 283 of file PropertyDefinition.hpp.
|
overridevirtual |
Implements PropertyDefinitionBase.
Definition at line 393 of file PropertyDefinition.hpp.
Here is the call graph for this function:
Here is the caller graph for this function:| PropertyType getDefaultValue | ( | ) |
Definition at line 339 of file PropertyDefinition.hpp.
Here is the call graph for this function:
Here is the caller graph for this function:| std::string getDescription | ( | ) | const |
Definition at line 325 of file PropertyDefinition.hpp.
| PropertyDefinition< PropertyType >::PropertyFactoryFunction getFactory | ( | ) | const |
Definition at line 354 of file PropertyDefinition.hpp.
| std::string getMatchRegex | ( | ) | const |
Definition at line 297 of file PropertyDefinition.hpp.
| double getMax | ( | ) | const |
Definition at line 311 of file PropertyDefinition.hpp.
| double getMin | ( | ) | const |
Definition at line 304 of file PropertyDefinition.hpp.
| std::string getPropertyName | ( | ) | const |
| PropertyType getValue | ( | const std::string & | prefix, |
| Ice::PropertiesPtr | iceProperties ) |
Definition at line 488 of file PropertyDefinition.hpp.
Here is the call graph for this function:
Here is the caller graph for this function:| PropertyDefinition< PropertyType >::PropertyValuesMap & getValueMap | ( | ) |
| bool isCaseInsensitive | ( | ) | const |
| bool isSet | ( | const std::string & | prefix, |
| Ice::PropertiesPtr | iceProperties ) const |
|
inline |
Definition at line 148 of file PropertyDefinition.hpp.
|
inline |
Maps a string value onto a value of the specified template type.
Definition at line 130 of file PropertyDefinition.hpp.
Here is the caller graph for this function:
|
inline |
Definition at line 186 of file PropertyDefinition.h.
| bool removeQuotes | ( | ) | const |
|
static |
Checks first and last character of input and in case both are quotes, they are removed and the remaining result is stored in output.
Definition at line 820 of file PropertyDefinition.hpp.
| PropertyDefinition< PropertyType > & setCaseInsensitive | ( | bool | isCaseInsensitive | ) |
Sets whether the property value matching is case insensitive.
| isCaseInsensitive | Case sensitivity state |
Definition at line 181 of file PropertyDefinition.hpp.
Here is the caller graph for this function:| PropertyDefinition< PropertyType > & setExpandEnvironmentVariables | ( | bool | expand | ) |
Sets whether for string values environment varbiale expanding should be considered.
| expand | Expand entries like '${ENV_VAR}' to the according values of the environment. |
Definition at line 215 of file PropertyDefinition.hpp.
| PropertyDefinition< PropertyType > & setFactory | ( | const PropertyFactoryFunction & | func | ) |
Sets the factory function that creates the specified template type from the actual string value.
| func | the factory function |
Definition at line 172 of file PropertyDefinition.hpp.
Here is the caller graph for this function:| PropertyDefinition< PropertyType > & setMatchRegex | ( | const std::string & | expr | ) |
Sets the regular expression which the value has to be matched with.
| expr | Value regular expression |
Definition at line 231 of file PropertyDefinition.hpp.
| PropertyDefinition< PropertyType > & setMax | ( | double | max | ) |
Sets the max allowed numeric value.
| max | Max. allowed value |
Definition at line 258 of file PropertyDefinition.hpp.
Here is the caller graph for this function:
|
inline |
Definition at line 264 of file PropertyDefinition.h.
| PropertyDefinition< PropertyType > & setMin | ( | double | min | ) |
Sets the min allowed numeric value.
| min | Min. allowed value |
Definition at line 240 of file PropertyDefinition.hpp.
Here is the caller graph for this function:
|
inline |
Definition at line 248 of file PropertyDefinition.h.
| PropertyDefinition< PropertyType > & setRemoveQuotes | ( | bool | removeQuotes | ) |
Sets whether for string values leading and trailing quotes should be removed.
| removeQuotes | The indicator. |
Definition at line 223 of file PropertyDefinition.hpp.
Here is the call graph for this function:
|
overridevirtual |
Implements PropertyDefinitionBase.
Definition at line 361 of file PropertyDefinition.hpp.
Here is the call graph for this function:
|
overridevirtual |
Implements PropertyDefinitionBase.
Definition at line 497 of file PropertyDefinition.hpp.
Here is the call graph for this function:
|
protected |
Case sensitivity indicator.
Definition at line 338 of file PropertyDefinition.h.
|
protected |
Fallback/Default property value.
Definition at line 316 of file PropertyDefinition.h.
|
protected |
Property description.
Definition at line 311 of file PropertyDefinition.h.
|
protected |
Exand environments variables indicator (standard: true)
Definition at line 343 of file PropertyDefinition.h.
|
protected |
Builder function.
Definition at line 328 of file PropertyDefinition.h.
|
protected |
Upper bound of numeric values (used for numeric value retrieval without mapping)
Definition at line 358 of file PropertyDefinition.h.
|
protected |
Lower bound of numeric values (used for numeric value retrieval without mapping)
Definition at line 364 of file PropertyDefinition.h.
|
protected |
Property name.
Definition at line 306 of file PropertyDefinition.h.
|
protected |
Main property map.
Definition at line 301 of file PropertyDefinition.h.
|
protected |
Regular expression to approve a required value pattern.
Definition at line 333 of file PropertyDefinition.h.
|
protected |
Definition at line 323 of file PropertyDefinition.h.
|
protected |
Reference to a variable to set.
Definition at line 321 of file PropertyDefinition.h.
|
protected |
Remove leading and trailing quotes indicator (standard: true) First and last character of a string property value are checked for quotes.
E.g. "test" -> test 'test' -> test
Definition at line 352 of file PropertyDefinition.h.