package com.kryptnostic.v2.crypto; import java.util.Map; import java.util.Set; import java.util.UUID; import java.util.concurrent.ExecutionException; import javax.annotation.Nonnull; import com.google.common.base.Optional; import com.kryptnostic.kodex.v1.crypto.ciphers.CryptoService; import com.kryptnostic.kodex.v1.crypto.ciphers.Cypher; import com.kryptnostic.v2.storage.models.VersionedObjectKey; public interface CryptoServiceLoader { @Nonnull Optional<CryptoService> get( VersionedObjectKey id ) throws ExecutionException; @Nonnull Optional<CryptoService> getLatest( UUID id ) throws ExecutionException; void put( VersionedObjectKey id, CryptoService service ) throws ExecutionException; @Nonnull Map<VersionedObjectKey, CryptoService> getAll( Set<VersionedObjectKey> ids ) throws ExecutionException; void clear(); Cypher getCypher(); }