Eclipse SUMO - Simulation of Urban MObility
Option Class Referenceabstract

A class representing a single program option. More...

#include <Option.h>

Inheritance diagram for Option:
[legend]

Public Member Functions

virtual bool getBool () const
 Returns the stored boolean value. More...
 
const std::string & getDescription () const
 Returns the description of what this option does. More...
 
virtual double getFloat () const
 Returns the stored double value. More...
 
virtual int getInt () const
 Returns the stored integer value. More...
 
virtual const IntVectorgetIntVector () const
 Returns the stored integer vector. More...
 
virtual std::string getString () const
 Returns the stored string value. More...
 
virtual const StringVectorgetStringVector () const
 Returns the stored string vector. More...
 
virtual const std::string & getTypeName () const
 Returns the mml-type name of this option. More...
 
virtual std::string getValueString () const =0
 Returns the string-representation of the value. More...
 
virtual bool isBool () const
 Returns the information whether the option is a bool option. More...
 
virtual bool isDefault () const
 Returns the information whether the option holds the default value. More...
 
virtual bool isFileName () const
 Returns the information whether this option is a file name. More...
 
bool isSet () const
 returns the information whether this options holds a valid value More...
 
bool isWriteable () const
 Returns the information whether the option may be set a further time. More...
 
void resetDefault ()
 Resets the option to be on its default value. More...
 
void resetWritable ()
 Resets the option to be writeable. More...
 
virtual bool set (const std::string &v)=0
 Stores the given value. More...
 
void setDescription (const std::string &desc)
 Sets the description of what this option does. More...
 
void unSet ()
 marks this option as unset More...
 
virtual ~Option ()
 

Static Public Member Functions

template<class OptionType , class ValueType >
static OptionType * makeUnsetWithDefault (ValueType def)
 Create a new Option of the given type with given default value but make it unset. More...
 

Protected Member Functions

bool markSet ()
 Marks the information as set. More...
 
virtual Optionoperator= (const Option &s)
 Assignment operator. More...
 
 Option (bool set=false)
 Constructor. More...
 
 Option (const Option &s)
 Copy constructor. More...
 

Protected Attributes

std::string myTypeName
 A type name for this option (has presets, but may be overwritten) More...
 

Private Attributes

bool myAmSet
 information whether the value is set More...
 
bool myAmWritable
 information whether the value may be changed More...
 
std::string myDescription
 The description what this option does. More...
 
bool myHaveTheDefaultValue
 information whether the value is the default value (is then set) More...
 

Detailed Description

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 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 73 of file Option.h.

Constructor & Destructor Documentation

◆ ~Option()

Option::~Option ( )
virtual

destructor

Definition at line 51 of file Option.cpp.

◆ Option() [1/2]

Option::Option ( bool  set = false)
protected

Constructor.

This constructor should be used by derived classes. The boolean value indicates whether a default value was supplied or not.

Parameters
[in]setA default value was supplied

Definition at line 42 of file Option.cpp.

◆ Option() [2/2]

Option::Option ( const Option s)
protected

Copy constructor.

Definition at line 46 of file Option.cpp.

Member Function Documentation

◆ getBool()

bool Option::getBool ( ) const
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.

Returns
Returns the stored boolean if being an instance of Option_Bool
Exceptions
InvalidArgumentIf the class is not an instance of Option_Bool

Reimplemented in Option_Bool.

Definition at line 91 of file Option.cpp.

Referenced by OptionsCont::getBool().

Here is the caller graph for this function:

◆ getDescription()

const std::string & Option::getDescription ( ) const

Returns the description of what this option does.

The description stored in myDescription is returned.

Returns
The description of this option's purpose

Definition at line 160 of file Option.cpp.

References myDescription.

Referenced by OptionsCont::getDescription(), OptionsCont::printHelpOnTopic(), and OptionsCont::writeConfiguration().

Here is the caller graph for this function:

◆ getFloat()

double Option::getFloat ( ) const
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.

