The Gaudi Framework  master (37c0b60a)
IProperty Class Referenceabstract

#include <GaudiKernel/IProperty.h>

Inheritance diagram for IProperty:
Collaboration diagram for IProperty:

Public Member Functions

 DeclareInterfaceID (IProperty, 3, 0)
 InterfaceID. More...
 
StatusCode setProperty (const Gaudi::Details::PropertyBase &p)
 Set the property from a property. More...
 
virtual StatusCode setProperty (const std::string &name, const Gaudi::Details::PropertyBase &p)=0
 Set the property from a property with a different name. More...
 
virtual StatusCode setProperty (const std::string &s)=0
 Set the property by string. More...
 
virtual StatusCode setPropertyRepr (const std::string &n, const std::string &r)=0
 Set the property by name and value representation. More...
 
StatusCode setProperty (const std::string &name, const char *v)
 Special case for string literals. More...
 
StatusCode setProperty (const std::string &name, const std::string &v)
 Special case for std::string. More...
 
template<class TYPE , typename = std::enable_if_t<!std::is_base_of_v<Gaudi::Details::PropertyBase, TYPE>>>
StatusCode setProperty (const std::string &name, const TYPE &value)
 set the property form the value More...
 
virtual StatusCode getProperty (Gaudi::Details::PropertyBase *p) const =0
 Get the property by property. More...
 
virtual const Gaudi::Details::PropertyBasegetProperty (std::string_view name) const =0
 Get the property by name. More...
 
virtual StatusCode getProperty (std::string_view n, std::string &v) const =0
 Get the property by std::string. More...
 
virtual const std::vector< Gaudi::Details::PropertyBase * > & getProperties () const =0
 Get list of properties. More...
 
virtual bool hasProperty (std::string_view name) const =0
 Return true if we have a property with the given name. More...
 
- Public Member Functions inherited from IInterface
virtual void * i_cast (const InterfaceID &) const =0
 main cast function More...
 
virtual std::vector< std::stringgetInterfaceNames () const =0
 Returns a vector of strings containing the names of all the implemented interfaces. More...
 
virtual unsigned long addRef ()=0
 Increment the reference count of Interface instance. More...
 
virtual unsigned long release ()=0
 Release Interface instance. More...
 
virtual unsigned long refCount () const =0
 Current reference count. More...
 
virtual StatusCode queryInterface (const InterfaceID &ti, void **pp)=0
 Set the void** to the pointer to the requested interface of the instance. More...
 
virtual ~IInterface ()=default
 Virtual destructor. More...
 

Additional Inherited Members

- Public Types inherited from IInterface
enum  Status : StatusCode::code_t {
  Status::FAILURE = 0, Status::SUCCESS = 1, Status::NO_INTERFACE, Status::VERSMISMATCH,
  Status::LAST_ERROR
}
 Return status. More...
 
using iid = Gaudi::InterfaceId< IInterface, 0, 0 >
 Interface ID. More...
 
using ext_iids = Gaudi::interface_list< iid >
 Extra interfaces. More...
 
- Static Public Member Functions inherited from IInterface
static const InterfaceIDinterfaceID ()
 Return an instance of InterfaceID identifying the interface. More...
 

Detailed Description

The IProperty is the basic interface for all components which have properties that can be set or get.

Author
Paul Maley
Pere Mato
Date
29/10/98

Definition at line 33 of file IProperty.h.

Member Function Documentation

◆ DeclareInterfaceID()

IProperty::DeclareInterfaceID ( IProperty  ,
,
 
)

◆ getProperties()

virtual const std::vector<Gaudi::Details::PropertyBase*>& IProperty::getProperties ( ) const
pure virtual

Get list of properties.

◆ getProperty() [1/3]

virtual StatusCode IProperty::getProperty ( Gaudi::Details::PropertyBase p) const
pure virtual

Get the property by property.

◆ getProperty() [2/3]

