Eclipse SUMO - Simulation of Urban MObility
|
A class representing a single program option. More...
#include <Option.h>
Public Member Functions | |
virtual bool | getBool () const |
Returns the stored boolean value. | |
const std::string & | getDescription () const |
Returns the description of what this option does. | |
virtual double | getFloat () const |
Returns the stored double value. | |
virtual int | getInt () const |
Returns the stored integer value. | |
virtual const IntVector & | getIntVector () const |
Returns the stored integer vector. | |
const std::string & | getListSeparator () const |
retrieve list separator | |
virtual std::string | getString () const |
Returns the stored string value. | |
virtual const StringVector & | getStringVector () const |
Returns the stored string vector. | |
const std::string & | getSubTopic () const |
Returns the subtopic to which this option belongs. | |
virtual const std::string & | getTypeName () const |
Returns the mml-type name of this option. | |
const std::string & | getValueString () const |
Returns the string-representation of the value. | |
virtual bool | isAdditional () const |
Returns the information whether this option is an additional file. | |
virtual bool | isBool () const |
Returns the information whether the option is a bool option. | |
virtual bool | isData () const |
Returns the information whether this option is a data file. | |
virtual bool | isDefault () const |
Returns the information whether the option holds the default value. | |
virtual bool | isEdge () const |
Returns the information whether this option is an edge. | |
virtual bool | isEdgeVector () const |
Returns the information whether this option is a vector of edges. | |
virtual bool | isFileName () const |
Returns the information whether this option is a file name. | |
virtual bool | isFloat () const |
Returns the information whether the option is a float option. | |
virtual bool | isInteger () const |
Returns the information whether the option is a int option. | |
virtual bool | isNetwork () const |
Returns the information whether this option is a network file. | |
bool | isPositional () const |
check if option is positional | |
bool | isRequired () const |
check if option is required | |
virtual bool | isRoute () const |
Returns the information whether this option is a route file. | |
bool | isSet () const |
returns the information whether this options holds a valid value | |
virtual bool | isSumoConfig () const |
Returns the information whether this option is a sumo config file. | |
bool | isWriteable () const |
Returns the information whether the option may be set a further time. | |
void | resetDefault () |
Resets the option to be on its default value. | |
void | resetWritable () |
Resets the option to be writeable. | |
virtual bool | set (const std::string &v, const std::string &orig, const bool append)=0 |
Stores the given value. | |
void | setDescription (const std::string &desc) |
Sets the description of what this option does. | |
void | setListSeparator (const std::string &listSep) |
set list separator | |
void | setPositional () |
mark option as positional | |
void | setRequired () |
mark option as required | |
void | setSubtopic (const std::string &subtopic) |
Sets the subtopic to which this option belongs. | |
virtual | ~Option () |
destructor | |
Protected Member Functions | |
bool | markSet (const std::string &orig) |
Marks the information as set. | |
Option (bool set=false) | |
Constructor. | |
Protected Attributes | |
std::string | myTypeName |
A type name for this option (has presets, but may be overwritten) | |
std::string | myValueString |
The original set string. | |
Private Attributes | |
bool | myAmSet |
information whether the value is set | |
bool | myAmWritable = true |
information whether the value may be changed | |
std::string | myDescription |
The description what this option does. | |
bool | myHaveTheDefaultValue = true |
information whether the value is the default value (is then set) | |
std::string | myListSeparator = "" |
the list separator for this option (needed for python tools) | |
bool | myPositional = false |
this option is positional (needed for python tools) | |
bool | myRequired = false |
this option is required (needed for python tools) | |
std::string | mySubTopic |
The subtopic to which this option belongs. | |
A class representing a single program option.
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 dependence 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.
|
virtual |
destructor
Definition at line 49 of file Option.cpp.
|
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 44 of file Option.cpp.
|
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 77 of file Option.cpp.
Referenced by GNEPythonToolDialogElements::BoolArgument::BoolArgument(), and OptionsCont::getBool().
const std::string & Option::getDescription | ( | ) | const |
Returns the description of what this option does.
The description stored in myDescription is returned.
Definition at line 202 of file Option.cpp.
References myDescription.
Referenced by GNEPythonToolDialogElements::Argument::Argument(), OptionsCont::getDescription(), OptionsCont::printHelpOnTopic(), and OptionsCont::writeConfiguration().
|
virtual |
Returns the stored double 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 59 of file Option.cpp.
Referenced by OptionsCont::getFloat().
|
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 65 of file Option.cpp.
Referenced by OptionsCont::getInt().
|
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 83 of file Option.cpp.
Referenced by OptionsCont::getIntVector().
const std::string & Option::getListSeparator | ( | ) | const |
|
virtual |
Returns the stored string value.
Option_String returns the stored string in this method's reimplementation. Option_FileName's reimplementation is only to be used for single filename string-vector options. 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 or Option_FileName |
Reimplemented in Option_String, and Option_FileName.
Definition at line 71 of file Option.cpp.
Referenced by OptionsCont::getString().
|
virtual |
Returns the stored string vector.
Option_StringVector returns the stored string 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_StringVector |
Reimplemented in Option_StringVector.
Definition at line 89 of file Option.cpp.
Referenced by OptionsCont::getStringVector().
const std::string & Option::getSubTopic | ( | ) | const |
Returns the subtopic to which this option belongs.
Definition at line 245 of file Option.cpp.
References mySubTopic.
Referenced by OptionsCont::getSubTopic().
|
virtual |
Returns the mml-type name of this option.
The type name stored in myTypeName is returned.
Definition at line 257 of file Option.cpp.
References myTypeName.
Referenced by GNEPythonToolDialogElements::Argument::Argument(), OptionsCont::getTypeName(), OptionsCont::printHelp(), OptionsCont::printHelpOnTopic(), OptionsCont::writeConfiguration(), and OptionsCont::writeSchema().
const std::string & Option::getValueString | ( | ) | const |
Returns the string-representation of the value.
The stored value is encoded into a string and returned.
Definition at line 106 of file Option.cpp.
References myValueString.
Referenced by GNEPythonToolDialogElements::EdgeArgument::EdgeArgument(), GNEPythonToolDialogElements::EdgeVectorArgument::EdgeVectorArgument(), GNEPythonToolDialogElements::FileNameArgument::FileNameArgument(), GNEPythonToolDialogElements::FloatArgument::FloatArgument(), OptionsCont::getValueString(), GNEPythonToolDialogElements::IntArgument::IntArgument(), Option_StringVector::set(), GNEPythonToolDialogElements::StringArgument::StringArgument(), and OptionsCont::writeConfiguration().
|
virtual |
Returns the information whether this option is an additional file.
Returns false. Only Option_Additional overrides this method returning true.
Reimplemented in Option_Additional.
Definition at line 148 of file Option.cpp.
|
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 130 of file Option.cpp.
Referenced by OptionsCont::isBool(), OptionsCont::printHelp(), and OptionsCont::printHelpOnTopic().
|
virtual |
Returns the information whether this option is a data file.
Returns false. Only Option_Data overrides this method returning true.
Reimplemented in Option_Data.
Definition at line 160 of file Option.cpp.
|
virtual |
Returns the information whether the option holds the default value.
Definition at line 112 of file Option.cpp.
References myHaveTheDefaultValue.
Referenced by OptionsCont::writeConfiguration().
|
virtual |
Returns the information whether this option is an edge.
Returns false. Only Option_Edge overrides this method returning true.
Reimplemented in Option_Edge.
Definition at line 172 of file Option.cpp.
|
virtual |
Returns the information whether this option is a vector of edges.
Returns false. Only Option_EdgeVector overrides this method returning true.
Reimplemented in Option_EdgeVector.
Definition at line 178 of file Option.cpp.
|
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 136 of file Option.cpp.
Referenced by OptionsCont::writeConfiguration().
|
virtual |
Returns the information whether the option is a float option.
Returns false. Only Option_Float overrides this method returning true.
Reimplemented in Option_Float.
Definition at line 124 of file Option.cpp.
|
virtual |
Returns the information whether the option is a int option.
Returns false. Only Option_Integer overrides this method returning true.
Reimplemented in Option_Integer.
Definition at line 118 of file Option.cpp.
|
virtual |
Returns the information whether this option is a network file.
Returns false. Only Option_Network overrides this method returning true.
Reimplemented in Option_Network.
Definition at line 142 of file Option.cpp.
bool Option::isPositional | ( | ) | const |
bool Option::isRequired | ( | ) | const |
check if option is required
Definition at line 214 of file Option.cpp.
References myRequired.
Referenced by GNEPythonToolDialogElements::Argument::Argument().
|
virtual |
Returns the information whether this option is a route file.
Returns false. Only Option_Route overrides this method returning true.
Reimplemented in Option_Route.
Definition at line 154 of file Option.cpp.
bool Option::isSet | ( | ) | const |
returns the information whether this options holds a valid value
Definition at line 53 of file Option.cpp.
References myAmSet.
Referenced by TemplateHandler::addOption(), OptionsCont::checkDependingSuboptions(), OptionsCont::isUsableFileList(), and OptionsCont::writeConfiguration().
|
virtual |
Returns the information whether this option is a sumo config file.
Returns false. Only Option_SumoConfig overrides this method returning true.
Reimplemented in Option_SumoConfig.
Definition at line 166 of file Option.cpp.
bool Option::isWriteable | ( | ) | const |
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 184 of file Option.cpp.
References myAmWritable.
Referenced by OptionsCont::isWriteable(), OptionsCont::set(), and OptionsCont::setDefault().
|
protected |
Marks the information as set.
Sets the "myAmSet" - information. Returns whether the option was writeable before.
Definition at line 95 of file Option.cpp.
References myAmSet, myAmWritable, myHaveTheDefaultValue, and myValueString.
Referenced by Option_Integer::set(), Option_String::set(), Option_Float::set(), Option_Bool::set(), Option_BoolExtended::set(), Option_IntVector::set(), and Option_StringVector::set().
void Option::resetDefault | ( | ) |
Resets the option to be on its default value.
An option is on its default after initialisation with a value, but as soon as it gets set, it is no longer. This method resets the default-flag.
Definition at line 196 of file Option.cpp.
References myHaveTheDefaultValue.
Referenced by OptionsCont::resetDefault(), and OptionsCont::setDefault().
void Option::resetWritable | ( | ) |
Resets the option to be writeable.
An option is writable after initialisation, but as soon as it gets set, it is no longer writeable. This method resets the writable-flag.
Definition at line 190 of file Option.cpp.
References myAmWritable.
|
pure virtual |
Stores the given value.
This method is overriden by all option classes. 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 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 the value could not be converted |
Implemented in Option_Integer, Option_String, Option_Float, Option_Bool, Option_BoolExtended, Option_IntVector, and Option_StringVector.
Referenced by TemplateHandler::addOption(), and OptionsCont::set().
void Option::setDescription | ( | const std::string & | desc | ) |
Sets the description of what this option does.
The description stored in myDescription is returned.
Definition at line 208 of file Option.cpp.
References myDescription.
Referenced by OptionsCont::addDescription().
void Option::setListSeparator | ( | const std::string & | listSep | ) |
set list separator
Definition at line 240 of file Option.cpp.
References myListSeparator.
Referenced by OptionsCont::setFurtherAttributes().
void Option::setPositional | ( | ) |
mark option as positional
Definition at line 230 of file Option.cpp.
References myPositional.
Referenced by OptionsCont::setFurtherAttributes().
void Option::setRequired | ( | ) |
mark option as required
Definition at line 220 of file Option.cpp.
References myRequired.
Referenced by OptionsCont::setFurtherAttributes().
void Option::setSubtopic | ( | const std::string & | subtopic | ) |
Sets the subtopic to which this option belongs.
Definition at line 251 of file Option.cpp.
References mySubTopic.
Referenced by OptionsCont::addDescription().
|
private |
|
private |
information whether the value may be changed
Definition at line 366 of file Option.h.
Referenced by isWriteable(), markSet(), and resetWritable().
|
private |
The description what this option does.
Definition at line 369 of file Option.h.
Referenced by getDescription(), and setDescription().
|
private |
information whether the value is the default value (is then set)
Definition at line 363 of file Option.h.
Referenced by isDefault(), markSet(), and resetDefault().
|
private |
the list separator for this option (needed for python tools)
Definition at line 378 of file Option.h.
Referenced by getListSeparator(), and setListSeparator().
|
private |
this option is positional (needed for python tools)
Definition at line 375 of file Option.h.
Referenced by isPositional(), and setPositional().
|
private |
this option is required (needed for python tools)
Definition at line 372 of file Option.h.
Referenced by isRequired(), and setRequired().
|
private |
The subtopic to which this option belongs.
Definition at line 381 of file Option.h.
Referenced by getSubTopic(), and setSubtopic().
|
protected |
A type name for this option (has presets, but may be overwritten)
Definition at line 353 of file Option.h.
Referenced by getTypeName(), Option_Bool::Option_Bool(), Option_FileName::Option_FileName(), Option_FileName::Option_FileName(), Option_Float::Option_Float(), Option_Integer::Option_Integer(), Option_IntVector::Option_IntVector(), Option_IntVector::Option_IntVector(), Option_String::Option_String(), Option_String::Option_String(), Option_StringVector::Option_StringVector(), and Option_StringVector::Option_StringVector().
|
protected |
The original set string.
Definition at line 356 of file Option.h.
Referenced by getValueString(), markSet(), Option_Bool::Option_Bool(), Option_Float::Option_Float(), Option_Integer::Option_Integer(), Option_IntVector::Option_IntVector(), Option_String::Option_String(), and Option_StringVector::Option_StringVector().