#include <BALL/CONCEPT/property.h>
Public Types | |
Enums | |
enum | Type { BOOL, INT, UNSIGNED_INT, FLOAT, DOUBLE, STRING, OBJECT, NONE, SMART_OBJECT } |
Public Member Functions | |
Constructors and Destructors | |
NamedProperty () | |
NamedProperty (const string &name) | |
NamedProperty (const string &name, bool value) | |
NamedProperty (const string &name, int value) | |
NamedProperty (const string &name, unsigned int value) | |
NamedProperty (const string &name, float value) | |
NamedProperty (const string &name, double value) | |
NamedProperty (const string &name, const string &str) | |
NamedProperty (const string &name, PersistentObject &po) | |
NamedProperty (const string &name, boost::shared_ptr< PersistentObject > &po) | |
NamedProperty (const NamedProperty &) | |
~NamedProperty () | |
virtual void | clear () |
Persistence | |
virtual void | persistentWrite (PersistenceManager &pm, const char *name="") const throw (Exception::GeneralException) |
virtual void | persistentRead (PersistenceManager &pm) throw (Exception::GeneralException) |
Accessors | |
Type | getType () const |
Return the type of the data stored in the property object. | |
string | getName () const |
Return the name of the property. | |
bool | getBool () const |
int | getInt () const |
float | getFloat () const |
double | getDouble () const |
unsigned int | getUnsignedInt () const |
PersistentObject * | getObject () const |
boost::shared_ptr < PersistentObject > | getSmartObject () const |
string | getString () const |
Predicates | |
bool | operator== (const NamedProperty &np) const |
bool | operator!= (const NamedProperty &np) const |
void | operator= (const NamedProperty &np) |
Private Attributes | |
Type | type_ |
string | name_ |
boost::any | data_ |
Named Property Class.
The different types of data a NamedProperty may contain.
BOOL |
Bool-type properties can have the value true or false. |
INT |
Int-type properties contain a variable of type int |
UNSIGNED_INT |
Unsigned-int-type properties contain a variable of type unsigned int |
FLOAT |
Float-type properties contain a variable of type double |
DOUBLE |
Double-type properties contain a variable of type double |
STRING |
String-type properties contain a pointer to a string. When destructing the property, the string is destructed, too. |
OBJECT |
Object-type properties contain a pointer to a PersistentObject. Remember to destruct the objects if they are not needed any more! the Destructor of NamedProperty will not delete this object! |
NONE |
Properties of this type do not contain any data. Use this type to indicate that an object has a certain property. The type can be seen as an extension of the bit properties used in PropertyManager except for the user-defined name. |
SMART_OBJECT |
Object-type properties contain a smart pointer to a PersistentObject. Here, destruction will autmatically be handled by the smart pointer implementation. |
BALL::NamedProperty::NamedProperty | ( | ) |
BALL::NamedProperty::NamedProperty | ( | const string & | name | ) |
Standard constructor. Creates an object of type NONE. Use this constructor to create it properties with user defined names. The Type
is set to OBJECT .
name | the propertie's name |
BALL::NamedProperty::NamedProperty | ( | const string & | name, | |
bool | value | |||
) |
Constructor for bool-type properties. Creates a NamedProperty object containing a boolean value. The Type
is set to BOOL .
name | the property's name | |
value | the boolean value stored in the property |
BALL::NamedProperty::NamedProperty | ( | const string & | name, | |
int | value | |||
) |
Constructor for int-type properties. Creates a NamedProperty object containing a signed int value. The Type
is set to INT .
name | the property's name | |
value | the int value stored in the property |
BALL::NamedProperty::NamedProperty | ( | const string & | name, | |
unsigned int | value | |||
) |
Constructor for unsigned int-type properties. Creates a NamedProperty object containing an unsigned int value. The Type
is set to UNSIGNED_INT .
name | the property's name | |
value | the int value stored in the property |
BALL::NamedProperty::NamedProperty | ( | const string & | name, | |
float | value | |||
) |
Constructor for float-type properties. Creates a NamedProperty object containing a float value. The Type
is set to FLOAT .
name | the property's name | |
value | the float value stored in the property |
BALL::NamedProperty::NamedProperty | ( | const string & | name, | |
double | value | |||
) |
Constructor for double-type properties. Creates a NamedProperty object containing a double value. The Type
is set to DOUBLE .
name | the property's name | |
value | the double value stored in the property |
BALL::NamedProperty::NamedProperty | ( | const string & | name, | |
const string & | str | |||
) |
Constructor for string-type properties. Objects of type STRING contain a pointer to a string object. This object is constructed as a copy of str
The Type
is set to STRING .
name | the property's name | |
str | the string stored in the property |
BALL::NamedProperty::NamedProperty | ( | const string & | name, | |
PersistentObject & | po | |||
) |
Constructor for object-type properties. Creates a NamedProperty object containing a pointer to a persistent object. The Type
is set to OBJECT .
name | the property's name | |
po | a reference to the persistent object stored in the property |
BALL::NamedProperty::NamedProperty | ( | const string & | name, | |
boost::shared_ptr< PersistentObject > & | po | |||
) |
Constructor for smart-pointer handled object-type properties. Creates a NamedProperty object containing a smart pointer to a persistent object. The Type
is set to SMART_OBJECT .
name | the property's name | |
ptr | a smart pointer to the persistent object |
BALL::NamedProperty::NamedProperty | ( | const NamedProperty & | ) |
Copy constructor
BALL::NamedProperty::~NamedProperty | ( | ) |
Destructor . The destructor destructs the contained data in the case of STRING-type properties only.
virtual void BALL::NamedProperty::clear | ( | ) | [virtual] |
Clear method
Reimplemented from BALL::Object.
bool BALL::NamedProperty::getBool | ( | ) | const |
Return the data of the property object as bool. If the property object is not of BOOL type, false is returned.
double BALL::NamedProperty::getDouble | ( | ) | const |
Return the data of the property object as double. If the property object is not of DOUBLE type, 0.0 is returned.
float BALL::NamedProperty::getFloat | ( | ) | const |
Return the data of the property object as float. If the property object is not of FLOAT type, 0.0 is returned.
int BALL::NamedProperty::getInt | ( | ) | const |
Return the data of the property object as int. If the property object is not of INT type, 0 is returned.
string BALL::NamedProperty::getName | ( | ) | const |
Return the name of the property.
PersistentObject* BALL::NamedProperty::getObject | ( | ) | const |
Return the data of the property object as a pointer to a PersistentObject. If the property object is not of OBJECT type, 0 is returned.
boost::shared_ptr<PersistentObject> BALL::NamedProperty::getSmartObject | ( | ) | const |
Return the data of the property object as a smart pointer to a PersistentObject. If the property object is not of SMART_OBJECT type, 0 is returned.
string BALL::NamedProperty::getString | ( | ) | const |
Return the data of the property object as a string. If the property object is not of STRING type, "" is returned.
Type BALL::NamedProperty::getType | ( | ) | const |
Return the type of the data stored in the property object.
unsigned int BALL::NamedProperty::getUnsignedInt | ( | ) | const |
Return the data of the property object as unsigned int. If the property object is not of UNSIGNED_INT type, 0 is returned.
bool BALL::NamedProperty::operator!= | ( | const NamedProperty & | np | ) | const |
Inequality operator
void BALL::NamedProperty::operator= | ( | const NamedProperty & | np | ) |
copy operator
bool BALL::NamedProperty::operator== | ( | const NamedProperty & | np | ) | const |
Equality operator Two instances are equal if they have the same name and the same value.
virtual void BALL::NamedProperty::persistentRead | ( | PersistenceManager & | pm | ) | throw (Exception::GeneralException) [virtual] |
Retrieve a persistent copy of the object
Reimplemented from BALL::PersistentObject.
virtual void BALL::NamedProperty::persistentWrite | ( | PersistenceManager & | pm, | |
const char * | name = "" | |||
) | const throw (Exception::GeneralException) [virtual] |
Write a persistent copy of the object.
Reimplemented from BALL::PersistentObject.
boost::any BALL::NamedProperty::data_ [private] |
string BALL::NamedProperty::name_ [private] |
Type BALL::NamedProperty::type_ [private] |