package uk.ac.ox.zoo.seeg.abraid.mp.publicsite.web.admin.experts; import org.springframework.beans.factory.annotation.Autowired; import uk.ac.ox.zoo.seeg.abraid.mp.publicsite.domain.JsonExpertFull; import uk.ac.ox.zoo.seeg.abraid.mp.publicsite.validator.ExpertValidationRulesChecker; import java.util.ArrayList; import java.util.Collection; import java.util.List; /** * Validates the fields associated with an expert's profile updates. * Copyright (c) 2014 University of Oxford */ public class AdminExpertsControllerValidator { private final ExpertValidationRulesChecker rules; @Autowired public AdminExpertsControllerValidator(ExpertValidationRulesChecker expertValidationRulesChecker) { this.rules = expertValidationRulesChecker; } /** * Validates an expert DTO for the fields required for an admin updating an expert. * @param expert The expert to validate. * @return A list of validation failures. */ public Collection<String> validate(JsonExpertFull expert) { List<String> validationFailures = new ArrayList<>(); rules.checkId(expert.getId(), validationFailures); rules.checkVisibilityApproved(expert.getVisibilityApproved(), validationFailures); rules.checkWeighting(expert.getWeighting(), validationFailures); rules.checkIsAdministrator(expert.isAdministrator(), validationFailures); rules.checkIsSeegMember(expert.isSEEGMember(), validationFailures); return validationFailures; } }