Main Page | Modules | Namespace List | Class Hierarchy | Class List | Namespace Members | Class Members

Options Class Reference

Options class. More...

#include <options.h>

Inheritance diagram for Options:

StringHashMap< String > HashMap< String, String > List of all members.

Public Member Functions

Constructors and Destructors
 Options () throw ()
 Default constructor.
 Options (const Options &options) throw ()
 Copy constructor.
virtual ~Options () throw ()
 Destructor.
Assignment
const Optionsoperator= (const Options &options) throw ()
 Assignment operator.
virtual void clear () throw ()
 Clear method.
Predicates
bool isInteger (const String &key) const throw ()
 Returns true, if the value associated with the given key is an integer.
bool isBool (const String &key) const throw ()
 Returns true, if the value associated with the given key is a boolean.
bool isReal (const String &key) const throw ()
 Returns true, if the value associated with the given key is a real number.
bool isVector (const String &key) const throw ()
 Returns true, if the value associated with the given key can be read as a vector.
bool isSet (const String &key) const throw ()
 Returns true, if a value is defined for the given key.
Inspectors and mutators
void setName (const String &name) throw ()
 Sets the option table's name.
const StringgetName () const throw ()
 Returns the option table's name.
String get (const String &key) const throw ()
 Returns the value associated with the key.
bool getBool (const String &key) const throw ()
 Returns the value associated with the key as bool.
double getReal (const String &key) const throw ()
 Returns the value associated with the key as a floting point number.
Vector3 getVector (const String &key) const throw ()
 Returns the value associated with the key as a Vector3 object.
long getInteger (const String &key) const throw ()
 Returns the value associated with the key as an integer.
void set (const String &key, const String &value) throw ()
 Assigns value to key.
void setReal (const String &key, const double value) throw ()
 Assigns the real number given by value to key.
void setVector (const String &key, const Vector3 &value) throw ()
 Assigns a Vector3 object to the value corresponding to a key.
void setInteger (const String &key, const long value) throw ()
 Assigns the integer given by value to key.
void setBool (const String &key, const bool value) throw ()
 Assigns the boolean value given by value to the table entry key.
String setDefault (const String &key, const String &value) throw ()
 Assigns the value only, if the key is not yet defined.
long setDefaultInteger (const String &key, const long value) throw ()
 Assigns the value only, if the key is not yet defined.
double setDefaultReal (const String &key, const double value) throw ()
 Assigns the value only, if the key is not yet defined.
bool setDefaultBool (const String &key, const bool value) throw ()
 Assigns the value only if the key is not yet defined.
bool readOptionFile (const String &filename) throw ()
 Reads options from a file.
bool writeOptionFile (const String &filename) const throw ()
 Writes options to a file.
void write (PersistenceManager &pm) const throw ()
 Persistent stream writing.
bool read (PersistenceManager &pm) throw ()
 Persistent stream reading.
bool operator== (const Options &option) const throw ()
 Equality operator.
bool operator!= (const Options &option) const throw ()
 Inequality operator.
Debugging
virtual void dump (std::ostream &s=std::cout, Size depth=0) const throw ()
 Dumps the whole content of the object.

Static Public Attributes

Constants
const Size MAX_ENTRY_LENGTH
 Maximum length for each entry (key + value): 1024 byte.

Protected Attributes

String name_

Detailed Description

Options class.

This object is intended to store options for complex method calls. These options are stored as key/value pairs of String .

Using this datastructure, options for force fields ( ForceField ), finit difference Poisson Boltzmann calculations ( FDPB ), or the results of calculations can be given, retrieved, stored into a file and retrieved from a file. This simplifies the handling of such complex parameter sets.


Constructor & Destructor Documentation

Options::Options  )  throw ()
 

Default constructor.

Creates a new and empty Options object.

Options::Options const Options options  )  throw ()
 

Copy constructor.

Creates a new option table from an existing one.

Parameters:
options the options to be copied

virtual Options::~Options  )  throw () [virtual]
 

Destructor.

Destructs the option table and frees all allocated memory.

See also:
clear


Member Function Documentation

String Options::get const String key  )  const throw ()
 

Returns the value associated with the key.

If the key does not exists an empty string is returned.

Parameters:
key the key
Returns:
String, the value

bool Options::getBool const String key  )  const throw ()
 

Returns the value associated with the key as bool.

This method tries to convert the value associated with key to a bool value.

If the value is neither "true", nor "false" or the key does not exist false is returned! You might want to check the value's validity as a bool first by calling isBool().
Parameters:
key the key
Returns:
bool, boolean value

long Options::getInteger const String key  )  const throw ()
 

Returns the value associated with the key as an integer.

If the value corresponding to key could not be converted to an integer number or the key does not exists, zero is returned. It is possible to check for the validity of this conversion by calling isInteger() .

Returns:
long the integer value
Parameters:
key the key

const String& Options::getName  )  const throw ()
 

Returns the option table's name.

double Options::getReal const String key  )  const throw ()
 

Returns the value associated with the key as a floting point number.

If the value could not be converted to a floating point number or the key does not exist a value of #0.0# is returned.

You might want to check the value's validity as a floating point number first by calling isReal().
Parameters:
key the key
Returns:
float, floating point value

Vector3 Options::getVector const String key  )  const throw ()
 

