package eu.eudat.models.validators; import eu.eudat.data.query.items.table.project.ProjectTableRequest; import eu.eudat.models.data.project.Project; import eu.eudat.models.validators.fluentvalidator.FluentValidator; import org.springframework.stereotype.Component; import org.springframework.validation.Errors; import org.springframework.validation.Validator; @Component("projectModelValidator") public class ProjectModelValidator extends FluentValidator { public ProjectModelValidator() { ruleFor(x -> x.getType()).compareAs((x -> eu.eudat.data.entities.Project.ProjectType.EXTERNAL.getValue()), (leftItem, rightItem) -> leftItem == rightItem) .withName("type").withMessage("project.external.edit"); ruleFor(x -> x.getStartDate()).compareAs((x -> x.getEndDate()), (leftItem, rightItem) -> leftItem.after(rightItem)) .withName("startDate").withMessage("project.startDate.overlapping") .ruleIf(x -> x.getStartDate() != null && x.getEndDate() != null); } @Override public boolean supports(Class aClass) { return Project.class.equals(aClass); } public static boolean supportsType(Class aClass) { return Project.class.equals(aClass); } }