#include <property.h>
Public Member Functions |
|
Constructors and Destructors
|
|
PropertyManager () | |
Default constructor. |
|
PropertyManager (const PropertyManager &property_manager) | |
Copy constructor. |
|
virtual | ~PropertyManager () |
Destructor. |
|
virtual void | clear () |
Clears all properties. |
|
virtual void | destroy () |
Clears all properties. |
|
Assignment
|
|
void | set (const PropertyManager &property_manager) |
Assign properties from another
property manager. |
|
const PropertyManager & | operator= (const PropertyManager &property_manager) |
Assignment operator. |
|
void | get (PropertyManager &property_manager) const |
Assign properties to another
property manager. |
|
void | swap (PropertyManager &property_manager) |
Swap the properties with another
property manager. |
|
Accessors
|
|
BitVector & | getBitVector () |
Return a mutable reference to the
bit vector. |
|
const BitVector & | getBitVector () const |
Return a const reference to the bit
vector containing the unnamed properties. |
|
Converters
|
|
operator BitVector & () | |
Converter to BitVector. |
|
Handling unnamed bit properties
|
|
void | setProperty (Property property) |
Set a property. |
|
void | clearProperty (Property property) |
Clear a property. |
|
void | toggleProperty (Property property) |
Toggle (invert) a property. |
|
Size | countProperties () const |
Count all properties. |
|
Handling named properties
|
|
PropertyManager
contains an vector of NamedProperty
objects.
Each of the NamedProeprty objects has to have a
unique name. The setProperty methods ensure the
uniqueness of this name. If a setProperty method is
called for an existing name, the existing object is
destructed prior to the insertion of the new
object. |
|
const NamedProperty & | getNamedProperty (Position index) const throw (Exception::IndexOverflow) |
Non-mutable access to a named
property by its index. |
|
NamedProperty & | getNamedProperty (Position index) throw (Exception::IndexOverflow) |
Mutable access to a named property
by its index. |
|
void | setProperty (const NamedProperty &property) |
Set a named property. |
|
void | setProperty (const string &name) |
Set a named property without any
data. |
|
void | setProperty (const string &name, bool value) |
Set a named property containing
boolean data. |
|
void | setProperty (const string &name, int value) |
Set a named property containing a
signed integer number. |
|
void | setProperty (const string &name, unsigned int value) |
Set a named property containing an
unsigned integer number. |
|
void | setProperty (const string &name, float value) |
Set a named property containing a
floating point number. |
|
void | setProperty (const string &name, double value) |
Set a named property containing a
double-precision floating point number. |
|
void | setProperty (const string &name, const string &value) |
Set a named property containing a
string. |
|
void | setProperty (const string &name, const PersistentObject &value) |
Set a named property containing a
PersistentObject.
|
|
const NamedProperty & | getProperty (const string &name) const |
Retrieve a named property. |
|
void | clearProperty (const string &name) |
Remove a named property. |
|
Size | countNamedProperties () const |
Return the number of named
properties. |
|
Predicates
|
|
bool | hasProperty (Property property) const |
Query for an unnamed
property. |
|
bool | hasProperty (const string &name) const |
Query for a named
property. |
|
bool | operator== (const PropertyManager &pm) const |
Equality operator Two instances are
equal if they have the same named and unnamed
properties. |
|
bool | operator!= (const PropertyManager &pm) const |
Inequality operator. |
|
Storable Interface
|
|
void | write (PersistenceManager &pm) const |
Persistent stream
writing. |
|
bool | read (PersistenceManager &pm) |
Persistent stream
reading. |
|
Debugging and Diagnostics
|
|
bool | isValid () const |
Test if instance is valid. |
|
void | dump (std::ostream &s=std::cout, Size depth=0) const |
Internal state dump. |
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
).
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.
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.
property | the number of the property to be cleared |
Size BALL::PropertyManager::countNamedProperties | ( | ) | const |
Return the number of named properties.
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.
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 .
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.
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
.
property_manager | the target object |
const BitVector& BALL::PropertyManager::getBitVector | ( | ) | const |
BitVector& BALL::PropertyManager::getBitVector | ( | ) |
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.
name | the name of the proeprty to be retrieved |
bool BALL::PropertyManager::isValid | ( | ) | const |
Test if instance is valid.
Returns true if the bitvector is valid.
Reimplemented in BALL::Atom, BALL::AtomContainer, BALL::Bond, BALL::NucleicAcid, BALL::Nucleotide, BALL::Protein, BALL::Residue, BALL::SecondaryStructure, BALL::VIEW::Representation, and BALL::VIEW::ModelProcessor.
BALL::PropertyManager::operator BitVector & | ( | ) |
Converter to BitVector.
This operator converts a PropertyManager object to a BitVector object containing the unnamed properties.
const PropertyManager& BALL::PropertyManager::operator= | ( | const PropertyManager & | property_manager | ) |
Assignment operator.
This operator calls set(property_manager)
to assign a new object.
property_manager | the PropertyManager object to copy from |
*this
void BALL::PropertyManager::set | ( | const PropertyManager & | property_manager | ) |
Assign properties from another property manager.
property_manager | the PropertyManager object to copy from |
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
property | the number of the property to be set |
void BALL::PropertyManager::swap | ( | PropertyManager & | property_manager | ) |
Swap the properties with another property manager.
property_manager | the PropertyManager object to swap the properties with |
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.
property | the number of the property to be toggled |