argos/dmp-backend/src/main/java/eu/eudat/validators/ProjectTableRequestValidato...

37 lines
1.5 KiB
Java

package eu.eudat.validators;
import eu.eudat.models.dmp.DataManagementPlanTableRequest;
import eu.eudat.models.project.ProjectTableRequest;
import org.springframework.stereotype.Component;
import org.springframework.validation.Errors;
import org.springframework.validation.Validator;
/**
* Created by ikalyvas on 1/2/2018.
*/
@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);
}
}