2018-06-27 12:29:21 +02:00
|
|
|
package eu.eudat.models.validators;
|
2018-01-03 11:44:54 +01:00
|
|
|
|
2018-03-21 13:11:02 +01:00
|
|
|
import eu.eudat.data.query.items.table.project.ProjectTableRequest;
|
2018-08-31 16:12:31 +02:00
|
|
|
import eu.eudat.models.validators.fluentvalidator.FluentValidator;
|
2018-01-03 11:44:54 +01:00
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
import org.springframework.validation.Errors;
|
|
|
|
|
2018-02-01 10:08:06 +01:00
|
|
|
|
2018-01-03 11:44:54 +01:00
|
|
|
@Component("projectTableRequestValidator")
|
2018-08-31 16:12:31 +02:00
|
|
|
public class ProjectTableRequestValidator extends FluentValidator<ProjectTableRequest> {
|
|
|
|
|
|
|
|
public ProjectTableRequestValidator() {
|
|
|
|
ruleFor(x -> x.getOffset()).compareAs(x -> 0, (leftItem, rightItem) -> leftItem < rightItem)
|
|
|
|
.withName("offset").withMessage("projectTableRequest.offset.negative");
|
|
|
|
|
|
|
|
ruleFor(x -> x.getLength()).compareAs(x -> 0, (leftItem, rightItem) -> leftItem < rightItem)
|
|
|
|
.withName("length").withMessage("projectTableRequest.length.negative");
|
|
|
|
|
|
|
|
ruleFor(x -> x.getCriteria().getPeriodStart())
|
|
|
|
.compareAs(x -> x.getCriteria().getPeriodEnd(), (leftItem, rightItem) -> rightItem.before(leftItem))
|
|
|
|
.withName("criteria.periodStart").withMessage("projectTableRequest.periodStart.overlapping")
|
|
|
|
.ruleIf(x -> x.getCriteria() != null && x.getCriteria().getPeriodStart() != null && x.getCriteria().getPeriodEnd() != null);
|
2018-01-03 11:44:54 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
2018-08-31 16:12:31 +02:00
|
|
|
public boolean supports(Class<?> aClass) {
|
|
|
|
return ProjectTableRequest.class.equals(aClass);
|
2018-01-03 11:44:54 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
public static boolean supportsType(Class<?> clazz) {
|
|
|
|
return ProjectTableRequest.class.equals(clazz);
|
|
|
|
}
|
|
|
|
}
|