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

# Interface AccessContractValidator

All Superinterfaces:
  `GenericContractValidator<AccessContractModel>`

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 AccessContractValidator extends GenericContractValidator<AccessContractModel>
Used to validate contracts (any class that extends AbstractContractModel) and to apply acceptance rules. Bellow the example of usage :

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

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

- ## Nested Class Summary

  ## Nested classes/interfaces inherited from interface fr.gouv.vitam.functional.administration.core.contract.GenericContractValidator

  `GenericContractValidator.GenericRejectionCause`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Optional<GenericContractValidator.GenericRejectionCause>`
  `validate(AccessContractModel accessContract, String contractName)`
  Validate a contract object

- ## Method Details

  - ### validate

    Optional<GenericContractValidator.GenericRejectionCause> validate(AccessContractModel accessContract, String contractName)
    Validate a contract object
    Specified by:
      `validate` in interface `GenericContractValidator<AccessContractModel>`
    Parameters:
      `accessContract` - to validate
      `contractName` -
    Returns:
      empty optional if OK, Else return the rejection cause