adamdebreceni commented on a change in pull request #1052: URL: https://github.com/apache/nifi-minifi-cpp/pull/1052#discussion_r618393554
########## File path: libminifi/include/utils/ProcessorConfigUtils.h ########## @@ -19,59 +19,23 @@ #include <vector> #include <string> +#include <set> -#include "utils/StringUtils.h" +#include "core/ProcessContext.h" namespace org { namespace apache { namespace nifi { namespace minifi { namespace utils { -std::string getRequiredPropertyOrThrow(const core::ProcessContext* context, const std::string& property_name) { - std::string value; - if (!context->getProperty(property_name, value)) { - throw std::runtime_error(property_name + " property missing or invalid"); - } - return value; -} - -std::vector<std::string> listFromCommaSeparatedProperty(const core::ProcessContext* context, const std::string& property_name) { - std::string property_string; - context->getProperty(property_name, property_string); - return utils::StringUtils::splitAndTrim(property_string, ","); -} - -std::vector<std::string> listFromRequiredCommaSeparatedProperty(const core::ProcessContext* context, const std::string& property_name) { - return utils::StringUtils::splitAndTrim(getRequiredPropertyOrThrow(context, property_name), ","); -} - -bool parseBooleanPropertyOrThrow(core::ProcessContext* context, const std::string& property_name) { - const std::string value_str = getRequiredPropertyOrThrow(context, property_name); - utils::optional<bool> maybe_value = utils::StringUtils::toBool(value_str); - if (!maybe_value) { - throw std::runtime_error(property_name + " property is invalid: value is " + value_str); - } - return maybe_value.value(); -} - -std::chrono::milliseconds parseTimePropertyMSOrThrow(core::ProcessContext* context, const std::string& property_name) { - core::TimeUnit unit; - uint64_t time_value_ms; - const std::string value_str = getRequiredPropertyOrThrow(context, property_name); - if (!core::Property::StringToTime(value_str, time_value_ms, unit) || !core::Property::ConvertTimeUnitToMS(time_value_ms, unit, time_value_ms)) { - throw std::runtime_error(property_name + " property is invalid: value is " + value_str); - } - return std::chrono::milliseconds(time_value_ms); -} - -utils::optional<uint64_t> getOptionalUintProperty(const core::ProcessContext& context, const std::string& property_name) { - uint64_t value; - if (context.getProperty(property_name, value)) { - return { value }; - } - return utils::nullopt; -} +std::string getRequiredPropertyOrThrow(const core::ProcessContext* context, const std::string& property_name); Review comment: I was under the impression that `getProperty` already throws on missing required properties [here](https://github.com/apache/nifi-minifi-cpp/blob/89d68e21bf28f3b25e4a64117b631668b752889f/libminifi/include/core/ConfigurableComponent.h#L227) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org