All Downloads are FREE. Search and download functionalities are using the official Maven repository.

uk.co.mruoc.camunda.client.CompositeRequestConverter Maven / Gradle / Ivy

package uk.co.mruoc.camunda.client;

import lombok.RequiredArgsConstructor;
import uk.co.mruoc.camunda.client.deploy.create.CreateDeploymentRequestConverter;
import uk.co.mruoc.camunda.client.deploy.delete.DeleteDeploymentRequestConverter;
import uk.co.mruoc.camunda.client.deploy.get.GetDeploymentsRequestConverter;
import uk.co.mruoc.camunda.client.message.DeliverMessageRequestConverter;
import uk.co.mruoc.camunda.client.process.StartProcessRequestConverter;
import uk.co.mruoc.json.JsonConverter;

import java.net.http.HttpRequest;
import java.util.Arrays;
import java.util.Collection;
import java.util.Optional;

@RequiredArgsConstructor
public class CompositeRequestConverter {

    private final Collection requestConverters;

    public CompositeRequestConverter(String baseUri, JsonConverter jsonConverter) {
        this(buildConverters(baseUri, jsonConverter));
    }

    private static Collection buildConverters(String baseUri, JsonConverter jsonConverter) {
        return Arrays.asList(
                new StartProcessRequestConverter(baseUri, jsonConverter),
                new CreateDeploymentRequestConverter(baseUri),
                new GetDeploymentsRequestConverter(baseUri),
                new DeleteDeploymentRequestConverter(baseUri),
                new DeliverMessageRequestConverter(baseUri, jsonConverter)
        );
    }

    public HttpRequest toHttpRequest(Object object) {
        return requestConverters.stream()
                .map(converter -> converter.toHttpRequest(object))
                .flatMap(Optional::stream)
                .findFirst()
                .orElseThrow(() -> new RequestNotSupportedException(object));
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy