BornAgain  1.18.0
Simulate and fit neutron and x-ray scattering at grazing incidence
MultiOption.cpp
Go to the documentation of this file.
1 // ************************************************************************** //
2 //
3 // BornAgain: simulate and fit scattering at grazing incidence
4 //
5 //! @file Fit/Tools/MultiOption.cpp
6 //! @brief Implements class MultiOption
7 //!
8 //! @homepage http://www.bornagainproject.org
9 //! @license GNU General Public License v3 or higher (see COPYING)
10 //! @copyright Forschungszentrum Jülich GmbH 2018
11 //! @authors Scientific Computing Group at MLZ (see CITATION, AUTHORS)
12 //
13 // ************************************************************************** //
14 
15 #include "Fit/Tools/MultiOption.h"
16 #include <boost/lexical_cast.hpp>
17 
18 MultiOption::MultiOption(const std::string& name) : m_name(name) {}
19 
20 std::string MultiOption::name() const
21 {
22  return m_name;
23 }
24 
25 std::string MultiOption::description() const
26 {
27  return m_description;
28 }
29 
30 void MultiOption::setDescription(const std::string& description)
31 {
33 }
34 
36 {
37  return m_value;
38 }
39 
41 {
42  return m_default_value;
43 }
44 
45 //! Sets the value of option from string.
46 //! TODO find more elegant way (without if/else and boost::lexical_cast
47 
48 void MultiOption::setFromString(const std::string& value)
49 {
50  if (m_value.which() == 0)
51  m_value = boost::lexical_cast<int>(value);
52 
53  else if (m_value.which() == 1)
54  m_value = boost::lexical_cast<double>(value);
55 
56  else
57  m_value = value;
58 }
Declares class MultiOption.
MultiOption(const std::string &name="")
Definition: MultiOption.cpp:18
void setFromString(const std::string &value)
Sets the value of option from string.
Definition: MultiOption.cpp:48
variant_t & defaultValue()
Definition: MultiOption.cpp:40
variant_t m_value
Definition: MultiOption.h:54
void setDescription(const std::string &description)
Definition: MultiOption.cpp:30
variant_t m_default_value
Definition: MultiOption.h:55
std::string name() const
Definition: MultiOption.cpp:20
std::string m_name
Definition: MultiOption.h:52
variant_t & value()
Definition: MultiOption.cpp:35
std::string description() const
Definition: MultiOption.cpp:25
boost::variant< int, double, std::string > variant_t
Definition: MultiOption.h:28
std::string m_description
Definition: MultiOption.h:53