argos/dmp-backend/web/src/main/java/eu/eudat/models/validators/GrantTableRequestValidator....

33 lines
1.4 KiB
Java
Raw Normal View History

2018-06-27 12:29:21 +02:00
package eu.eudat.models.validators;
2018-01-03 11:44:54 +01:00
import eu.eudat.data.query.items.table.grant.GrantTableRequest;
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;
2018-02-01 10:08:06 +01:00
@Component("grantTableRequestValidator")
public class GrantTableRequestValidator extends FluentValidator<GrantTableRequest> {
2018-08-31 16:12:31 +02:00
public GrantTableRequestValidator() {
2018-08-31 16:12:31 +02:00
ruleFor(x -> x.getOffset()).compareAs(x -> 0, (leftItem, rightItem) -> leftItem < rightItem)
.withName("offset").withMessage("grantTableRequest.offset.negative");
2018-08-31 16:12:31 +02:00
ruleFor(x -> x.getLength()).compareAs(x -> 0, (leftItem, rightItem) -> leftItem < rightItem)
.withName("length").withMessage("grantTableRequest.length.negative");
2018-08-31 16:12:31 +02:00
ruleFor(x -> x.getCriteria().getPeriodStart())
.compareAs(x -> x.getCriteria().getPeriodEnd(), (leftItem, rightItem) -> rightItem.before(leftItem))
.withName("criteria.periodStart").withMessage("grantTableRequest.periodStart.overlapping")
2018-08-31 16:12:31 +02:00
.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 GrantTableRequest.class.equals(aClass);
2018-01-03 11:44:54 +01:00
}
public static boolean supportsType(Class<?> clazz) {
return GrantTableRequest.class.equals(clazz);
2018-01-03 11:44:54 +01:00
}
}