Package com.oracle.bmc.http.internal
Class ClientCall<REQ extends BmcRequest<?>,RESP extends BmcResponse,RESP_BUILDER extends BmcResponse.Builder<RESP>>
- java.lang.Object
-
- com.oracle.bmc.http.internal.ClientCall<REQ,RESP,RESP_BUILDER>
-
public final class ClientCall<REQ extends BmcRequest<?>,RESP extends BmcResponse,RESP_BUILDER extends BmcResponse.Builder<RESP>> extends Object
-
-
Method Summary
-
-
-
Method Detail
-
builder
public static <REQ extends BmcRequest<?>,RESP extends BmcResponse,RESP_BUILDER extends BmcResponse.Builder<RESP>> ClientCall<REQ,RESP,RESP_BUILDER> builder(com.oracle.bmc.http.client.HttpClient httpClient, REQ request, Supplier<RESP_BUILDER> responseBuilder)
-
clientConfigurator
public ClientCall<REQ,RESP,RESP_BUILDER> clientConfigurator(ClientConfigurator clientConfigurator)
-
circuitBreaker
public ClientCall<REQ,RESP,RESP_BUILDER> circuitBreaker(@Nullable OciCircuitBreaker circuitBreaker)
Use a circuit breaker for this call.The results passed to
OciCircuitBreaker.onResult(long, java.util.concurrent.TimeUnit, java.lang.Object)
are always of typeHttpResponse
-
logger
public ClientCall<REQ,RESP,RESP_BUILDER> logger(org.slf4j.Logger logger, String nickname)
-
serviceDetails
public ClientCall<REQ,RESP,RESP_BUILDER> serviceDetails(String serviceName, String operationName, String apiReferenceLink)
-
method
public ClientCall<REQ,RESP,RESP_BUILDER> method(com.oracle.bmc.http.client.Method method)
-
hasBinaryRequestBody
public ClientCall<REQ,RESP,RESP_BUILDER> hasBinaryRequestBody()
-
hasBody
public ClientCall<REQ,RESP,RESP_BUILDER> hasBody()
-
operationUsesDefaultRetries
public ClientCall<REQ,RESP,RESP_BUILDER> operationUsesDefaultRetries()
-
obmcsSigningStrategy
public ClientCall<REQ,RESP,RESP_BUILDER> obmcsSigningStrategy(SigningStrategy obmcsSigningStrategy)
-
authenticationDetailsProvider
public ClientCall<REQ,RESP,RESP_BUILDER> authenticationDetailsProvider(AbstractAuthenticationDetailsProvider authenticationDetailsProvider)
-
retryConfiguration
public ClientCall<REQ,RESP,RESP_BUILDER> retryConfiguration(RetryConfiguration retryConfiguration)
-
requestBuilder
public ClientCall<REQ,RESP,RESP_BUILDER> requestBuilder(Supplier<BmcRequest.Builder<? extends REQ,?>> requestBuilder)
-
interceptResponse
public ClientCall<REQ,RESP,RESP_BUILDER> interceptResponse(UnaryOperator<RESP> interceptResponse)
-
basePath
public ClientCall<REQ,RESP,RESP_BUILDER> basePath(String basePath)
-
appendPathPart
public ClientCall<REQ,RESP,RESP_BUILDER> appendPathPart(String pathPart)
-
appendPathParam
public ClientCall<REQ,RESP,RESP_BUILDER> appendPathParam(String pathParamValue)
-
appendPathParam
public ClientCall<REQ,RESP,RESP_BUILDER> appendPathParam(Number pathParamValue)
-
appendPathParam
public ClientCall<REQ,RESP,RESP_BUILDER> appendPathParam(UUID pathParamValue)
-
appendQueryParam
public ClientCall<REQ,RESP,RESP_BUILDER> appendQueryParam(String name, Object value)
-
appendEnumQueryParam
public ClientCall<REQ,RESP,RESP_BUILDER> appendEnumQueryParam(String name, BmcEnum value)
-
appendListQueryParam
public ClientCall<REQ,RESP,RESP_BUILDER> appendListQueryParam(String name, List<?> values, CollectionFormatType collectionFormatType)
-
appendMapQueryParam
public ClientCall<REQ,RESP,RESP_BUILDER> appendMapQueryParam(String prefix, Map<String,?> values)
-
accept
public ClientCall<REQ,RESP,RESP_BUILDER> accept(String... contentType)
-
appendHeader
public ClientCall<REQ,RESP,RESP_BUILDER> appendHeader(String name, String value)
-
appendHeader
public ClientCall<REQ,RESP,RESP_BUILDER> appendHeader(String name, Range value)
-
appendHeader
public ClientCall<REQ,RESP,RESP_BUILDER> appendHeader(String name, Number value)
-
appendHeader
public ClientCall<REQ,RESP,RESP_BUILDER> appendHeader(String name, Date value)
-
appendHeader
public ClientCall<REQ,RESP,RESP_BUILDER> appendHeader(String name, Boolean value)
-
appendHeader
public ClientCall<REQ,RESP,RESP_BUILDER> appendHeader(String name, BmcEnum value)
-
appendEnumHeader
public ClientCall<REQ,RESP,RESP_BUILDER> appendEnumHeader(String name, BmcEnum value)
-
appendMapHeader
public ClientCall<REQ,RESP,RESP_BUILDER> appendMapHeader(String prefix, Map<String,?> queryParam)
Attempts to encode a header param if it is aMap
.Each key is prefixed with the value passed as prefix. If a value is a
Collection
, then the “{prefix}{key}={item}” output is repeated for each item in the collection, where “{item}” is encoded usingencodeObjectQueryParam(Object)
. If the value is not a collection, then the output is simply “{prefix}{key}={value}”, where the value is again encoded.Note: this should be called much lower in the HTTP stack (currently being called through the generated code), so it can encode the serialized values.
- Parameters:
prefix
- prefix for each keyqueryParam
- The map query parameter to encode.- Returns:
- a new target instance
-
appendListHeader
public <T> ClientCall<REQ,RESP,RESP_BUILDER> appendListHeader(String headerParamName, List<T> values, CollectionFormatType collectionFormatType)
Attempts to encode a header parameter which is described by a list of values for that parameter and aCollectionFormatType
which describes how the values should appear in the headers (e.g.as multiple parameters, as a single parameter with a given delimiter).
- Parameters:
headerParamName
- the name of the header parameter as it should appear in the query stringvalues
- the values for the query parameter. An empty or null list will result in no action being taken on the target instance. Additionally, any null values inside the list will be ignoredcollectionFormatType
- describes how entries should appear in the query string, for example as multiple parameters with the name query string parameter name/key, or as a single parameter with its values separated by a delimiter character (comma, space, tab or pipe)- Returns:
- this ClientCall instance
-
appendHeaders
public ClientCall<REQ,RESP,RESP_BUILDER> appendHeaders(Map<String,String> values)
-
handleEventStream
public <RESP_BODY> ClientCall<REQ,RESP,RESP_BUILDER> handleEventStream(BiConsumer<RESP_BUILDER,RESP_BODY> handle)
-
handleBody
public <RESP_BODY> ClientCall<REQ,RESP,RESP_BUILDER> handleBody(Class<RESP_BODY> type, BiConsumer<RESP_BUILDER,RESP_BODY> handle)
-
handleBodyMap
@Deprecated public <RESP_BODY> ClientCall<REQ,RESP,RESP_BUILDER> handleBodyMap(Class<RESP_BODY> type, BiConsumer<RESP_BUILDER,Map<String,RESP_BODY>> handle)
Deprecated.This method has never worked properly and will be removed in the future. To request deserialization of a complex parameterized type like Map, instead declare a wrapper type that takes the complex type as the parameter of a constructor annotated with @JsonCreator(mode = DELEGATING). You can then pass the wrapper type tohandleBody(Class, BiConsumer)
and unwrap it in the handle lambda.
-
handleBodyList
public <RESP_BODY> ClientCall<REQ,RESP,RESP_BUILDER> handleBodyList(Class<RESP_BODY> type, BiConsumer<RESP_BUILDER,List<RESP_BODY>> handle)
-
handleResponseHeaderString
public ClientCall<REQ,RESP,RESP_BUILDER> handleResponseHeaderString(String name, BiConsumer<RESP_BUILDER,String> handle)
-
handleResponseHeaderInteger
public ClientCall<REQ,RESP,RESP_BUILDER> handleResponseHeaderInteger(String name, BiConsumer<RESP_BUILDER,Integer> handle)
-
handleResponseHeaderLong
public ClientCall<REQ,RESP,RESP_BUILDER> handleResponseHeaderLong(String name, BiConsumer<RESP_BUILDER,Long> handle)
-
handleResponseHeaderFloat
public ClientCall<REQ,RESP,RESP_BUILDER> handleResponseHeaderFloat(String name, BiConsumer<RESP_BUILDER,Float> handle)
-
handleResponseHeaderDouble
public ClientCall<REQ,RESP,RESP_BUILDER> handleResponseHeaderDouble(String name, BiConsumer<RESP_BUILDER,Double> handle)
-
handleResponseHeaderBoolean
public ClientCall<REQ,RESP,RESP_BUILDER> handleResponseHeaderBoolean(String name, BiConsumer<RESP_BUILDER,Boolean> handle)
-
handleResponseHeaderDate
public ClientCall<REQ,RESP,RESP_BUILDER> handleResponseHeaderDate(String name, BiConsumer<RESP_BUILDER,Date> handle)
-
handleResponseHeaderRange
public ClientCall<REQ,RESP,RESP_BUILDER> handleResponseHeaderRange(String name, BiConsumer<RESP_BUILDER,Range> handle)
-
handleResponseHeaderBigDecimal
public ClientCall<REQ,RESP,RESP_BUILDER> handleResponseHeaderBigDecimal(String name, BiConsumer<RESP_BUILDER,BigDecimal> handle)
-
handleResponseHeaderEnum
public <E> ClientCall<REQ,RESP,RESP_BUILDER> handleResponseHeaderEnum(String name, Function<String,E> parse, BiConsumer<RESP_BUILDER,E> handle)
-
handleResponseHeadersMap
public ClientCall<REQ,RESP,RESP_BUILDER> handleResponseHeadersMap(String prefix, BiConsumer<RESP_BUILDER,Map<String,String>> handle)
-
responseErrorExceptionFactory
public ClientCall<REQ,RESP,RESP_BUILDER> responseErrorExceptionFactory(ResponseErrorRuntimeExceptionFactory responseErrorExceptionFactory)
-
callAsync
public Future<RESP> callAsync(AsyncHandler<REQ,RESP> handler)
-
tryUnwrapBmcException
public static RuntimeException tryUnwrapBmcException(CompletionException ce)
Try to unwrap theBmcException
that is somewhere in the causal chain of theCompletionException
, or return the originalCompletionException
, if there was none.- Parameters:
ce
- theCompletionException
which may have aBmcException
in its causal chain- Returns:
BmcException
from causal chain, orCompletionException
if there was none
-
callSync
public RESP callSync()
-
generateRequestId
public static String generateRequestId()
-
-