private void validateEntityValueReferences(Entity entity, ValidationResource validationResource) { validationResource .getRefAttrs() .forEach( refAttr -> { HugeSet<Object> refEntityIds = validationResource.getRefEntitiesIds().get(refAttr.getRefEntity().getId()); new ConstraintViolation(message, (long) validationResource.getRow()); validationResource.addViolation(constraintViolation); if (validationResource.isSelfReferencing()) { validationResource.addRefEntityId(getName(), entity.getIdValue());
@SuppressWarnings("unchecked") private void validateEntityValueReadOnly(Entity entity, ValidationResource validationResource) { if (validationResource.getReadonlyAttrs().isEmpty()) { return; .getReadonlyAttrs() .forEach( readonlyAttr -> { validationResource.addViolation( new ConstraintViolation( format( "The attribute '%s' of entity '%s' can not be changed it is readonly.", readonlyAttr.getName(), getName()), (long) validationResource.getRow()));
private void validateEntityValueRequired(Entity entity, ValidationResource validationResource) { validationResource .getRequiredValueAttrs() .forEach( nonNillableAttr -> { Object value = entity.get(nonNillableAttr.getName()); if (value == null || (isMultipleReferenceType(nonNillableAttr) && !entity.getEntities(nonNillableAttr.getName()).iterator().hasNext())) { ConstraintViolation constraintViolation = new ConstraintViolation( format( "The attribute '%s' of entity '%s' can not be null.", nonNillableAttr.getName(), getName()), (long) validationResource.getRow()); validationResource.addViolation(constraintViolation); } }); }
private void validateEntityValueUniqueness( Entity entity, ValidationResource validationResource, ValidationMode validationMode) { validationResource .getUniqueAttrs() .forEach( uniqueAttr -> { validationResource.getUniqueAttrsValues().get(uniqueAttr.getName()); Object existingEntityId = uniqueAttrValues.get(attrValue); if ((validationMode == ValidationMode.ADD && existingEntityId != null) "Duplicate value '%s' for unique attribute '%s' from entity '%s'", attrValue, uniqueAttr.getName(), getName()), (long) validationResource.getRow()); validationResource.addViolation(constraintViolation); } else { uniqueAttrValues.put(attrValue, entity.getIdValue());
@Override public Integer add(Stream<Entity> entities) { try (ValidationResource validationResource = new ValidationResource()) { entities = validate(entities, validationResource, ValidationMode.ADD); return delegate().add(entities); } }
@Override public void update(Stream<Entity> entities) { try (ValidationResource validationResource = new ValidationResource()) { entities = validate(entities, validationResource, ValidationMode.UPDATE); delegate().update(entities); } }
@Override public void update(Entity entity) { try (ValidationResource validationResource = new ValidationResource()) { validate(entity, validationResource, ValidationMode.UPDATE); } delegate().update(entity); }
@Override public void add(Entity entity) { try (ValidationResource validationResource = new ValidationResource()) { validate(entity, validationResource, ValidationMode.ADD); } delegate().add(entity); }