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

32 lines
1.2 KiB
Java
Raw Normal View History

2018-06-27 12:29:21 +02:00
package eu.eudat.models.validators;
2018-01-03 17:36:31 +01:00
2018-08-31 16:12:31 +02:00
import eu.eudat.data.query.items.table.project.ProjectTableRequest;
2018-06-27 12:29:21 +02:00
import eu.eudat.models.data.project.Project;
2018-08-31 16:12:31 +02:00
import eu.eudat.models.validators.fluentvalidator.FluentValidator;
2018-01-03 17:36:31 +01:00
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 17:36:31 +01:00
@Component("projectModelValidator")
2018-08-31 16:12:31 +02:00
public class ProjectModelValidator extends FluentValidator<Project> {
public ProjectModelValidator() {
ruleFor(x -> x.getType()).compareAs((x -> eu.eudat.data.entities.Project.ProjectType.EXTERNAL.getValue()), (leftItem, rightItem) -> leftItem == rightItem)
.withName("type").withMessage("project.external.edit");
ruleFor(x -> x.getStartDate()).compareAs((x -> x.getEndDate()), (leftItem, rightItem) -> leftItem.after(rightItem))
2018-09-18 14:41:24 +02:00
.withName("startDate").withMessage("project.startDate.overlapping")
.ruleIf(x -> x.getStartDate() != null && x.getEndDate() != null);
2018-01-03 17:36:31 +01:00
}
@Override
2018-08-31 16:12:31 +02:00
public boolean supports(Class<?> aClass) {
return Project.class.equals(aClass);
2018-01-03 17:36:31 +01:00
}
2018-02-16 11:34:02 +01:00
public static boolean supportsType(Class<?> aClass) {
2018-01-03 17:36:31 +01:00
return Project.class.equals(aClass);
}
}