Returns the value associated with the key as a Vector3 object.

This method is useful to read threedimensional coordinates, points, etc. The value corresponding to key has to be of the form #(<float> <float> <float>)# (i.e. three floating point numbers separated by white blanks and surrounded by round brackets).

If the content of the value is of a differnet format or the key does not exists, the content of the returned vector is undefined. You might therefore check the value's validity first by calling isVector .
Parameters:
key the key
Returns:
Vector3 vector containing the three coordinates

bool Options::isBool const String key  )  const throw ()
 

Returns true, if the value associated with the given key is a boolean.

A boolean entry has either the value true or false.

Parameters:
key String
Returns:
true, if key is a boolean value

bool Options::isInteger const String key  )  const throw ()
 

Returns true, if the value associated with the given key is an integer.

Parameters:
key String
Returns:
true, if key is an integer

bool Options::isReal const String key  )  const throw ()
 

Returns true, if the value associated with the given key is a real number.

Parameters:
key String
Returns:
true, if key is a real number

bool Options::isSet const String key  )  const throw ()
 

Returns true, if a value is defined for the given key.

Parameters:
key String
Returns:
bool, true/false

bool Options::isVector const String key  )  const throw ()
 

Returns true, if the value associated with the given key can be read as a vector.

This method simply checks whether the value is of the form #(<float> <float> <float>)# where #<float># represents an arbitrary floating point number.

Parameters:
key String
Returns:
true, if key represents a 3D vector of reals

bool Options::read PersistenceManager pm  )  throw ()
 

Persistent stream reading.

This method reads from the persistent stream using the readPrimitive method of the PersistenceManager.

Parameters:
pm the persistence manager

bool Options::readOptionFile const String filename  )  throw ()
 

Reads options from a file.

This method opens the file specified by filename. If the file could not be opened, the method returns false. Otherwise, the file is read line by line and each line is interpreted as a key (starting with the first non-blank character and terminated by the next blank) separated by a blank from a value (starting with the first non-blank charakter after the key and terminated by the end of the line). For each line either an existing key is updated with the value read, or a new key-value pair is created.

Lines starting with '#', '!', or ';' are ignored and may be used as comments.
Parameters:
filename the name of the file to be read
Returns:
bool
  • true if the file could be read
  • false otherwise

void Options::set const String key,
const String value
throw ()
 

Assigns value to key.

The string given as value is assigned to the key. If key didn't exist in the internal hash table, it is inserted.

Parameters:
key the key

void Options::setBool const String key,
const bool  value
throw ()
 

Assigns the boolean value given by value to the table entry key.

The value associated with key is either set to the string "true" or the string "false".

If key didn't already exist, it is created.
Parameters:
key the key
value the boolean value

String Options::setDefault const String key,
const String value
throw ()
 

Assigns the value only, if the key is not yet defined.

If an entry for key exists, it is not modified. It is set to value otherwise.

See also:
set
Parameters:
key the key
value a new value

bool Options::setDefaultBool const String key,
const bool  value
throw ()
 

Assigns the value only if the key is not yet defined.

If an entry for key exists, it is not modified. It is set to value otherwise.

See also:
setBool
Parameters:
key the key
value a new value
Returns:
the value of key

long Options::setDefaultInteger const String key,
const long  value
throw ()
 

Assigns the value only, if the key is not yet defined.

If an entry for key exists, it is not modified. It is set to value otherwise.

See also:
setInteger
Parameters:
key the key
value a new value
Returns:
the value of key

double Options::setDefaultReal const String key,
const double  value
throw ()
 

Assigns the value only, if the key is not yet defined.

If an entry for key exists, it is not modified. It is set to value otherwise.

See also:
setReal
Parameters:
key the key
value a new value
Returns:
the value of key

void Options::setInteger const String key,
const long  value
throw ()
 

Assigns the integer given by value to key.

value is first converted to a string, which is then stored in the hash table under key.

If key didn't already exist, it is created.
Parameters:
key the key
value the integer value

void Options::setName const String name  )  throw ()
 

Sets the option table's name.

void Options::setReal const String key,
const double  value
throw ()
 

Assigns the real number given by value to key.

value is first converted to a string, which is then stored in the option object.

If key didn't already exist, it is created.
Parameters:
value the new value
key the key

void Options::setVector const String key,
const Vector3 value
throw ()
 

Assigns a Vector3 object to the value corresponding to a key.

The given Vector3 is converted to a string by the following call to sprintf:

#sprintf(buffer, "(%f %f %f)", value.x, value.y, value.z)#
The so-built string is then stored in the hash table under key.
If key didn't already exist, it is created.
Parameters:
key the key
value a vector

void Options::write PersistenceManager pm  )  const throw ()
 

Persistent stream writing.

This method writes the strings using the writePrimitive method of the PersistenceManager.

Parameters:
pm the persistence manager

bool Options::writeOptionFile const String filename  )  const throw ()
 

Writes options to a file.

This method opens or creates the file specified by filename. If the file could not be opened, the method returns false. The option table's name is writen in a line starting with '!'.

Parameters:
filename the name of the file to write
Returns:
bool
  • true if the file could be writen
  • false otherwise
See also:
readOptionFile


Member Data Documentation

const Size Options::MAX_ENTRY_LENGTH [static]
 

Maximum length for each entry (key + value): 1024 byte.