https://mooseframework.inl.gov
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Private Attributes | Friends | List of all members
MooseEnum Class Reference

This is a "smart" enum class intended to replace many of the shortcomings in the C++ enum type It should be initialized with a space-delimited list of strings which become the enum values. More...

#include <MooseEnum.h>

Inheritance diagram for MooseEnum:
[legend]

Public Types

enum class  CompareMode { COMPARE_NAME , COMPARE_ID , COMPARE_BOTH }
 Enum item for controlling comparison in the compareCurrent method. More...
 

Public Member Functions

 MooseEnum (std::string names, std::string default_name="", bool allow_out_of_range=false)
 Constructor that takes a list of enumeration values, and a separate string to set a default for this instance.
 
 MooseEnum (const MooseEnum &other_enum)
 Copy Constructor for use when creating vectors of MooseEnums.
 
MooseEnumoperator= (const MooseEnum &other_enum)=default
 Copy Assignment operator must be explicitly defined when a copy ctor exists and this method is used.
 
virtual ~MooseEnum ()=default
 
 operator int () const
 Cast operators to make this object behave as value_types and std::string these methods can be used so that this class behaves more like a normal value_type enumeration.
 
 operator std::string () const
 
bool operator== (const char *value) const
 Comparison operators for comparing with character constants, MooseEnums or integer values.
 
bool operator!= (const char *value) const
 
bool operator== (int value) const
 
bool operator!= (int value) const
 
bool operator== (unsigned short value) const
 
bool operator!= (unsigned short value) const
 
bool operator== (const MooseEnum &value) const
 
bool operator!= (const MooseEnum &value) const
 
bool compareCurrent (const MooseEnum &other, CompareMode mode=CompareMode::COMPARE_NAME) const
 Method for comparing currently set values between MooseEnum.
 
virtual bool isValid () const override
 IsValid.
 
template<typename T >
getEnum () const
 get the current value cast to the enum type T
 
virtual void deprecate (const std::string &name, const std::string &raw_name="")
 Deprecates various options in the MOOSE enum.
 
std::vector< std::string > getNames () const
 Method for returning a vector of all valid enumeration names for this instance.
 
std::string getRawNames () const
 Method for returning the raw name strings for this instance.
 
std::vector< intgetIDs () const
 Method for returning a vector of ids for this instance.
 
bool isOutOfRangeAllowed () const
 isOutOfRangeAllowed
 
const std::set< MooseEnumItem > & items () const
 Return the complete set of available flags.
 
void addDocumentation (const std::string &name, const std::string &doc)
 Add an item documentation string.
 
const std::map< MooseEnumItem, std::string > & getItemDocumentation () const
 Get the map containing each item's documentation string.
 
int getNextValidID () const
 Compute the next valid ID.
 
MooseEnumBaseoperator+= (const std::string &name)
 Adds an enumeration item from name.
 
MooseEnumBaseoperator+= (const std::initializer_list< std::string > &names)
 Adds enumeration items from a list of names.
 
MooseEnumoperator= (const std::string &name)
 Assignment operators/methods.
 
MooseEnumoperator= (int value)
 
MooseEnumoperator= (const MooseEnumItem &item)
 
void assign (const std::string &name, const std::optional< std::string > &context={})
 
void assign (int value)
 
void assign (const MooseEnumItem &item)
 
std::set< MooseEnumItem >::const_iterator find (const MooseEnumItem &other) const
 Locate an item.
 
std::set< MooseEnumItem >::const_iterator find (const std::string &name) const
 
std::set< MooseEnumItem >::const_iterator find (int id) const
 

Protected Member Functions

virtual void checkDeprecated () const override
 Check whether the current value is deprecated when called.
 
 MooseEnum ()
 Constructor for use by libmesh::Parameters and ReporterMode.
 
void checkDeprecated (const MooseEnumItem &item) const
 Check and warn deprecated values.
 
void addEnumerationNames (const std::string &names)
 Methods to add possible enumeration value to the enum.
 
const MooseEnumItemaddEnumerationName (const std::string &raw_name)
 
