Package fr.gouv.vitam.functional.administration.core.archiveunitprofiles

# Interface ArchiveUnitProfileValidator

Functional Interface:
  This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.

@FunctionalInterface public interface ArchiveUnitProfileValidator
Used to validate archive unit profiles and to apply acceptance rules. Bellow the example of usage :

     private static ArchiveUnitProfileValidator checkDuplicateInDatabaseValidator() {
        return (profile, profileIdentifier) -> {
            GenericRejectionCause rejection = null;
            boolean exist = ... exists in database?;
            if (exist) {
               rejection = GenericRejectionCause.rejectDuplicatedInDatabase(profileIdentifier);
            }
            return (rejection == null) ? Optional.empty() : Optional.of(rejection);
        };
     }

The call the method like this to validate the archive unit profile aup: GenericRejectionCause rejection = checkDuplicateInDatabaseValidator().validate(aup, aup.getName()); Check if rejection is present then do the resolution

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Interface
  Description
  `static class`
  `ArchiveUnitProfileValidator.RejectionCause`
  Rejection Cause

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Optional<ArchiveUnitProfileValidator.RejectionCause>`
  `validate(ArchiveUnitProfileModel profile)`
  Validate an archive unit profile object

- ## Method Details

  - ### validate

    Optional<ArchiveUnitProfileValidator.RejectionCause> validate(ArchiveUnitProfileModel profile)
    Validate an archive unit profile object
    Parameters:
      `profile` - to validate
    Returns:
      empty optional if OK, Else return the rejection cause