Returns
Returns the stored real number if being an instance of Option_Float
Exceptions
InvalidArgumentIf the class is not an instance of Option_Float

Reimplemented in Option_Float.

Definition at line 73 of file Option.cpp.

Referenced by OptionsCont::getFloat().

Here is the caller graph for this function:

◆ getInt()

int Option::getInt ( ) const
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.

Returns
Returns the stored integer number if being an instance of Option_Integer
Exceptions
InvalidArgumentIf the class is not an instance of Option_Integer

Reimplemented in Option_Integer.

Definition at line 79 of file Option.cpp.

Referenced by OptionsCont::getInt().

Here is the caller graph for this function:

◆ getIntVector()

const IntVector & Option::getIntVector ( ) const
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.

Returns
Returns the stored integer vector if being an instance of Option_IntVector
Exceptions
InvalidArgumentIf the class is not an instance of Option_IntVector

Reimplemented in Option_IntVector.

Definition at line 97 of file Option.cpp.

Referenced by OptionsCont::getIntVector().

Here is the caller graph for this function:

◆ getString()

std::string Option::getString ( ) 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.

Returns
Returns the stored string if being an instance of Option_String or Option_FileName
Exceptions
InvalidArgumentIf the class is not an instance of Option_String or Option_FileName

Reimplemented in Option_FileName, and Option_String.

Definition at line 85 of file Option.cpp.

Referenced by OptionsCont::getString().

Here is the caller graph for this function:

◆ getStringVector()

const StringVector & Option::getStringVector ( ) const
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.

Returns
Returns the stored string vector if being an instance of Option_StringVector
Exceptions
InvalidArgumentIf the class is not an instance of Option_StringVector

Reimplemented in Option_StringVector.

Definition at line 102 of file Option.cpp.

Referenced by OptionsCont::getStringVector().

Here is the caller graph for this function:

◆ getTypeName()

const std::string & Option::getTypeName ( ) const
virtual

Returns the mml-type name of this option.

The type name stored in myTypeName is returned.

Returns
The man-readable type name

Definition at line 172 of file Option.cpp.

References myTypeName.

Referenced by OptionsCont::getTypeName(), OptionsCont::printHelp(), OptionsCont::printHelpOnTopic(), OptionsCont::writeConfiguration(), and OptionsCont::writeSchema().

Here is the caller graph for this function:

◆ getValueString()

virtual std::string Option::getValueString ( ) const
pure virtual

Returns the string-representation of the value.

The stored value is encoded into a string and returned.

Returns
The stored value encoded into a string-

Implemented in Option_FileName, Option_StringVector, Option_IntVector, Option_BoolExtended, Option_Bool, Option_Float, Option_String, and Option_Integer.

Referenced by OptionsCont::getValueString(), and OptionsCont::writeConfiguration().

Here is the caller graph for this function:

◆ isBool()

bool Option::isBool ( ) const
virtual

Returns the information whether the option is a bool option.

Returns false. Only Option_Bool overrides this method returning true.

Returns
true if the Option is an Option_Bool, false otherwise

Reimplemented in Option_Bool.

Definition at line 124 of file Option.cpp.

Referenced by OptionsCont::isBool(), OptionsCont::printHelp(), and OptionsCont::printHelpOnTopic().

Here is the caller graph for this function:

◆ isDefault()

bool Option::isDefault ( ) const
virtual

Returns the information whether the option holds the default value.

Returns
true if the option was not set from command line / configuration, false otherwise

Definition at line 130 of file Option.cpp.

References myHaveTheDefaultValue.

Referenced by OptionsCont::writeConfiguration().

Here is the caller graph for this function:

◆ isFileName()

bool Option::isFileName ( ) const
virtual

Returns the information whether this option is a file name.

Returns false. Only Option_FileName overrides this method returning true.

Returns
true if the Option is an Option_FileName, false otherwise

Reimplemented in Option_FileName.

Definition at line 136 of file Option.cpp.

◆ isSet()

bool Option::isSet ( ) const

returns the information whether this options holds a valid value

