BALL::NamedProperty Class Reference

#include <BALL/CONCEPT/property.h>

Inheritance diagram for BALL::NamedProperty:
BALL::PersistentObject BALL::Object BALL::AutoDeletable

List of all members.


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
PersistentObjectgetObject () 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_

Detailed Description

Named Property Class.


Member Enumeration Documentation

The different types of data a NamedProperty may contain.

Enumerator:
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.


Constructor & Destructor Documentation

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 .

Parameters:
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 .

Parameters:
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 .

Parameters:
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 .

Parameters:
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 .

Parameters:
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 .

Parameters:
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 .

Parameters:
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 .

Parameters:
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 .

Parameters:
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.


Member Function Documentation

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

See also:
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.


Member Data Documentation

boost::any BALL::NamedProperty::data_ [private]
string BALL::NamedProperty::name_ [private]