const MooseEnumItemaddEnumerationName (const std::string &name, const int &value)
 
const MooseEnumItemaddEnumerationItem (const MooseEnumItem &item)
 

Protected Attributes

std::set< MooseEnumItem_items
 Storage for the assigned items.
 
std::map< MooseEnumItem, MooseEnumItem_deprecated_items
 The map of deprecated names and optional replacements.
 
bool _allow_out_of_range
 Flag to enable enumeration items not previously defined.
 
std::map< MooseEnumItem, std::string > _item_documentation
 The map of items and their respective documentation strings.
 

Private Attributes

MooseEnumItem _current
 The current id.
 

Friends

class libMesh::Parameters
 
std::ostream & operator<< (std::ostream &out, const MooseEnum &obj)
 Operator for printing to iostreams.
 

Detailed Description

This is a "smart" enum class intended to replace many of the shortcomings in the C++ enum type It should be initialized with a space-delimited list of strings which become the enum values.

You may also optionally supply numeric ints for one or more values similar to a C++ enum. This is done with the "=" sign (no spaces). It can be used any place where an integer (switch statements), const char* or std::string is expected. In addition the InputParameters system has full support for this Enum type

Definition at line 54 of file MooseEnum.h.

Member Enumeration Documentation

◆ CompareMode

enum class MooseEnum::CompareMode
strong

Enum item for controlling comparison in the compareCurrent method.

Enumerator
COMPARE_NAME 
COMPARE_ID 
COMPARE_BOTH 

Definition at line 60 of file MooseEnum.h.

Constructor & Destructor Documentation

◆ MooseEnum() [1/3]

MooseEnum::MooseEnum ( std::string  names,
std::string  default_name = "",
bool  allow_out_of_range = false 
)

Constructor that takes a list of enumeration values, and a separate string to set a default for this instance.

Parameters
names- a list of names for this enumeration
default_name- the default value for this enumeration instance
allow_out_of_range- determines whether this enumeration will accept values outside of it's range of defined values.

Definition at line 22 of file MooseEnum.C.

23 : MooseEnumBase(names, allow_out_of_range), _current("", MooseEnumItem::INVALID_ID)
24{
25 *this = default_name;
26}
MooseEnumBase()
Private constuctor for use by libmesh::Parameters.
static const int INVALID_ID
MooseEnumItem _current
The current id.
Definition MooseEnum.h:167

◆ MooseEnum() [2/3]

MooseEnum::MooseEnum ( const MooseEnum other_enum)

Copy Constructor for use when creating vectors of MooseEnums.

Parameters
other_enum- The other enumeration to copy state from

Definition at line 28 of file MooseEnum.C.

29 : MooseEnumBase(other_enum), _current(other_enum._current)
30{
31}

◆ ~MooseEnum()

virtual MooseEnum::~MooseEnum ( )
virtualdefault

◆ MooseEnum() [3/3]

MooseEnum::MooseEnum ( )
protected

Constructor for use by libmesh::Parameters and ReporterMode.

Private constuctor for use by libmesh::Parameters.

Definition at line 36 of file MooseEnum.C.

Member Function Documentation

◆ addDocumentation()

void MooseEnumBase::addDocumentation ( const std::string &  name,
const std::string &  doc 
)
inherited

Add an item documentation string.

Definition at line 175 of file MooseEnumBase.C.

176{
177 auto it = find(name);
178 if (it == _items.end())
179 mooseError("Item '", name, "' not found in addDocumentation.");
180 _item_documentation[*it] = doc;
181}
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application.
Definition MooseError.h:311
std::set< MooseEnumItem > _items
Storage for the assigned items.
std::set< MooseEnumItem >::const_iterator find(const MooseEnumItem &other) const
Locate an item.
std::map< MooseEnumItem, std::string > _item_documentation
The map of items and their respective documentation strings.

Referenced by MortarConsumerInterface::triangulationParams(), MortarConsumerInterface::validParams(), ReferenceResidualInterface::validParams(), MFEMSamplerBase::validParams(), and PseudoTimestep::validParams().

◆ addEnumerationItem()

const MooseEnumItem & MooseEnumBase::addEnumerationItem ( const MooseEnumItem item)
protectedinherited

Definition at line 117 of file MooseEnumBase.C.

118{
119 const auto & item_it = find(item);
120 if (item_it != _items.end()) // do nothing for identical insertions
121 return *item_it;
122
123 if (find(item.id()) != _items.end())
124 mooseError("The supplied id ",
125 item.id(),
126 " already exists in the enumeration, cannot not add '",
127 item,
128 "'.");
129 if (find(item.name()) != _items.end())
130 mooseError("The name '", item.name(), "' already exists in the enumeration.");
131
132 return *_items.insert(item).first;
133}
const std::string & name() const
const int & id() const
Return the numeric, name, or raw name.

Referenced by ExecFlagEnum::addAvailableFlags(), MooseEnumBase::addEnumerationName(), MultiMooseEnum::addValidName(), MultiMooseEnum::assignValues(), and ReporterProducerEnum::insert().

◆ addEnumerationName() [1/2]

const MooseEnumItem & MooseEnumBase::addEnumerationName ( const std::string &  name,
const int value 
)
protectedinherited

Definition at line 111 of file MooseEnumBase.C.

112{
113 return addEnumerationItem(MooseEnumItem(name, value));
114}
const MooseEnumItem & addEnumerationItem(const MooseEnumItem &item)
Class for containing MooseEnum item information.

◆ addEnumerationName() [2/2]

const MooseEnumItem & MooseEnumBase::addEnumerationName ( const std::string &  raw_name)
protectedinherited

Definition at line 73 of file MooseEnumBase.C.

74{
75 // Make sure the option is not malformed
76 if (raw_name.find_first_of('=') == 0 || raw_name.find_last_of('=') == raw_name.length() - 1)
77 mooseError("You cannot place whitespace around the '=' character in MooseEnumBase");
78
79 // Split on equals sign
80 std::vector<std::string> name_value;
81 MooseUtils::tokenize(MooseUtils::trim(raw_name), name_value, 1, "=");
82
83 // There should be one or two items in the name_value
84 if (name_value.size() < 1 || name_value.size() > 2)
85 mooseError("Invalid option supplied in MooseEnumBase: ", raw_name);
86
87 // Remove un-wanted space around string
88 name_value[0] = MooseUtils::trim(name_value[0]);
89
90 // See if there is a value supplied for this option
91 // strtol allows for proper conversions of both int and hex strings
92 int value;
93 if (name_value.size() == 2)
94 value = std::strtol(name_value[1].c_str(), NULL, 0);
95 else
97
98 return addEnumerationName(name_value[0], value);
99}
int getNextValidID() const
Compute the next valid ID.
const MooseEnumItem & addEnumerationName(const std::string &raw_name)
void tokenize(const std::string &str, std::vector< T > &elements, unsigned int min_len=1, const std::string &delims="/")
This function will split the passed in string on a set of delimiters appending the substrings to the ...
std::string trim(const std::string &str, const std::string &white_space=" \t\n\v\f\r")
Standard scripting language trim function.
Real value(unsigned n, unsigned alpha, unsigned beta, Real x)

Referenced by ConvergenceIterationTypeEnum::addConvergenceIterationType(), MooseEnumBase::addEnumerationName(), MooseEnumBase::addEnumerationNames(), MultiMooseEnum::addValidName(), and MooseEnumBase::operator+=().

◆ addEnumerationNames()

void MooseEnumBase::addEnumerationNames ( const std::string &  names)
protectedinherited

Methods to add possible enumeration value to the enum.

The MooseEnum/MultiMooseEnum are not designed to be modified, with respect to the list of possible values. However, this is not the case for the ExecFlagEnum which is a special type of MultiMooseEnum for managing the "execute_on" flags. These methods are used by ExecFlagEnum to allow users to modify the available execute flags for their object.

Definition at line 64 of file MooseEnumBase.C.

65{
66 std::vector<std::string> elements;
67 MooseUtils::tokenize(names, elements, 1, " ");
68 for (const std::string & raw_name : elements)
69 addEnumerationName(raw_name);
70}

Referenced by MooseEnumBase::MooseEnumBase().

◆ assign() [1/3]

void MooseEnum::assign ( const MooseEnumItem item)

Definition at line 115 of file MooseEnum.C.

116{
117 std::set<MooseEnumItem>::const_iterator iter = find(item);
118 if (iter == _items.end())
119 mooseError("Invalid item \"",
120 item,
121 "\" in MooseEnum. Valid ids are \"",
123 "\".");
124 else
125 _current = *iter;
126
128}
const std::set< MooseEnumItem > & items() const
Return the complete set of available flags.
virtual void checkDeprecated() const override
Check whether the current value is deprecated when called.
Definition MooseEnum.C:205
std::string stringify(const T &t)
conversion to string
Definition Conversion.h:64

◆ assign() [2/3]

void MooseEnum::assign ( const std::string &  name,
const std::optional< std::string > &  context = {} 
)

Definition at line 60 of file MooseEnum.C.

61{
62 if (MooseUtils::trim(name) == "")
63 {
65 return;
66 }
67
68 // Check if name can be parsed cleanly into an integer
69 int value = 0;
70 bool integer = (std::istringstream(MooseUtils::trim(name)) >> value).eof();
71
72 if (auto iter = find(name); iter != _items.end())
73 _current = *iter;
74 else if (auto subs = find(value); subs != _items.end() && integer)
75 _current = *subs;
76 else
77 {
78 if (!_allow_out_of_range) // Are out of range values allowed?
79 mooseError(context ? (*context + ":\n\n") : std::string(""),
80 "Invalid option \"",
81 name,
82 "\" in MooseEnum. Valid options (not case-sensitive) are \"",
84 "\".");
85
86 _current = MooseEnumItem(name, integer ? value : getNextValidID());
87 _items.insert(_current);
88 }
89
91}
bool _allow_out_of_range
Flag to enable enumeration items not previously defined.
std::string getRawNames() const
Method for returning the raw name strings for this instance.
operator std::string() const
Definition MooseEnum.h:96
std::string name(const ElemQuality q)

Referenced by ReporterContextBase::init(), operator=(), operator=(), and operator=().

◆ assign() [3/3]

void MooseEnum::assign ( int  value)

Definition at line 94 of file MooseEnum.C.

95{
96 if (value == MooseEnumItem::INVALID_ID)
97 {
99 return;
100 }
101
102 if (auto iter = find(value); iter != _items.end())
103 _current = *iter;
104 else
105 mooseError("Invalid id \"",
106 value,
107 "\" in MooseEnum. Valid ids are \"",
109 "\".");
110
112}
std::vector< int > getIDs() const
Method for returning a vector of ids for this instance.

◆ checkDeprecated() [1/2]

void MooseEnum::checkDeprecated ( ) const
overrideprotectedvirtual

Check whether the current value is deprecated when called.

Implements MooseEnumBase.

Definition at line 205 of file MooseEnum.C.

206{
208}
virtual void checkDeprecated() const =0
Method that must be implemented to check derived class values against the _deprecated_names.

Referenced by assign(), assign(), and assign().

◆ checkDeprecated() [2/2]

void MooseEnumBase::checkDeprecated ( const MooseEnumItem item) const
protectedinherited

Check and warn deprecated values.

Definition at line 136 of file MooseEnumBase.C.

137{
138 std::map<MooseEnumItem, MooseEnumItem>::const_iterator it = _deprecated_items.find(item);
139 if (it != _deprecated_items.end())
140 {
141 if (it->second.name().empty())
142 mooseWarning(item.name() + " is deprecated");
143 else
144 mooseWarning(item.name() + " is deprecated, consider using " + it->second.name());
145 }
146}
void mooseWarning(Args &&... args)
Emit a warning message with the given stringified, concatenated args.
Definition MooseError.h:345
std::map< MooseEnumItem, MooseEnumItem > _deprecated_items
The map of deprecated names and optional replacements.

