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 156 of file configimpl.h.

Constructor & Destructor Documentation

◆ ConfigEnum()

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

Definition at line 159 of file configimpl.h.

161 {
162 m_name = name;
163 m_doc = doc;
164 m_value = defVal;
165 m_defValue = defVal;
166 }
DString m_defValue
Definition configimpl.h:182
DString m_value
Definition configimpl.h:181
ConfigOption(OptionType t)
Definition configimpl.h:64
DString name() const
Definition configimpl.h:71
DString m_name
Definition configimpl.h:96
@ O_Enum
A fixed set of items.
Definition configimpl.h:50
DString m_doc
Definition configimpl.h:97

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

Referenced by ConfigImpl::addEnum().

Member Function Documentation

◆ addValue()

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

Definition at line 167 of file configimpl.h.

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

References m_valueRange.

◆ compareDoxyfile()

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

Implements ConfigOption.

Definition at line 463 of file configimpl.l.

464{
465 if (!isDefault()) writeTemplate(t,true,true);
466}
void writeTemplate(TextStream &t, bool sl, bool) override
Definition configimpl.l:446
bool isDefault() override
Definition configimpl.h:177

References isDefault(), and writeTemplate().

◆ convertStrToVal()

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

Reimplemented from ConfigOption.

Definition at line 259 of file configimpl.l.

260{
261 if (m_value.empty())
262 {
264 return;
265 }
266 if (compareMode == Config::CompareMode::CompressedNoEnv)
267 {
268 if (containsEnvVar(m_value)) return;
269 }
270 DString val = m_value.stripWhiteSpace().lower();
271 for (const auto &s : m_valueRange)
272 {
273 if (s.lower() == val)
274 {
275 m_value = s;
276 return;
277 }
278 }
279
280 ConfigImpl::config_warn("argument '{}' for option {} is not a valid enum value\n"
281 "Using the default: {}!\n",m_value,m_name,m_defValue);
283}
static void config_warn(fmt::format_string< Args... > fmt, Args &&... args)
Definition configimpl.h:627
DString lower() const
Definition dstring.h:331
bool empty() const
Returns true iff the string is empty (std::string compatible alias for isEmpty()).
Definition dstring.h:153
DString stripWhiteSpace() const
returns a copy of this string with leading and trailing whitespace removed
Definition dstring.h:342
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 176 of file configimpl.h.

176{ m_value = m_defValue; }

References m_defValue, and m_value.

◆ isDefault()

bool ConfigEnum::isDefault ( )
inlineoverridevirtual

Reimplemented from ConfigOption.

Definition at line 177 of file configimpl.h.

177{ 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 1535 of file configimpl.l.

1536{
1538}
static void substEnvVarsInString(DString &s)

References m_value, and substEnvVarsInString().

◆ valueRef()

DString * ConfigEnum::valueRef ( )
inline

Definition at line 169 of file configimpl.h.

169{ 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 168 of file configimpl.h.

168{ return m_valueRange; }

References m_valueRange.

◆ writeTemplate()

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

Implements ConfigOption.

Definition at line 446 of file configimpl.l.

447{
448 if (!sl)
449 {
450 t << "\n";
452 t << "\n";
453 }
454 else if (!m_userComment.empty())
455 {
457 }
460 t << "\n";
461}
DString m_spaces
Definition configimpl.h:95
DString m_userComment
Definition configimpl.h:100
void writeStringValue(TextStream &t, const DString &s, bool initSpace=true, bool wasQuoted=false)
Definition configimpl.l:139
DString left(size_t len) const
Definition dstring.h:311
size_t length() const
Returns the length of the string, not counting the 0-terminator.
Definition dstring.h:156
static DString convertToComment(const DString &s, const DString &u)
Definition configimpl.l:88

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 468 of file configimpl.l.

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

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

◆ writeXSDDoxyfile()

void ConfigEnum::writeXSDDoxyfile ( TextStream & t)
overridevirtual

Implements ConfigOption.

Definition at line 480 of file configimpl.l.

481{
482 t << " <xsd:enumeration value=\"" << m_name << "\"/>\n";
483}

References ConfigOption::m_name.

Member Data Documentation

◆ m_defValue

DString ConfigEnum::m_defValue
private

Definition at line 182 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 180 of file configimpl.h.

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


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