slumber-quest/validators/allpoliciesvalidator.cpp

30 lines
764 B
C++

#include "allpoliciesvalidator.h"
#include "policy.h"
AllPoliciesValidator::AllPoliciesValidator(const std::list<std::shared_ptr<Policy>>& policies) :
Validator(policies)
{}
AllPoliciesValidator::~AllPoliciesValidator()
{}
Validator::ValidateResult AllPoliciesValidator::validate(const std::shared_ptr<Actor> &actor) const
{
Validator::ValidateResult validate_result{true, ""};
for (const auto& policy : _validation_policies)
{
const auto result = policy->check(actor);
validate_result.validate_output += result.commentary;
validate_result.validate_output += "\n\n";
if (!result.satisfied)
{
validate_result.success = false;
break;
}
}
return validate_result;
}