#include <Option.h>

The base class for a single program option. All options which hold values are derived from this class as the type of stored values may differ.
Most of the getter-methods throw exceptions because this base class is not meant to hold any values by itself. Instead, the derived classes implement the appropriate method (Option_Integer implements getInt, f.e.). So, when one tries to retrieve a value which is not of the type of the option, an exception will be thrown. This behaviour is meant to be valid, because errors like this one only occur when building and testing the application.
Due to described behaviour, this class has no public constructors. Only construction of derived, value and type holding, classes is allowed.
At the begin (after being constructed) an Option either has a default value or not. In dependance to this, myHaveTheDefaultValue is set. Also, myAmSet is set to true if a default value was supported. myAmWritable is set to true, indicating that a new value may be set.
Each option may have a description about its purpose stored. Furthermore, it stores a man-readable type name for this option.
Definition at line 76 of file Option.h.
Public Member Functions | |
| virtual bool | getBool () const throw (InvalidArgument) |
| Returns the stored boolean value. | |
| const std::string & | getDescription () const throw () |
| Returns the description of what this option does. | |
| virtual SUMOReal | getFloat () const throw (InvalidArgument) |
| Returns the stored SUMOReal value. | |
| virtual int | getInt () const throw (InvalidArgument) |
| Returns the stored integer value. | |
| virtual const IntVector & | getIntVector () const throw (InvalidArgument) |
| Returns the stored integer vector. | |
| virtual std::string | getString () const throw (InvalidArgument) |
| Returns the stored string value. | |
| virtual const std::string & | getTypeName () const throw () |
| Returns the mml-type name of this option. | |
| virtual std::string | getValueString () const throw (InvalidArgument) |
| Returns the string-representation of the value. | |
| virtual bool | isBool () const throw () |
| Returns the information whether the option is a bool option. | |
| virtual bool | isDefault () const throw () |
| Returns the information whether the option holds the default value. | |
| virtual bool | isFileName () const throw () |
| Returns the information whether this option is a file name. | |
| bool | isSet () const throw () |
| returns the information whether this options holds a valid value | |
| bool | isWriteable () const throw () |
| Returns the information whether the option may be set a further time. | |
| virtual bool | set (bool v) throw (InvalidArgument) |
| Sets the value (used for bool options). | |
| virtual bool | set (const std::string &v) throw (InvalidArgument) |
| Stores the given value (used for non-bool options). | |
| virtual | ~Option () throw () |
Protected Member Functions | |
| bool | markSet () throw () |
| Marks the information as set. | |
| virtual Option & | operator= (const Option &s) throw () |
| Assignment operator. | |
| Option (const Option &s) throw () | |
| Copy constructor. | |
| Option (bool set=false) throw () | |
| Constructor. | |
Protected Attributes | |
| std::string | myTypeName |
| A type name for this option (has presets, but may be overwritten). | |
Private Attributes | |
| bool | myAmSet |
| information whether the value is set | |
| bool | myAmWritable |
| information whether the value may be changed | |
| std::string | myDescription |
| The description what this option does. | |
| bool | myHaveTheDefaultValue |
| information whether the value is the default value (is then set) | |
Friends | |
| class | OptionsCont |
| Option::~Option | ( | ) | throw () [virtual] |
| Option::Option | ( | bool | set = false |
) | throw () [protected] |
Constructor.
This constructor should be used by derived classes. The boolean value indicates whether a default value was supplied or not.
| [in] | set | A default value was supplied |
Definition at line 50 of file Option.cpp.
00051 : myAmSet(set), myHaveTheDefaultValue(true), myAmWritable(true) {}
| Option::Option | ( | const Option & | s | ) | throw () [protected] |
Copy constructor.
Definition at line 54 of file Option.cpp.
00055 : myAmSet(s.myAmSet), myHaveTheDefaultValue(s.myHaveTheDefaultValue), 00056 myAmWritable(s.myAmWritable) {}
| bool Option::getBool | ( | ) | const throw (InvalidArgument) [virtual] |
Returns the stored boolean value.
Option_Bool returns the stored boolean in this method's reimplementation. All other option classes do not override this method which throws an InvalidArgument-exception.
| InvalidArgument | If the class is not an instance of Option_Bool |
Reimplemented in Option_Bool.
Definition at line 99 of file Option.cpp.
Referenced by OptionsCont::getBool().
00099 { 00100 throw InvalidArgument("This is not a bool-option"); 00101 }
| const std::string & Option::getDescription | ( | ) | const throw () |
Returns the description of what this option does.
The description stored in myDescription is returned.
Definition at line 163 of file Option.cpp.
References myDescription.
Referenced by OptionsCont::printHelp(), and OptionsCont::writeConfiguration().
00163 { 00164 return myDescription; 00165 }
| SUMOReal Option::getFloat | ( | ) | const throw (InvalidArgument) [virtual] |
Returns the stored SUMOReal value.
Option_Float returns the stored real number in this method's reimplementation. All other option classes do not override this method which throws an InvalidArgument-exception.
| InvalidArgument | If the class is not an instance of Option_Float |
Reimplemented in Option_Float.
Definition at line 81 of file Option.cpp.
Referenced by OptionsCont::getFloat().
00081 { 00082 throw InvalidArgument("This is not a SUMOReal-option"); 00083 }
| int Option::getInt | ( | ) | const throw (InvalidArgument) [virtual] |
Returns the stored integer value.
Option_Integer returns the stored integer number in this method's reimplementation. All other option classesdo not override this method which throws an InvalidArgument-exception.
| InvalidArgument | If the class is not an instance of Option_Integer |
Reimplemented in Option_Integer.
Definition at line 87 of file Option.cpp.
Referenced by OptionsCont::getInt().
00087 { 00088 throw InvalidArgument("This is not an int-option"); 00089 }
| const IntVector & Option::getIntVector | ( | ) | const throw (InvalidArgument) [virtual] |
Returns the stored integer vector.
Option_IntVector returns the stored integer vector in this method's reimplementation. All other option classes do not override this method which throws an InvalidArgument-exception.
| InvalidArgument | If the class is not an instance of Option_IntVector |
Reimplemented in Option_IntVector.
Definition at line 105 of file Option.cpp.
Referenced by OptionsCont::getIntVector().
00105 { 00106 throw InvalidArgument("This is not an int vector-option"); 00107 }
| std::string Option::getString | ( | ) | const throw (InvalidArgument) [virtual] |
Returns the stored string value.
Option_String and Option_FileName return the stored string in this method's reimplementation. All other option classes do not override this method which throws an InvalidArgument-exception.
| InvalidArgument | If the class is not an instance of Option_String |
Reimplemented in Option_String.
Definition at line 93 of file Option.cpp.
Referenced by OptionsCont::getString(), and OptionsCont::getStringVector().
00093 { 00094 throw InvalidArgument("This is not a string-option"); 00095 }
| const std::string & Option::getTypeName | ( | ) | const throw () [virtual] |
Returns the mml-type name of this option.
The type name stored in myTypeName is returned.
Definition at line 169 of file Option.cpp.
References myTypeName.
Referenced by OptionsCont::printHelp().
00169 { 00170 return myTypeName; 00171 }
| std::string Option::getValueString | ( | ) | const throw (InvalidArgument) [virtual] |
Returns the string-representation of the value.
The stored value is encoded into a string and returned.
Reimplemented in Option_Integer, Option_String, Option_Float, Option_Bool, and Option_IntVector.
Definition at line 133 of file Option.cpp.
Referenced by OptionsCont::writeConfiguration().
00133 { 00134 throw InvalidArgument("This is an abstract class."); 00135 }
| bool Option::isBool | ( | ) | const throw () [virtual] |
Returns the information whether the option is a bool option.
Returns false. Only Option_Bool overrides this method returning true.
Reimplemented in Option_Bool.
Definition at line 139 of file Option.cpp.
Referenced by OptionsCont::isBool(), OptionsCont::printHelp(), and OptionsCont::set().
| bool Option::isDefault | ( | ) | const throw () [virtual] |
Returns the information whether the option holds the default value.
Definition at line 145 of file Option.cpp.
References myHaveTheDefaultValue.
Referenced by OptionsCont::writeConfiguration().
00145 { 00146 return myHaveTheDefaultValue; 00147 }
| bool Option::isFileName | ( | ) | const throw () [virtual] |
Returns the information whether this option is a file name.
Returns false. Only Option_FileName overrides this method returning true.
Reimplemented in Option_FileName.
Definition at line 151 of file Option.cpp.
| bool Option::isSet | ( | ) | const throw () |
returns the information whether this options holds a valid value
Definition at line 75 of file Option.cpp.
References myAmSet.
Referenced by OptionsCont::checkDependingSuboptions(), OptionsCont::isUsableFileList(), and OptionsCont::writeConfiguration().
00075 { 00076 return myAmSet; 00077 }
| bool Option::isWriteable | ( | ) | const throw () |
Returns the information whether the option may be set a further time.
This method returns whether the option was not already set using command line options / configuration. This is done by returning the value of myAmWritable.
Definition at line 157 of file Option.cpp.
References myAmWritable.
Referenced by OptionsCont::isWriteable(), and OptionsCont::set().
00157 { 00158 return myAmWritable; 00159 }
| bool Option::markSet | ( | ) | throw () [protected] |
Marks the information as set.
Sets the "myAmSet" - information. Returns whether the option was writeable before.
Definition at line 123 of file Option.cpp.
References myAmSet, myAmWritable, and myHaveTheDefaultValue.
Referenced by Option_IntVector::set(), Option_Bool::set(), Option_Float::set(), Option_String::set(), and Option_Integer::set().
00123 { 00124 bool ret = myAmWritable; 00125 myHaveTheDefaultValue = false; 00126 myAmSet = true; 00127 myAmWritable = false; 00128 return ret; 00129 }
Assignment operator.
Definition at line 63 of file Option.cpp.
References myAmSet, myAmWritable, and myHaveTheDefaultValue.
Referenced by Option_IntVector::operator=(), Option_Bool::operator=(), Option_Float::operator=(), Option_String::operator=(), and Option_Integer::operator=().
00063 { 00064 if (this==&s) { 00065 return *this; 00066 } 00067 myAmSet = s.myAmSet; 00068 myHaveTheDefaultValue = s.myHaveTheDefaultValue; 00069 myAmWritable = s.myAmWritable; 00070 return *this; 00071 }
| bool Option::set | ( | bool | v | ) | throw (InvalidArgument) [virtual] |
Sets the value (used for bool options).
Reimplemented in Option_Bool.
Definition at line 117 of file Option.cpp.
00117 { 00118 throw InvalidArgument("This is not a bool-option."); 00119 }
| bool Option::set | ( | const std::string & | v | ) | throw (InvalidArgument) [virtual] |
Stores the given value (used for non-bool options).
This method is overriden by all option classes but Option_Bool. The value is converted into the proper type and stored in "myValue". Then, "markSet" is called in order to know that a value has been set.
The method defined in Option throws an exception, because all derived classes should override it - for Option_Bool, it is tested on a different position whether to use this method or bool set(bool).
The method returns whether the value could be set (the return value from "markSet").
If the string could not be converted into the type, an InvalidArgument is thrown.
| InvalidArgument | If being an instance of Option or Option_Bool or if the value could not be converted |
Reimplemented in Option_Integer, Option_String, Option_Float, and Option_IntVector.
Definition at line 111 of file Option.cpp.
Referenced by OptionsCont::set().
00111 { 00112 throw InvalidArgument("This is an abstract class."); 00113 }
friend class OptionsCont [friend] |
OptionsCont is a friend class
bool Option::myAmSet [private] |
information whether the value is set
Definition at line 274 of file Option.h.
Referenced by isSet(), markSet(), and operator=().
bool Option::myAmWritable [private] |
information whether the value may be changed
Definition at line 280 of file Option.h.
Referenced by isWriteable(), markSet(), and operator=().
std::string Option::myDescription [private] |
The description what this option does.
Definition at line 283 of file Option.h.
Referenced by OptionsCont::addDescription(), and getDescription().
bool Option::myHaveTheDefaultValue [private] |
information whether the value is the default value (is then set)
Definition at line 277 of file Option.h.
Referenced by isDefault(), markSet(), and operator=().
std::string Option::myTypeName [protected] |
A type name for this option (has presets, but may be overwritten).
Definition at line 269 of file Option.h.
Referenced by getTypeName(), Option_Bool::Option_Bool(), Option_FileName::Option_FileName(), Option_Float::Option_Float(), Option_Integer::Option_Integer(), Option_IntVector::Option_IntVector(), and Option_String::Option_String().
1.5.6