54 lines
2.0 KiB
Java
54 lines
2.0 KiB
Java
package eu.eudat.validators;
|
|
|
|
import eu.eudat.data.entities.DMP;
|
|
import eu.eudat.data.dao.criteria.DataManagementPlanCriteria;
|
|
import eu.eudat.models.dmp.DataManagementPlanNewVersionModel;
|
|
import eu.eudat.services.ApiContext;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Component;
|
|
import org.springframework.validation.Errors;
|
|
import org.springframework.validation.Validator;
|
|
|
|
import java.util.Arrays;
|
|
import java.util.List;
|
|
import java.util.UUID;
|
|
|
|
/**
|
|
* Created by ikalyvas on 3/7/2018.
|
|
*/
|
|
@Component("dataManagementPlanNewVersionValidator")
|
|
public class DataManagementPlanNewVersionValidator implements Validator {
|
|
|
|
private ApiContext apiContext;
|
|
|
|
@Autowired
|
|
public DataManagementPlanNewVersionValidator(ApiContext apiContext) {
|
|
this.apiContext = apiContext;
|
|
}
|
|
|
|
@Override
|
|
public boolean supports(Class<?> aClass) {
|
|
return DataManagementPlanNewVersionModel.class.equals(aClass);
|
|
}
|
|
|
|
@Override
|
|
public void validate(Object obj, Errors errors) {
|
|
DataManagementPlanNewVersionModel dataManagementPlanNewVersionModel = (DataManagementPlanNewVersionModel) obj;
|
|
DataManagementPlanCriteria criteria = new DataManagementPlanCriteria();
|
|
List<UUID> groupIds = Arrays.asList(dataManagementPlanNewVersionModel.getGroupId());
|
|
criteria.setGroupIds(groupIds);
|
|
DMP latestDmp = apiContext.getOperationsContext().getDatabaseRepository().getDmpDao().getWithCriteria(criteria).getSingleOrDefault();
|
|
if (latestDmp.getVersion() >= dataManagementPlanNewVersionModel.getVersion()) {
|
|
errors.rejectValue("version", "datamanagementplannewversion.version.notacceptable");
|
|
}
|
|
else if (latestDmp.getVersion() + 1 != dataManagementPlanNewVersionModel.getVersion()) {
|
|
errors.rejectValue("version", "datamanagementplannewversion.version.notnext");
|
|
}
|
|
}
|
|
|
|
public static boolean supportsType(Class<?> aClass) {
|
|
return DataManagementPlanNewVersionModel.class.equals(aClass);
|
|
}
|
|
|
|
}
|