001 002package io.vrap.rmf.base.client; 003 004import java.net.URI; 005import java.util.concurrent.CompletableFuture; 006 007import com.fasterxml.jackson.databind.ObjectMapper; 008 009/** 010 * Implementation of a non executable {@link ApiHttpClient} 011 */ 012public class SerializerOnlyApiHttpClient implements ApiHttpClient { 013 public static final String NO_EXECUTABLE_API_CLIENT = "No executable api client"; 014 private final ResponseSerializer serializer; 015 016 private SerializerOnlyApiHttpClient(ResponseSerializer serializer) { 017 this.serializer = serializer; 018 } 019 020 public static SerializerOnlyApiHttpClient of() { 021 return new SerializerOnlyApiHttpClient(ResponseSerializer.of()); 022 } 023 024 public static SerializerOnlyApiHttpClient of(ObjectMapper objectMapper) { 025 return new SerializerOnlyApiHttpClient(ResponseSerializer.of(objectMapper)); 026 } 027 028 public static SerializerOnlyApiHttpClient of(ResponseSerializer serializer) { 029 return new SerializerOnlyApiHttpClient(serializer); 030 } 031 032 @Override 033 public ResponseSerializer getSerializerService() { 034 return serializer; 035 } 036 037 @Override 038 public CompletableFuture<ApiHttpResponse<byte[]>> execute(ApiHttpRequest request) { 039 throw new IllegalStateException(NO_EXECUTABLE_API_CLIENT); 040 } 041 042 @Override 043 public URI getBaseUri() { 044 return null; 045 } 046 047 @Override 048 public void close() throws Exception { 049 050 } 051}