32 lines
1.2 KiB
Java
32 lines
1.2 KiB
Java
package eu.eudat.models.validators;
|
|
|
|
import eu.eudat.data.query.items.table.project.ProjectTableRequest;
|
|
import eu.eudat.models.data.project.Project;
|
|
import eu.eudat.models.validators.fluentvalidator.FluentValidator;
|
|
import org.springframework.stereotype.Component;
|
|
import org.springframework.validation.Errors;
|
|
import org.springframework.validation.Validator;
|
|
|
|
|
|
@Component("projectModelValidator")
|
|
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))
|
|
.withName("startDate").withMessage("project.startDate.overlapping")
|
|
.ruleIf(x -> x.getStartDate() != null && x.getEndDate() != null);
|
|
|
|
}
|
|
|
|
@Override
|
|
public boolean supports(Class<?> aClass) {
|
|
return Project.class.equals(aClass);
|
|
}
|
|
|
|
public static boolean supportsType(Class<?> aClass) {
|
|
return Project.class.equals(aClass);
|
|
}
|
|
}
|