Mercurial > hg > orthanc
diff Plugins/Samples/Common/OrthancPluginCppWrapper.cpp @ 2265:e46b0ee6c19d
allowSingleString in OrthancConfiguration::LookupListOfStrings
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Tue, 14 Feb 2017 15:59:19 +0100 |
parents | 8e5e0de75839 |
children | a344e47e9c9a |
line wrap: on
line diff
--- a/Plugins/Samples/Common/OrthancPluginCppWrapper.cpp Mon Feb 13 10:39:14 2017 +0100 +++ b/Plugins/Samples/Common/OrthancPluginCppWrapper.cpp Tue Feb 14 15:59:19 2017 +0100 @@ -598,7 +598,8 @@ bool OrthancConfiguration::LookupListOfStrings(std::list<std::string>& target, - const std::string& key) const + const std::string& key, + bool allowSingleString) const { assert(configuration_.type() == Json::objectValue); @@ -609,42 +610,53 @@ return false; } - bool ok = true; - - if (configuration_[key].type() != Json::arrayValue) + switch (configuration_[key].type()) { - ok = false; - } - else - { - for (Json::Value::ArrayIndex i = 0; ok && i < configuration_[key].size(); i++) + case Json::arrayValue: { - if (configuration_[key][i].type() == Json::stringValue) + bool ok = true; + + for (Json::Value::ArrayIndex i = 0; ok && i < configuration_[key].size(); i++) { - target.push_back(configuration_[key][i].asString()); + if (configuration_[key][i].type() == Json::stringValue) + { + target.push_back(configuration_[key][i].asString()); + } + else + { + ok = false; + } } - else + + if (ok) { - ok = false; + return true; } + + break; } + + case Json::stringValue: + if (allowSingleString) + { + target.push_back(configuration_[key].asString()); + return true; + } + + break; + + default: + break; } - if (ok) - { - return true; - } - else + if (context_ != NULL) { - if (context_ != NULL) - { - std::string s = ("The configuration option \"" + GetPath(key) + - "\" is not a list of strings as expected"); - OrthancPluginLogError(context_, s.c_str()); - } + std::string s = ("The configuration option \"" + GetPath(key) + + "\" is not a list of strings as expected"); + OrthancPluginLogError(context_, s.c_str()); + } - ORTHANC_PLUGINS_THROW_EXCEPTION(BadFileFormat); - } + ORTHANC_PLUGINS_THROW_EXCEPTION(BadFileFormat); }