BALL::PropertyManager Class Reference
#include <BALL/CONCEPT/property.h>
List of all members.
Detailed Description
Property Manager class. This class manages properties of a class. A property can be seen as easy way to extend the class BALL_EXPORT' attributes without changing its interface. There are different types of properties defined depending on the kind of data stored. The simplest kind of property is just stored as a boolean information: Either an object has a certain property, or it does not. These properties are obviously coded as a BitVector. However the meaning of the different bits has to be defined and the uniqueness of this meaning has to be guaranteed. In order to avoid this, all kernel classes derived from PropertyManager contain a public enum that defines a value NUMBER_OF_PROPERTIES. All user defined properties should refer to this constant (e.g. by defining MY_PROPERTY = Molecule::NUMBER_OF_PROPERTIES + 1
).
- The second way of storing properties is much more flexible, but less efficient. It uses the class NamedProperty that also allows to store additional information along with the property. In this case, each property is accessed via a unique name.
- Interface: Storable
Definition at line 338 of file property.h.
Constructor & Destructor Documentation
BALL_INLINE BALL::PropertyManager::PropertyManager |
( |
|
) |
|
BALL_INLINE BALL::PropertyManager::PropertyManager |
( |
const PropertyManager & |
property_manager |
) |
|
virtual BALL::PropertyManager::~PropertyManager |
( |
|
) |
[virtual] |
Member Function Documentation
Return an iterator to the first NamedProperty stored in this container.
virtual void BALL::PropertyManager::clear |
( |
|
) |
[virtual] |
Clears all properties.
Reimplemented in BALL::PDBFile, BALL::Atom, BALL::AtomContainer, BALL::Bond, BALL::NucleicAcid, BALL::Nucleotide, BALL::PDBAtom, BALL::Protein, BALL::Residue, BALL::SecondaryStructure, BALL::VIEW::Representation, BALL::VIEW::AtomBondModelBaseProcessor, BALL::VIEW::AddBackboneModel, BALL::VIEW::AddBallAndStickModel, BALL::VIEW::HBondModelProcessor, BALL::VIEW::ModelProcessor, and BALL::VIEW::AddSurfaceModel.
void BALL::PropertyManager::clearProperty |
( |
const string & |
name |
) |
|
Remove a named property. If the named property name
does exist, it is remove from the array of properties.
- Parameters:
-
| name | the name of the property to be removed |
void BALL::PropertyManager::clearProperty |
( |
Property |
property |
) |
|
Clear a property. This method clears an unnamed property of a PropertyManager object by calling BitVector::clearBit(property)
for the private bit vector.
- Parameters:
-
| property | the number of the property to be cleared |
Size BALL::PropertyManager::countNamedProperties |
( |
|
) |
const |
Return the number of named properties.
- Returns:
- Size the number of named properties stored in the ProprtyManager object
Size BALL::PropertyManager::countProperties |
( |
|
) |
const |
Count all properties. This method returns the sum of unnamed and named properties. It counts the number of ones in the bit vector and the number of properties stored in the named property vector.
virtual void BALL::PropertyManager::destroy |
( |
|
) |
[virtual] |
void BALL::PropertyManager::dump |
( |
std::ostream & |
s = std::cout , |
|
|
Size |
depth = 0 | |
|
) |
| | const |
Internal state dump. Dump the current internal state of {*this} to the output ostream s with dumping depth depth .
- Parameters:
-
| s | - output stream where to output the internal state of {*this} |
| depth | - the dumping depth |
Reimplemented in BALL::Atom, BALL::AtomContainer, BALL::Bond, BALL::Chain, BALL::Fragment, BALL::Molecule, BALL::NucleicAcid, BALL::Nucleotide, BALL::PDBAtom, BALL::Protein, BALL::Residue, BALL::SecondaryStructure, BALL::VIEW::Representation, BALL::VIEW::AtomBondModelBaseProcessor, BALL::VIEW::AddBackboneModel, BALL::VIEW::AddBallAndStickModel, BALL::VIEW::AddLineModel, BALL::VIEW::ModelProcessor, BALL::VIEW::AddSurfaceModel, and BALL::VIEW::AddVanDerWaalsModel.
Return an iterator past the last NamedProperty stored in this container.
void BALL::PropertyManager::get |
( |
PropertyManager & |
property_manager |
) |
const |
Assign properties to another property manager. This method copies the contents of the PropertyManager object to the given property_manager
.
- Parameters:
-
| property_manager | the target object |
const BitVector& BALL::PropertyManager::getBitVector |
( |
|
) |
const |
Return a const reference to the bit vector containing the unnamed properties. This method returns the bit vector containing the unnamed properties of the property manager.
- Returns:
- BitVector& a const reference to the (private) BitVector containing the unnamed properties
BitVector& BALL::PropertyManager::getBitVector |
( |
|
) |
|
Return a mutable reference to the bit vector. This method returns the bit vector containing the unnamed properties of the property manager.
- Returns:
- BitVector& a mutable reference to the (private) BitVector containing the unnamed properties
Mutable access to a named property by its index.
Non-mutable access to a named property by its index.
const NamedProperty& BALL::PropertyManager::getProperty |
( |
const string & |
name |
) |
const |
Retrieve a named property. If the property manager contains a property named name
this property is returned. An empty property is returned otherwise.
- Parameters:
-
| name | the name of the proeprty to be retrieved |
bool BALL::PropertyManager::hasProperty |
( |
const string & |
name |
) |
const |
Query for a named property.
bool BALL::PropertyManager::hasProperty |
( |
Property |
property |
) |
const |
Query for an unnamed property.
bool BALL::PropertyManager::isValid |
( |
|
) |
const |
BALL::PropertyManager::operator BitVector & |
( |
|
) |
|
Assignment operator. This operator calls set(property_manager)
to assign a new object.
- Parameters:
-
- Returns:
- PropertyManager
*this
Equality operator Two instances are equal if they have the same named and unnamed properties.
Persistent stream reading.
void BALL::PropertyManager::set |
( |
const PropertyManager & |
property_manager |
) |
|
Assign properties from another property manager
- Parameters:
-
void BALL::PropertyManager::setProperty |
( |
const string & |
name, |
|
|
const PersistentObject & |
value | |
|
) |
| | |
Set a named property containing a PersistentObject. This method creates a new named property containing a string (NamedProperty::Type == OBJECT
). Already existing data using the same name
is overwritten.
- Parameters:
-
| name | the name to be used for the new property |
| value | the data |
void BALL::PropertyManager::setProperty |
( |
const string & |
name, |
|
|
const string & |
value | |
|
) |
| | |
Set a named property containing a string. This method creates a new named property containing a string (NamedProperty::Type == STRING
). Already existing data using the same name
is overwritten.
- Parameters:
-
| name | the name to be used for the new property |
| value | the data |
void BALL::PropertyManager::setProperty |
( |
const string & |
name, |
|
|
double |
value | |
|
) |
| | |
Set a named property containing a double-precision floating point number. This method creates a new named property containing a floating point number (NamedProperty::Type == DOUBLE
). Already existing data using the same name
is overwritten.
- Parameters:
-
| name | the name to be used for the new property |
| value | the data |
void BALL::PropertyManager::setProperty |
( |
const string & |
name, |
|
|
float |
value | |
|
) |
| | |
Set a named property containing a floating point number. This method creates a new named property containing a floating point number (NamedProperty::Type == FLOAT
). Already existing data using the same name
is overwritten.
- Parameters:
-
| name | the name to be used for the new property |
| value | the data |
void BALL::PropertyManager::setProperty |
( |
const string & |
name, |
|
|
unsigned int |
value | |
|
) |
| | |
Set a named property containing an unsigned integer number. This method creates a new named property containing an unsigned int (NamedProperty::Type == UNSIGNED_INT
). Already existing data using the same name
is overwritten.
- Parameters:
-
| name | the name to be used for the new property |
| value | the data |
void BALL::PropertyManager::setProperty |
( |
const string & |
name, |
|
|
int |
value | |
|
) |
| | |
Set a named property containing a signed integer number. This method creates a new named property containing an int (NamedProperty::Type == INT
). Already existing data using the same name
is overwritten.
- Parameters:
-
| name | the name to be used for the new property |
| value | the data |
void BALL::PropertyManager::setProperty |
( |
const string & |
name, |
|
|
bool |
value | |
|
) |
| | |
Set a named property containing boolean data. This method creates a new named property containing boolean data (NamedProperty::Type == BOOL
). Already existing data using the same name
is overwritten.
- Parameters:
-
| name | the name to be used for the new property |
| value | the boolean value |
void BALL::PropertyManager::setProperty |
( |
const string & |
name |
) |
|
Set a named property without any data. This method creates a new named property not containing any data (NamedProperty::Type == NONE
). Already existing data using the same name
is overwritten.
- Parameters:
-
| name | the name to be used for the new property |
void BALL::PropertyManager::setProperty |
( |
const NamedProperty & |
property |
) |
|
Set a named property. This method adds a new named property to the property manager's array of named properties or substitutes an already existing named property by property
. If a property with the same name as property
already exists, it is destructed.
- Parameters:
-
| property | the new property to be set |
void BALL::PropertyManager::setProperty |
( |
Property |
property |
) |
|
Set a property. This method sets an unnamed property of a PropertyManager object by calling BitVector::setBit(property)
for the private bit vector.
- Parameters:
-
| property | the number of the property to be set |
Swap the properties with another property manager.
- Parameters:
-
void BALL::PropertyManager::toggleProperty |
( |
Property |
property |
) |
|
Toggle (invert) a property. This method clears an unnamed property of a PropertyManager object by calling BitVector::toggleBit(property)
for the private bit vector.
- Parameters:
-
| property | the number of the property to be toggled |
Persistent stream writing.
Member Data Documentation