24 #include "cafAssert.h" 25 #include "cafFieldValidator.h" 27 #include <nlohmann/json.hpp> 42 template <
typename DataType>
50 , m_minimum( minimum )
51 , m_maximum( maximum )
57 auto jsonFieldObject = nlohmann::json::parse(
string );
58 if ( jsonFieldObject.is_object() )
60 if ( jsonFieldObject.contains(
"minimum" ) )
62 m_minimum = jsonFieldObject[
"minimum"];
64 if ( jsonFieldObject.contains(
"maximum" ) )
66 m_maximum = jsonFieldObject[
"maximum"];
73 auto jsonFieldObject = nlohmann::json::object();
74 jsonFieldObject[
"minimum"] = m_minimum;
75 jsonFieldObject[
"maximum"] = m_maximum;
76 return jsonFieldObject.dump();
79 std::pair<bool, std::string>
validate(
const DataType& value )
const override 81 bool valid = m_minimum <= value && value <= m_maximum;
85 ss <<
"The value " << value <<
" is outside the limits [" << m_minimum <<
", " << m_maximum <<
"]";
86 return std::make_pair(
false, ss.str() );
88 return std::make_pair(
true,
"" );
91 static std::unique_ptr<RangeValidator<DataType>>
94 return std::make_unique<RangeValidator<DataType>>( minimum, maximum,
failureSeverity );
Simple range validator.
Definition: cafRangeValidator.h:43
Used to validate the value of data fields Implementations need the the validate method as well as rea...
Definition: cafFieldValidator.h:94
std::string writeToString() const override
Write the validator tostring.
Definition: cafRangeValidator.h:71
std::pair< bool, std::string > validate(const DataType &value) const override
Validate the value.
Definition: cafRangeValidator.h:79
FailureSeverity failureSeverity() const
Get the severity of a failure of the validator.
Definition: cafFieldValidator.h:81
FailureSeverity
The severity of failure. Essentially tells the application how to treat a validator failure: VALIDATO...
Definition: cafFieldValidator.h:44
void readFromString(const std::string &string) override
Read the validator from string.
Definition: cafRangeValidator.h:55
Main Caffa namespace.
Definition: cafApplication.h:30