/** * Copyright 2012-2020 The Feign Authors * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software distributed under the License * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express * or implied. See the License for the specific language governing permissions and limitations under * the License. */ package feign; import java.lang.reflect.Type; import java.util.concurrent.CompletableFuture; /** * A specific invocation of an APU */ @Experimental class AsyncInvocation { private final C context; private final MethodInfo methodInfo; private final long startNanos; private CompletableFuture responseFuture; AsyncInvocation(C context, MethodInfo methodInfo) { super(); this.context = context; this.methodInfo = methodInfo; this.startNanos = System.nanoTime(); } C context() { return context; } String configKey() { return methodInfo.configKey(); } long startNanos() { return startNanos; } Type underlyingType() { return methodInfo.underlyingReturnType(); } boolean isAsyncReturnType() { return methodInfo.isAsyncReturnType(); } void setResponseFuture(CompletableFuture responseFuture) { this.responseFuture = responseFuture; } CompletableFuture responseFuture() { return responseFuture; } }