
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