|
|
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.
| 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> |
| 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 |
|
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 |
|
inline |
| bool expandEnvironmentVariables | ( | ) | const |
|
overridevirtual |
Implements PropertyDefinitionBase.
| PropertyType getDefaultValue | ( | ) |
| std::string getDescription | ( | ) | const |
| PropertyDefinition< PropertyType >::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 | iceProperties ) |
| PropertyDefinition< PropertyType >::PropertyValuesMap & getValueMap | ( | ) |
| bool isCaseInsensitive | ( | ) | const |
| bool isSet | ( | const std::string & | prefix, |
| Ice::PropertiesPtr | iceProperties ) const |
|
inline |
|
inline |
|
inline |
|
inline |
| 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.
| PropertyDefinition< PropertyType > & setCaseInsensitive | ( | bool | isCaseInsensitive | ) |
Sets whether the property value matching is case insensitive.
| isCaseInsensitive | Case sensitivity state |
| 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. |
| 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 |
| PropertyDefinition< PropertyType > & setMatchRegex | ( | const std::string & | expr | ) |
Sets the regular expression which the value has to be matched with.
| expr | Value regular expression |
| PropertyDefinition< PropertyType > & setMax | ( | double | max | ) |
Sets the max allowed numeric value.
| max | Max. allowed value |
|
inline |
| PropertyDefinition< PropertyType > & setMin | ( | double | min | ) |
Sets the min allowed numeric value.
| min | Min. allowed value |
|
inline |
| PropertyDefinition< PropertyType > & setRemoveQuotes | ( | bool | removeQuotes | ) |
Sets whether for string values leading and trailing quotes should be removed.
| removeQuotes | The indicator. |
|
overridevirtual |
Implements PropertyDefinitionBase.
|
overridevirtual |
Implements PropertyDefinitionBase.
|
protected |
Case sensitivity indicator.
|
protected |
Fallback/Default property value.
|
protected |
Property description.
|
protected |
Exand environments variables indicator (standard: true)
|
protected |
Builder function.
|
protected |
Upper bound of numeric values (used for numeric value retrieval without mapping)
|
protected |
Lower bound of numeric values (used for numeric value retrieval without mapping)
|
protected |
Property name.
|
protected |
Main property map.
|
protected |
Regular expression to approve a required value pattern.
|
protected |
|
protected |
Reference to a variable to set.
|
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