private void validate(
Entity entity,
ValidationResource validationResource,
ValidationMode validationMode,
ValidationProfile validationProfile) {
validationResource.incrementRow();
validateEntityValueTypes(entity, validationResource);
if (validationResource.hasViolations()) {
throw new MolgenisValidationException(validationResource.getViolations());
}
if (validationProfile.isValidateRequired()) {
validateEntityValueRequired(entity, validationResource);
}
if (validationProfile.isValidateUniqueness()) {
validateEntityValueUniqueness(entity, validationResource, validationMode);
}
validateEntityValueReferences(entity, validationResource);
if (validationProfile.isValidateReadonly() && validationMode == ValidationMode.UPDATE) {
validateEntityValueReadOnly(entity, validationResource);
}
if (validationResource.hasViolations()) {
throw new MolgenisValidationException(validationResource.getViolations());
}
}