Returns
Whether a value has been set

Definition at line 67 of file Option.cpp.

References myAmSet.

Referenced by OptionsCont::checkDependingSuboptions(), OptionsCont::isUsableFileList(), and OptionsCont::writeConfiguration().

Here is the caller graph for this function:

◆ isWriteable()

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.

Returns
Whether the option may be set from the command line / configuration

Definition at line 142 of file Option.cpp.

References myAmWritable.

Referenced by OptionsCont::isWriteable(), and OptionsCont::set().

Here is the caller graph for this function:

◆ makeUnsetWithDefault()

template<class OptionType , class ValueType >
static OptionType* Option::makeUnsetWithDefault ( ValueType  def)
inlinestatic

Create a new Option of the given type with given default value but make it unset.

Note
Was implemented to allow warning once if user didn't set the option, refs. #4567
See also
MSDeviceSSM::insertOptions()

Definition at line 265 of file Option.h.

◆ markSet()

bool Option::markSet ( )
protected

Marks the information as set.

Sets the "myAmSet" - information. Returns whether the option was writeable before.

Returns
Whether the option was not set before.

Definition at line 107 of file Option.cpp.

References myAmSet, myAmWritable, and myHaveTheDefaultValue.

Referenced by Option_Integer::set(), Option_String::set(), Option_Float::set(), Option_Bool::set(), Option_BoolExtended::set(), Option_IntVector::set(), and Option_StringVector::set().

Here is the caller graph for this function:

◆ operator=()

Option & Option::operator= ( const Option s)
protectedvirtual

Assignment operator.

Definition at line 55 of file Option.cpp.

References myAmSet, myAmWritable, and myHaveTheDefaultValue.

Referenced by Option_Bool::operator=(), Option_BoolExtended::operator=(), Option_Float::operator=(), Option_Integer::operator=(), Option_IntVector::operator=(), Option_String::operator=(), and Option_StringVector::operator=().

Here is the caller graph for this function:

◆ resetDefault()

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 154 of file Option.cpp.

References myHaveTheDefaultValue.

Referenced by OptionsCont::setDefault().

Here is the caller graph for this function:

◆ resetWritable()

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 148 of file Option.cpp.

References myAmWritable.

◆ set()

virtual bool Option::set ( const std::string &  v)
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.

Returns
Whether the new value could be set
Exceptions
InvalidArgumentIf the value could not be converted

Implemented in Option_StringVector, Option_IntVector, Option_BoolExtended, Option_Bool, Option_Float, Option_String, and Option_Integer.

Referenced by OptionsCont::set().

Here is the caller graph for this function:

◆ setDescription()

void Option::setDescription ( const std::string &  desc)

Sets the description of what this option does.

The description stored in myDescription is returned.

Returns
The description of this option's purpose

Definition at line 166 of file Option.cpp.

References myDescription.

Referenced by OptionsCont::addDescription().

Here is the caller graph for this function:

◆ unSet()

void Option::unSet ( )

marks this option as unset

Definition at line 117 of file Option.cpp.

References myAmSet, and myAmWritable.

Field Documentation

◆ myAmSet

bool Option::myAmSet
private

information whether the value is set

Definition at line 308 of file Option.h.

Referenced by isSet(), markSet(), operator=(), and unSet().

◆ myAmWritable

bool Option::myAmWritable
private

information whether the value may be changed

Definition at line 314 of file Option.h.

Referenced by isWriteable(), markSet(), operator=(), resetWritable(), and unSet().

◆ myDescription

std::string Option::myDescription
private

The description what this option does.

Definition at line 317 of file Option.h.

Referenced by getDescription(), and setDescription().

◆ myHaveTheDefaultValue

bool Option::myHaveTheDefaultValue
private

information whether the value is the default value (is then set)

Definition at line 311 of file Option.h.

Referenced by isDefault(), markSet(), operator=(), and resetDefault().

◆ myTypeName

std::string Option::myTypeName
protected

The documentation for this class was generated from the following files: