Doxygen
Loading...
Searching...
No Matches
ConfigEnum Class Referencefinal

Class representing an enum type option. More...

#include <src/configimpl.h>

Inheritance diagram for ConfigEnum:
Collaboration diagram for ConfigEnum:

Public Member Functions

 ConfigEnum (const char *name, const char *doc, const char *defVal)
void addValue (const char *v)
const std::vector< DString > & values () const
DStringvalueRef ()
void substEnvVars () override
void writeTemplate (TextStream &t, bool sl, bool) override
void convertStrToVal (Config::CompareMode compareMode) override
void compareDoxyfile (TextStream &t, Config::CompareMode compareMode) override
void writeXMLDoxyfile (TextStream &t) override
void writeXSDDoxyfile (TextStream &t) override
void init () override
bool isDefault () override
Public Member Functions inherited from ConfigOption
 ConfigOption (OptionType t)
OptionType kind () const
DString name () const
DString docs () const
DString dependsOn () const
void addDependency (const char *dep)
void setEncoding (const DString &e)
void setUserComment (const DString &u)

Private Attributes

std::vector< DStringm_valueRange
DString m_value
DString m_defValue

Additional Inherited Members

Public Types inherited from ConfigOption
enum  OptionType {
  O_Info , O_List , O_Enum , O_String ,
  O_Int , O_Bool , O_Obsolete , O_Disabled
}
enum  { MAX_OPTION_LENGTH = 23 }
Protected Member Functions inherited from ConfigOption
virtual void emptyValueToDefault ()
void writeBoolValue (TextStream &t, bool v, bool initSpace=true)
void writeIntValue (TextStream &t, int i, bool initSpace=true)
void writeStringValue (TextStream &t, const DString &s, bool initSpace=true, bool wasQuoted=false)
void writeStringList (TextStream &t, const StringVector &l)
Protected Attributes inherited from ConfigOption
DString m_spaces
DString m_name
DString m_doc
DString m_dependency
DString m_encoding
DString m_userComment
OptionType m_kind

Detailed Description

Class representing an enum type option.

Definition at line 152 of file configimpl.h.

Constructor & Destructor Documentation

◆ ConfigEnum()

ConfigEnum::ConfigEnum ( const char * name,
const char * doc,
const char * defVal )
inline

Definition at line 155 of file configimpl.h.

157 {
158 m_name = name;
159 m_doc = doc;
160 m_value = defVal;
161 m_defValue = defVal;
162 }
DString m_defValue
Definition configimpl.h:178
DString m_value
Definition configimpl.h:177
ConfigOption(OptionType t)
Definition configimpl.h:60
DString name() const
Definition configimpl.h:67
DString m_name
Definition configimpl.h:92
@ O_Enum
A fixed set of items.
Definition configimpl.h:46
DString m_doc
Definition configimpl.h:93

References ConfigOption::ConfigOption(), m_defValue, ConfigOption::m_doc, ConfigOption::m_name, m_value, ConfigOption::name(), and ConfigOption::O_Enum.

Member Function Documentation

◆ addValue()

void ConfigEnum::addValue ( const char * v)
inline

Definition at line 163 of file configimpl.h.

163{ m_valueRange.emplace_back(v); }
std::vector< DString > m_valueRange
Definition configimpl.h:176

References m_valueRange.

◆ compareDoxyfile()

void ConfigEnum::compareDoxyfile ( TextStream & t,
Config::CompareMode compareMode )
overridevirtual

Implements ConfigOption.

Definition at line 459 of file configimpl.l.

460{
461 if (!isDefault()) writeTemplate(t,true,true);
462}
void writeTemplate(TextStream &t, bool sl, bool) override
Definition configimpl.l:442
bool isDefault() override
Definition configimpl.h:173

References isDefault(), and writeTemplate().

◆ convertStrToVal()

void ConfigEnum::convertStrToVal ( Config::CompareMode compareMode)
overridevirtual

Reimplemented from ConfigOption.

Definition at line 255 of file configimpl.l.

256{
257 if (m_value.empty())
258 {
260 return;
261 }
262 if (compareMode == Config::CompareMode::CompressedNoEnv)
263 {
264 if (containsEnvVar(m_value)) return;
265 }
266 DString val = m_value.stripWhiteSpace().lower();
267 for (const auto &s : m_valueRange)
268 {
269 if (s.lower() == val)
270 {
271 m_value = s;
272 return;
273 }
274 }
275
276 ConfigImpl::config_warn("argument '{}' for option {} is not a valid enum value\n"
277 "Using the default: {}!\n",m_value,m_name,m_defValue);
279}
static void config_warn(fmt::format_string< Args... > fmt, Args &&... args)
Definition configimpl.h:623
DString lower() const
Definition dstring.h:326
bool empty() const
Returns true iff the string is empty (std::string compatible alias for isEmpty()).
Definition dstring.h:148
DString stripWhiteSpace() const
returns a copy of this string with leading and trailing whitespace removed
Definition dstring.h:337
static bool containsEnvVar(DString &str)

References Config::CompressedNoEnv, ConfigImpl::config_warn(), containsEnvVar(), DString::empty(), DString::lower(), m_defValue, ConfigOption::m_name, m_value, m_valueRange, and DString::stripWhiteSpace().

◆ init()

void ConfigEnum::init ( )
inlineoverridevirtual

Reimplemented from ConfigOption.

Definition at line 172 of file configimpl.h.

172{ m_value = m_defValue; }

References m_defValue, and m_value.

◆ isDefault()

bool ConfigEnum::isDefault ( )
inlineoverridevirtual

Reimplemented from ConfigOption.

Definition at line 173 of file configimpl.h.

173{ return m_value == m_defValue; }

References m_defValue, and m_value.

Referenced by compareDoxyfile(), and writeXMLDoxyfile().

◆ substEnvVars()

void ConfigEnum::substEnvVars ( )
overridevirtual

Implements ConfigOption.

Definition at line 1530 of file configimpl.l.

1531{
1533}
static void substEnvVarsInString(DString &s)

References m_value, and substEnvVarsInString().

◆ valueRef()

DString * ConfigEnum::valueRef ( )
inline

Definition at line 165 of file configimpl.h.

165{ return &m_value; }

References m_value.

Referenced by DocPara::handleDoxyConfig(), and Config::updateObsolete().

◆ values()

const std::vector< DString > & ConfigEnum::values ( ) const
inline

Definition at line 164 of file configimpl.h.

164{ return m_valueRange; }

References m_valueRange.

◆ writeTemplate()

void ConfigEnum::writeTemplate ( TextStream & t,
bool sl,
bool  )
overridevirtual

Implements ConfigOption.

Definition at line 442 of file configimpl.l.

443{
444 if (!sl)
445 {
446 t << "\n";
448 t << "\n";
449 }
450 else if (!m_userComment.empty())
451 {
453 }
456 t << "\n";
457}
DString m_spaces
Definition configimpl.h:91
DString m_userComment
Definition configimpl.h:96
void writeStringValue(TextStream &t, const DString &s, bool initSpace=true, bool wasQuoted=false)
Definition configimpl.l:135
DString left(size_t len) const
Definition dstring.h:306
size_t length() const
Returns the length of the string, not counting the 0-terminator.
Definition dstring.h:151
static DString convertToComment(const DString &s, const DString &u)
Definition configimpl.l:84

References convertToComment(), DString::empty(), DString::left(), DString::length(), ConfigOption::m_doc, ConfigOption::m_name, ConfigOption::m_spaces, ConfigOption::m_userComment, m_value, ConfigOption::MAX_OPTION_LENGTH, and ConfigOption::writeStringValue().

Referenced by compareDoxyfile().

◆ writeXMLDoxyfile()

void ConfigEnum::writeXMLDoxyfile ( TextStream & t)
overridevirtual

Implements ConfigOption.

Definition at line 464 of file configimpl.l.

465{
466 t << " <option id='" << m_name << "'";
467 t << " default='" << (isDefault() ? "yes" : "no") << "'";
468 t << " type='string'";
469 t << ">";
470 t << "<value>";
471 writeStringValue(t,m_value,false);
472 t << "</value>";
473 t << "</option>\n";
474}

References isDefault(), ConfigOption::m_name, m_value, and ConfigOption::writeStringValue().

◆ writeXSDDoxyfile()

void ConfigEnum::writeXSDDoxyfile ( TextStream & t)
overridevirtual

Implements ConfigOption.

Definition at line 476 of file configimpl.l.

477{
478 t << " <xsd:enumeration value=\"" << m_name << "\"/>\n";
479}

References ConfigOption::m_name.

Member Data Documentation

◆ m_defValue

DString ConfigEnum::m_defValue
private

Definition at line 178 of file configimpl.h.

Referenced by ConfigEnum(), convertStrToVal(), init(), and isDefault().

◆ m_value

DString ConfigEnum::m_value
private

◆ m_valueRange

std::vector<DString> ConfigEnum::m_valueRange
private

Definition at line 176 of file configimpl.h.

Referenced by addValue(), convertStrToVal(), and values().


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