virtual StatusCode IProperty::getProperty ( std::string_view  n,
std::string v 
) const
pure virtual

Get the property by std::string.

◆ getProperty() [3/3]

virtual const Gaudi::Details::PropertyBase& IProperty::getProperty ( std::string_view  name) const
pure virtual

Get the property by name.

◆ hasProperty()

virtual bool IProperty::hasProperty ( std::string_view  name) const
pure virtual

Return true if we have a property with the given name.

◆ setProperty() [1/6]

StatusCode IProperty::setProperty ( const Gaudi::Details::PropertyBase p)
inline

Set the property from a property.

Definition at line 39 of file IProperty.h.

39 { return setProperty( p.name(), p ); }

◆ setProperty() [2/6]

StatusCode IProperty::setProperty ( const std::string name,
const char *  v 
)
inline

Special case for string literals.

Definition at line 47 of file IProperty.h.

47 { return setProperty( name, std::string{ v } ); }

◆ setProperty() [3/6]

virtual StatusCode IProperty::setProperty ( const std::string name,
const Gaudi::Details::PropertyBase p 
)
pure virtual

Set the property from a property with a different name.

◆ setProperty() [4/6]

StatusCode IProperty::setProperty ( const std::string name,
const std::string v 
)
inline

Special case for std::string.

Definition at line 49 of file IProperty.h.

49  {
50  if ( !hasProperty( name ) ) return StatusCode::FAILURE;
51  return setPropertyRepr( name, v );
52  }

◆ setProperty() [5/6]

template<class TYPE , typename = std::enable_if_t<!std::is_base_of_v<Gaudi::Details::PropertyBase, TYPE>>>
StatusCode IProperty::setProperty ( const std::string name,
const TYPE &  value 
)
inline

set the property form the value

std::vector<double> data = ... ;
setProperty( "Data" , data ) ;
setProperty( "Cuts" , cuts ) ;
setProperty( "Dictionary" , dict ) ;

Note: the interface IProperty allows setting of the properties either directly from other properties or from strings only

This is very convenient in resetting of the default properties in the derived classes.

Parameters
namename of the property
valuevalue of the property
See also
Gaudi::Utils::setProperty
Author
Vanya BELYAEV ibely.nosp@m.aev@.nosp@m.physi.nosp@m.cs.s.nosp@m.yr.ed.nosp@m.u
Date
2007-05-13

Definition at line 82 of file IProperty.h.

82  {
84  if ( !hasProperty( name ) ) return StatusCode::FAILURE;
85  return setPropertyRepr( name, toString( value ) );
86  }

◆ setProperty() [6/6]

virtual StatusCode IProperty::setProperty ( const std::string s)
pure virtual

Set the property by string.

◆ setPropertyRepr()

virtual StatusCode IProperty::setPropertyRepr ( const std::string n,
const std::string r 
)
pure virtual

Set the property by name and value representation.


The documentation for this class was generated from the following file:
Gaudi::Details::PropertyBase::name
const std::string name() const
property name
Definition: PropertyBase.h:39
std::string
STL class.
std::vector< double >
IProperty::hasProperty
virtual bool hasProperty(std::string_view name) const =0
Return true if we have a property with the given name.
std::map< std::string, double >
Gaudi::Utils::toString
std::string toString(const TYPE &obj)
the generic implementation of the type conversion to the string
Definition: ToStream.h:353
ConditionsStallTest.name
name
Definition: ConditionsStallTest.py:77
Properties.v
v
Definition: Properties.py:122
StatusCode::FAILURE
constexpr static const auto FAILURE
Definition: StatusCode.h:101
IProperty::setPropertyRepr
virtual StatusCode setPropertyRepr(const std::string &n, const std::string &r)=0
Set the property by name and value representation.
IProperty::setProperty
StatusCode setProperty(const Gaudi::Details::PropertyBase &p)
Set the property from a property.
Definition: IProperty.h:39