◆ compareCurrent()

bool MooseEnum::compareCurrent ( const MooseEnum other,
CompareMode  mode = CompareMode::COMPARE_NAME 
) const

Method for comparing currently set values between MooseEnum.

Definition at line 174 of file MooseEnum.C.

175{
176 switch (mode)
177 {
179 return (_current.id() == other._current.id()) && (_current.name() == other._current.name());
181 return _current.name() == other._current.name();
183 return _current.id() == other._current.id();
184 }
185 return false;
186}

◆ deprecate()

void MooseEnumBase::deprecate ( const std::string &  name,
const std::string &  raw_name = "" 
)
virtualinherited

Deprecates various options in the MOOSE enum.

For each deprecated option, you may supply an optional new option that will be used in a message telling the user which new option replaces the old one.

Definition at line 45 of file MooseEnumBase.C.

46{
47 std::set<MooseEnumItem>::const_iterator deprecated = find(name);
48 if (deprecated == _items.end())
49 mooseError("Cannot deprecate the enum item ", name, ", is not an available value.");
50
51 std::set<MooseEnumItem>::const_iterator replaced = find(raw_name);
52 if (replaced == _items.end())
53 mooseError("Cannot deprecate the enum item ",
54 name,
55 ", since the replaced item ",
56 raw_name,
57 " it is not an available value.");
58
59 _deprecated_items.emplace(std::make_pair(*deprecated, *replaced));
61}

◆ find() [1/3]

std::set< MooseEnumItem >::const_iterator MooseEnumBase::find ( const MooseEnumItem other) const
inherited

◆ find() [2/3]

std::set< MooseEnumItem >::const_iterator MooseEnumBase::find ( const std::string &  name) const
inherited

Definition at line 190 of file MooseEnumBase.C.

191{
192 std::string upper = MooseUtils::toUpper(name);
193 return std::find_if(_items.begin(),
194 _items.end(),
195 [&upper](MooseEnumItem const & item) { return item.name() == upper; });
196}

◆ find() [3/3]

std::set< MooseEnumItem >::const_iterator MooseEnumBase::find ( int  id) const
inherited

Definition at line 199 of file MooseEnumBase.C.

200{
201 return std::find_if(
202 _items.begin(), _items.end(), [&id](MooseEnumItem const & item) { return item.id() == id; });
203}

◆ getEnum()

template<typename T >
T MooseEnum::getEnum ( ) const

get the current value cast to the enum type T

Definition at line 172 of file MooseEnum.h.

173{
174#ifdef LIBMESH_HAVE_CXX11_TYPE_TRAITS
175 static_assert(std::is_enum<T>::value == true,
176 "The type requested from MooseEnum::getEnum must be an enum type!\n\n");
177#endif
178 return static_cast<T>(_current.id());
179}

Referenced by CSG::CSGRegion::getRegionType().

◆ getIDs()

std::vector< int > MooseEnumBase::getIDs ( ) const
inherited

Method for returning a vector of ids for this instance.

Returns
a vector of ints containing the possible ids for this enumeration

Definition at line 165 of file MooseEnumBase.C.

166{
167 std::vector<int> out;
168 out.reserve(_items.size());
169 for (const auto & item : _items)
170 out.push_back(item.id());
171 return out;
172}
OStreamProxy out(std::cout)

Referenced by assign().

◆ getItemDocumentation()

const std::map< MooseEnumItem, std::string > & MooseEnumBase::getItemDocumentation ( ) const
inherited

Get the map containing each item's documentation string.

Definition at line 184 of file MooseEnumBase.C.

185{
186 return _item_documentation;
187}

◆ getNames()

std::vector< std::string > MooseEnumBase::getNames ( ) const
inherited

Method for returning a vector of all valid enumeration names for this instance.

Returns
a vector of names

Definition at line 149 of file MooseEnumBase.C.

150{
151 std::vector<std::string> out;
152 out.reserve(_items.size());
153 for (const auto & item : _items)
154 out.push_back(item.name());
155 return out;
156}

