package eu.eudat.validators; import eu.eudat.models.project.ProjectTableRequest; import org.springframework.stereotype.Component; import org.springframework.validation.Errors; import org.springframework.validation.Validator; @Component("projectTableRequestValidator") public class ProjectTableRequestValidator implements Validator { @Override public boolean supports(Class aClass) { return ProjectTableRequest.class.equals(aClass); } @Override public void validate(Object obj, Errors errors) { ProjectTableRequest projectTableRequest = (ProjectTableRequest) obj; if (projectTableRequest.getCriteria() != null && projectTableRequest.getCriteria().getPeriodEnd() != null && projectTableRequest.getCriteria().getPeriodEnd() != null && projectTableRequest.getCriteria().getPeriodEnd().before(projectTableRequest.getCriteria().getPeriodStart())) { errors.rejectValue("criteria.periodStart", "projectTableRequest.periodStart.overlapping"); } if (projectTableRequest.getOffset() < 0) { errors.rejectValue("offset", "projectTableRequest.offset.negative"); } if (projectTableRequest.getLength() < 0) { errors.rejectValue("length", "projectTableRequest.length.negative"); } } public static boolean supportsType(Class clazz) { return ProjectTableRequest.class.equals(clazz); } }