class SW360ReleaseClientAdapterAsyncImpl implements SW360ReleaseClientAdapterAsync {

    @Override
    public <T> CompletableFuture<T> processAttachment(SW360Release release, String attachmentId, SW360AttachmentAwareClient.AttachmentProcessor<? extends T> processor) {
        return FutureUtils.wrapInFuture(() -> release.getSelfLink().getHref(), "Release has no ID")
                .thenCompose(href -> getReleaseClient().processAttachment(href, attachmentId, processor));
    }

    public  SW360ReleaseClientAdapterAsyncImpl(SW360ReleaseClient client,
                                              SW360ComponentClientAdapterAsync componentClientAdapter);

}