Referenced by Moose::PetscSupport::dontAddCommonKSPOptions(), and Moose::PetscSupport::dontAddCommonSNESOptions().

◆ getNextValidID()

int MooseEnumBase::getNextValidID ( ) const
inherited

Compute the next valid ID.

Definition at line 102 of file MooseEnumBase.C.

103{
104 int value = -1; // Use -1 so if no values exist the first will be zero
105 for (const auto & item : _items)
106 value = std::max(value, item.id());
107 return ++value;
108}
auto max(const L &left, const R &right)

Referenced by MooseEnumBase::addEnumerationName(), MultiMooseEnum::addValidName(), assign(), MultiMooseEnum::assignValues(), and moose::internal::ExecFlagRegistry::registerFlag().

◆ getRawNames()

std::string MooseEnumBase::getRawNames ( ) const
inherited

Method for returning the raw name strings for this instance.

Returns
a space separated list of names

Definition at line 159 of file MooseEnumBase.C.

160{
161 return Moose::stringify(_items, " ");
162}

Referenced by assign(), MultiMooseEnum::assignValues(), AdvancedOutput::enableOutputTypes(), operator==(), PiecewiseConstant::validParams(), and ComparisonPostprocessor::validParams().

◆ isOutOfRangeAllowed()

bool MooseEnumBase::isOutOfRangeAllowed ( ) const
inlineinherited

isOutOfRangeAllowed

Returns
- a Boolean indicating whether enum names out of range are allowed

Definition at line 88 of file MooseEnumBase.h.

88{ return _allow_out_of_range; }

◆ isValid()

virtual bool MooseEnum::isValid ( ) const
inlineoverridevirtual

IsValid.

Returns
- a Boolean indicating whether this Enumeration has been set

Implements MooseEnumBase.

Definition at line 139 of file MooseEnum.h.

◆ items()

const std::set< MooseEnumItem > & MooseEnumBase::items ( ) const
inlineinherited

◆ operator int()

MooseEnum::operator int ( ) const
inline

Cast operators to make this object behave as value_types and std::string these methods can be used so that this class behaves more like a normal value_type enumeration.

Definition at line 95 of file MooseEnum.h.

95{ return _current.id(); }

◆ operator std::string()

MooseEnum::operator std::string ( ) const
inline

Definition at line 96 of file MooseEnum.h.

96{ return _current.rawName(); }
const std::string & rawName() const

◆ operator!=() [1/4]

bool MooseEnum::operator!= ( const char *  value) const

Definition at line 144 of file MooseEnum.C.

145{
146 return !(*this == name);
147}

◆ operator!=() [2/4]

bool MooseEnum::operator!= ( const MooseEnum value) const

Definition at line 197 of file MooseEnum.C.

198{
199 mooseDeprecated("This method will be removed because the meaning is not well defined, please use "
200 "the 'compareCurrent' method instead.");
201 return value._current.name() != _current.name();
202}
void mooseDeprecated(Args &&... args)
Emit a deprecated code/feature message with the given stringified, concatenated args.
Definition MooseError.h:363

◆ operator!=() [3/4]

bool MooseEnum::operator!= ( int  value) const

Definition at line 156 of file MooseEnum.C.

157{
158 return value != _current;
159}

◆ operator!=() [4/4]

bool MooseEnum::operator!= ( unsigned short  value) const

Definition at line 168 of file MooseEnum.C.

169{
170 return value != _current;
171}

◆ operator+=() [1/2]

MooseEnumBase & MooseEnumBase::operator+= ( const std::initializer_list< std::string > &  names)
inherited

Adds enumeration items from a list of names.

Definition at line 224 of file MooseEnumBase.C.

225{
226 for (const auto & name : names)
227 *this += name;
228 return *this;
229}

◆ operator+=() [2/2]

MooseEnumBase & MooseEnumBase::operator+= ( const std::string &  name)
inherited

Adds an enumeration item from name.

Definition at line 216 of file MooseEnumBase.C.

217{
218 addEnumerationName(name);
220 return *this;
221}

Referenced by MultiMooseEnum::operator+=(), and MultiMooseEnum::operator+=().

◆ operator=() [1/4]

MooseEnum & MooseEnum::operator= ( const MooseEnum other_enum)
default

Copy Assignment operator must be explicitly defined when a copy ctor exists and this method is used.

◆ operator=() [2/4]

MooseEnum & MooseEnum::operator= ( const MooseEnumItem item)

Definition at line 53 of file MooseEnum.C.

54{
55 assign(item);
56 return *this;
57}
void assign(const std::string &name, const std::optional< std::string > &context={})
Definition MooseEnum.C:60

◆ operator=() [3/4]

MooseEnum & MooseEnum::operator= ( const std::string &  name)

Assignment operators/methods.

Parameters
name/int- a string or int representing one of the enumeration values.
Returns
A reference to this object for chaining

Definition at line 39 of file MooseEnum.C.

40{
41 assign(name);
42 return *this;
43}

◆ operator=() [4/4]

MooseEnum & MooseEnum::operator= ( int  value)

Definition at line 46 of file MooseEnum.C.

47{
48 assign(value);
49 return *this;
50}

◆ operator==() [1/4]

bool MooseEnum::operator== ( const char *  value) const

Comparison operators for comparing with character constants, MooseEnums or integer values.

Parameters
value- RHS value to compare against
Returns
bool - the truth value for the comparison

Definition at line 131 of file MooseEnum.C.

132{
133 std::string upper(MooseUtils::toUpper(name));
134
135 mooseAssert(_allow_out_of_range || find(upper) != _items.end(),
136 "Invalid string comparison \"" + upper +
137 "\" in MooseEnum. Valid options (not case-sensitive) are \"" + getRawNames() +
138 "\".");
139
140 return _current == upper;
141}

◆ operator==() [2/4]

bool MooseEnum::operator== ( const MooseEnum value) const

Definition at line 189 of file MooseEnum.C.

190{
191 mooseDeprecated("This method will be removed because the meaning is not well defined, please use "
192 "the 'compareCurrent' method instead.");
193 return value._current.name() == _current.name();
194}

◆ operator==() [3/4]

bool MooseEnum::operator== ( int  value) const

Definition at line 150 of file MooseEnum.C.

151{
152 return value == _current;
153}

◆ operator==() [4/4]

bool MooseEnum::operator== ( unsigned short  value) const

Definition at line 162 of file MooseEnum.C.

163{
164 return value == _current;
165}

Friends And Related Symbol Documentation

◆ libMesh::Parameters

friend class libMesh::Parameters
friend

Definition at line 143 of file MooseEnum.h.

◆ operator<<

std::ostream & operator<< ( std::ostream &  out,
const MooseEnum obj 
)
friend

Operator for printing to iostreams.

Definition at line 146 of file MooseEnum.h.

147 {
148 out << obj._current.rawName();
149 return out;
150 }

Member Data Documentation

◆ _allow_out_of_range

bool MooseEnumBase::_allow_out_of_range
protectedinherited

Flag to enable enumeration items not previously defined.

Definition at line 163 of file MooseEnumBase.h.

Referenced by assign(), MultiMooseEnum::assignValues(), MooseEnumBase::isOutOfRangeAllowed(), and operator==().

◆ _current

MooseEnumItem MooseEnum::_current
private

◆ _deprecated_items

std::map<MooseEnumItem, MooseEnumItem> MooseEnumBase::_deprecated_items
protectedinherited

The map of deprecated names and optional replacements.

Definition at line 160 of file MooseEnumBase.h.

Referenced by MooseEnumBase::checkDeprecated(), and MooseEnumBase::deprecate().

◆ _item_documentation

std::map<MooseEnumItem, std::string> MooseEnumBase::_item_documentation
protectedinherited

The map of items and their respective documentation strings.

Definition at line 166 of file MooseEnumBase.h.

Referenced by MooseEnumBase::addDocumentation(), and MooseEnumBase::getItemDocumentation().

◆ _items

std::set<MooseEnumItem> MooseEnumBase::_items
protectedinherited

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