2018-01-03 11:44:54 +01:00
|
|
|
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;
|
|
|
|
|
2018-02-01 10:08:06 +01:00
|
|
|
|
2018-01-03 11:44:54 +01:00
|
|
|
@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;
|
2018-01-17 13:03:51 +01:00
|
|
|
if (projectTableRequest.getCriteria() != null && projectTableRequest.getCriteria().getPeriodEnd() != null && projectTableRequest.getCriteria().getPeriodEnd() != null && projectTableRequest.getCriteria().getPeriodEnd().before(projectTableRequest.getCriteria().getPeriodStart())) {
|
2018-01-03 11:44:54 +01:00
|
|
|
errors.rejectValue("criteria.periodStart", "projectTableRequest.periodStart.overlapping");
|
|
|
|
}
|
2018-01-17 13:03:51 +01:00
|
|
|
if (projectTableRequest.getOffset() < 0) {
|
2018-01-03 11:44:54 +01:00
|
|
|
errors.rejectValue("offset", "projectTableRequest.offset.negative");
|
|
|
|
}
|
2018-01-17 13:03:51 +01:00
|
|
|
if (projectTableRequest.getLength() < 0) {
|
2018-01-03 11:44:54 +01:00
|
|
|
errors.rejectValue("length", "projectTableRequest.length.negative");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
public static boolean supportsType(Class<?> clazz) {
|
|
|
|
return ProjectTableRequest.class.equals(clazz);
|
|
|
|
}
|
|
|
|
}
|