Reduce indentation in argumentparser.cpp

This commit is contained in:
Martchus 2019-05-04 22:35:00 +02:00
parent 04a8ef02d5
commit 80fba8b6d4
1 changed files with 50 additions and 49 deletions

View File

@ -620,13 +620,14 @@ void Argument::setSubArguments(const ArgumentInitializerList &secondaryArguments
*/ */
void Argument::addSubArgument(Argument *arg) void Argument::addSubArgument(Argument *arg)
{ {
if (find(m_subArgs.cbegin(), m_subArgs.cend(), arg) == m_subArgs.cend()) { if (find(m_subArgs.cbegin(), m_subArgs.cend(), arg) != m_subArgs.cend()) {
return;
}
m_subArgs.push_back(arg); m_subArgs.push_back(arg);
if (find(arg->m_parents.cbegin(), arg->m_parents.cend(), this) == arg->m_parents.cend()) { if (find(arg->m_parents.cbegin(), arg->m_parents.cend(), this) == arg->m_parents.cend()) {
arg->m_parents.push_back(this); arg->m_parents.push_back(this);
} }
} }
}
/*! /*!
* \brief Returns whether at least one parent argument is present. * \brief Returns whether at least one parent argument is present.
@ -668,7 +669,9 @@ Argument *Argument::conflictsWithArgument() const
*/ */
Argument *Argument::wouldConflictWithArgument() const Argument *Argument::wouldConflictWithArgument() const
{ {
if (!isCombinable()) { if (isCombinable()) {
return nullptr;
}
for (Argument *parent : m_parents) { for (Argument *parent : m_parents) {
for (Argument *sibling : parent->subArguments()) { for (Argument *sibling : parent->subArguments()) {
if (sibling != this && sibling->isPresent() && !sibling->isCombinable()) { if (sibling != this && sibling->isPresent() && !sibling->isCombinable()) {
@ -676,7 +679,6 @@ Argument *Argument::wouldConflictWithArgument() const
} }
} }
} }
}
return nullptr; return nullptr;
} }
@ -742,13 +744,16 @@ ArgumentParser::ArgumentParser()
*/ */
void ArgumentParser::setMainArguments(const ArgumentInitializerList &mainArguments) void ArgumentParser::setMainArguments(const ArgumentInitializerList &mainArguments)
{ {
if (mainArguments.size()) { if (!mainArguments.size()) {
m_mainArgs.clear();
}
for (Argument *arg : mainArguments) { for (Argument *arg : mainArguments) {
arg->m_isMainArg = true; arg->m_isMainArg = true;
} }
m_mainArgs.assign(mainArguments); m_mainArgs.assign(mainArguments);
if (!m_defaultArg) { if (m_defaultArg || (*mainArguments.begin())->requiredValueCount()) {
if (!(*mainArguments.begin())->requiredValueCount()) { return;
}
bool subArgsRequired = false; bool subArgsRequired = false;
for (const Argument *subArg : (*mainArguments.begin())->subArguments()) { for (const Argument *subArg : (*mainArguments.begin())->subArguments()) {
if (subArg->isRequired()) { if (subArg->isRequired()) {
@ -760,11 +765,6 @@ void ArgumentParser::setMainArguments(const ArgumentInitializerList &mainArgumen
m_defaultArg = *mainArguments.begin(); m_defaultArg = *mainArguments.begin();
} }
} }
}
} else {
m_mainArgs.clear();
}
}
/*! /*!
* \brief Adds the specified \a argument to the main argument. * \brief Adds the specified \a argument to the main argument.
@ -1587,7 +1587,9 @@ void ArgumentParser::checkConstraints(const ArgumentVector &args)
throw Failure(argsToString("The argument \"", conflictingArgument->name(), "\" can not be combined with \"", arg->name(), "\".")); throw Failure(argsToString("The argument \"", conflictingArgument->name(), "\" can not be combined with \"", arg->name(), "\"."));
} }
for (size_t i = 0; i != occurrences; ++i) { for (size_t i = 0; i != occurrences; ++i) {
if (!arg->allRequiredValuesPresent(i)) { if (arg->allRequiredValuesPresent(i)) {
continue;
}
stringstream ss(stringstream::in | stringstream::out); stringstream ss(stringstream::in | stringstream::out);
ss << "Not all parameter for argument \"" << arg->name() << "\" "; ss << "Not all parameter for argument \"" << arg->name() << "\" ";
if (i) { if (i) {
@ -1606,7 +1608,6 @@ void ArgumentParser::checkConstraints(const ArgumentVector &args)
} }
throw Failure(ss.str()); throw Failure(ss.str());
} }
}
// check contraints of sub arguments recursively // check contraints of sub arguments recursively
checkConstraints(arg->m_subArgs); checkConstraints(arg->m_subArgs);