public class io.vertx.ext.web.client.impl.cache.CacheInterceptor extends java.lang.Object implements io.vertx.core.Handler
{
private static final java.lang.String IS_CACHE_DISPATCH;
private static final java.lang.String RESPONSE_TO_REVALIDATE;
private static final java.lang.String IS_CACHE_REVALIDATION;
private final io.vertx.ext.web.client.spi.CacheStore publicCacheStore;
private final io.vertx.ext.web.client.CachingWebClientOptions options;
private final java.util.Map variationsRegistry;
public void <init>(io.vertx.ext.web.client.spi.CacheStore, io.vertx.ext.web.client.CachingWebClientOptions)
{
io.vertx.ext.web.client.CachingWebClientOptions v;
io.vertx.ext.web.client.impl.cache.CacheInterceptor v;
java.util.concurrent.ConcurrentHashMap v;
io.vertx.ext.web.client.spi.CacheStore v;
v := @this: io.vertx.ext.web.client.impl.cache.CacheInterceptor;
v := @parameter: io.vertx.ext.web.client.spi.CacheStore;
v := @parameter: io.vertx.ext.web.client.CachingWebClientOptions;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<io.vertx.ext.web.client.impl.cache.CacheInterceptor: io.vertx.ext.web.client.spi.CacheStore publicCacheStore> = v;
v.<io.vertx.ext.web.client.impl.cache.CacheInterceptor: io.vertx.ext.web.client.CachingWebClientOptions options> = v;
v = new java.util.concurrent.ConcurrentHashMap;
specialinvoke v.<java.util.concurrent.ConcurrentHashMap: void <init>()>();
v.<io.vertx.ext.web.client.impl.cache.CacheInterceptor: java.util.Map variationsRegistry> = v;
return;
}
public void handle(io.vertx.ext.web.client.impl.HttpContext)
{
io.vertx.core.Future v;
io.vertx.ext.web.client.impl.ClientPhase v, v;
int[] v, v;
io.vertx.ext.web.client.impl.cache.CacheInterceptor v;
int v, v, v, v;
java.lang.Boolean v;
java.lang.Object v;
io.vertx.core.Handler v;
io.vertx.ext.web.client.impl.HttpContext v;
v := @this: io.vertx.ext.web.client.impl.cache.CacheInterceptor;
v := @parameter: io.vertx.ext.web.client.impl.HttpContext;
v = virtualinvoke v.<io.vertx.ext.web.client.impl.HttpContext: java.lang.Object get(java.lang.String)>("cache.revalidation");
v = <java.lang.Boolean: java.lang.Boolean TRUE>;
if v != v goto label;
v = <io.vertx.ext.web.client.impl.cache.CacheInterceptor$1: int[] $SwitchMap$io$vertx$ext$web$client$impl$ClientPhase>;
v = virtualinvoke v.<io.vertx.ext.web.client.impl.HttpContext: io.vertx.ext.web.client.impl.ClientPhase phase()>();
v = virtualinvoke v.<io.vertx.ext.web.client.impl.ClientPhase: int ordinal()>();
v = v[v];
lookupswitch(v)
{
case 1: goto label;
default: goto label;
};
label:
v = specialinvoke v.<io.vertx.ext.web.client.impl.cache.CacheInterceptor: io.vertx.core.Future processResponse(io.vertx.ext.web.client.impl.HttpContext,io.vertx.ext.web.client.impl.cache.CachedHttpResponse)>(v, null);
v = staticinvoke <io.vertx.ext.web.client.impl.cache.CacheInterceptor$lambda_handle_0__834: io.vertx.core.Handler bootstrap$()>();
interfaceinvoke v.<io.vertx.core.Future: io.vertx.core.Future onComplete(io.vertx.core.Handler)>(v);
goto label;
label:
virtualinvoke v.<io.vertx.ext.web.client.impl.HttpContext: void next()>();
goto label;
label:
v = <io.vertx.ext.web.client.impl.cache.CacheInterceptor$1: int[] $SwitchMap$io$vertx$ext$web$client$impl$ClientPhase>;
v = virtualinvoke v.<io.vertx.ext.web.client.impl.HttpContext: io.vertx.ext.web.client.impl.ClientPhase phase()>();
v = virtualinvoke v.<io.vertx.ext.web.client.impl.ClientPhase: int ordinal()>();
v = v[v];
lookupswitch(v)
{
case 1: goto label;
case 2: goto label;
default: goto label;
};
label:
specialinvoke v.<io.vertx.ext.web.client.impl.cache.CacheInterceptor: void handleCreateRequest(io.vertx.ext.web.client.impl.HttpContext)>(v);
goto label;
label:
specialinvoke v.<io.vertx.ext.web.client.impl.cache.CacheInterceptor: void handleDispatchResponse(io.vertx.ext.web.client.impl.HttpContext)>(v);
goto label;
label:
virtualinvoke v.<io.vertx.ext.web.client.impl.HttpContext: void next()>();
label:
return;
}
private void handleCreateRequest(io.vertx.ext.web.client.impl.HttpContext)
{
io.vertx.ext.web.client.CachingWebClientOptions v;
io.vertx.ext.web.client.impl.cache.CacheKey v;
io.vertx.core.http.RequestOptions v;
java.util.function.Function v;
io.vertx.ext.web.client.impl.cache.Vary v;
boolean v;
io.vertx.core.Promise v;
java.util.Set v;
io.vertx.core.Future v, v, v, v;
io.vertx.ext.web.client.impl.cache.CacheInterceptor v;
io.vertx.core.http.HttpMethod v;
io.vertx.ext.web.client.spi.CacheStore v, v, v;
io.vertx.core.Handler v, v;
io.vertx.ext.web.client.impl.HttpContext v;
v := @this: io.vertx.ext.web.client.impl.cache.CacheInterceptor;
v := @parameter: io.vertx.ext.web.client.impl.HttpContext;
v = virtualinvoke v.<io.vertx.ext.web.client.impl.HttpContext: io.vertx.core.http.RequestOptions requestOptions()>();
v = v.<io.vertx.ext.web.client.impl.cache.CacheInterceptor: io.vertx.ext.web.client.CachingWebClientOptions options>;
v = virtualinvoke v.<io.vertx.ext.web.client.CachingWebClientOptions: java.util.Set getCachedMethods()>();
v = virtualinvoke v.<io.vertx.core.http.RequestOptions: io.vertx.core.http.HttpMethod getMethod()>();
v = interfaceinvoke v.<java.util.Set: boolean contains(java.lang.Object)>(v);
if v == 0 goto label;
v = specialinvoke v.<io.vertx.ext.web.client.impl.cache.CacheInterceptor: io.vertx.ext.web.client.impl.cache.Vary selectVariation(io.vertx.core.http.RequestOptions)>(v);
if v != null goto label;
label:
virtualinvoke v.<io.vertx.ext.web.client.impl.HttpContext: void next()>();
return;
label:
v = staticinvoke <io.vertx.core.Promise: io.vertx.core.Promise promise()>();
v = new io.vertx.ext.web.client.impl.cache.CacheKey;
specialinvoke v.<io.vertx.ext.web.client.impl.cache.CacheKey: void <init>(io.vertx.core.http.RequestOptions,io.vertx.ext.web.client.impl.cache.Vary)>(v, v);
v = virtualinvoke v.<io.vertx.ext.web.client.impl.HttpContext: io.vertx.ext.web.client.spi.CacheStore privateCacheStore()>();
if v == null goto label;
v = virtualinvoke v.<io.vertx.ext.web.client.impl.HttpContext: io.vertx.ext.web.client.spi.CacheStore privateCacheStore()>();
v = interfaceinvoke v.<io.vertx.ext.web.client.spi.CacheStore: io.vertx.core.Future get(io.vertx.ext.web.client.impl.cache.CacheKey)>(v);
v = staticinvoke <io.vertx.ext.web.client.impl.cache.CacheInterceptor$lambda_handleCreateRequest_1__837: io.vertx.core.Handler bootstrap$(io.vertx.ext.web.client.impl.cache.CacheInterceptor,io.vertx.ext.web.client.impl.cache.CacheKey,io.vertx.core.Promise)>(v, v, v);
interfaceinvoke v.<io.vertx.core.Future: io.vertx.core.Future onSuccess(io.vertx.core.Handler)>(v);
goto label;
label:
v = v.<io.vertx.ext.web.client.impl.cache.CacheInterceptor: io.vertx.ext.web.client.spi.CacheStore publicCacheStore>;
v = interfaceinvoke v.<io.vertx.ext.web.client.spi.CacheStore: io.vertx.core.Future get(io.vertx.ext.web.client.impl.cache.CacheKey)>(v);
interfaceinvoke v.<io.vertx.core.Future: io.vertx.core.Future onComplete(io.vertx.core.Handler)>(v);
label:
v = interfaceinvoke v.<io.vertx.core.Promise: io.vertx.core.Future future()>();
v = staticinvoke <io.vertx.ext.web.client.impl.cache.CacheInterceptor$lambda_handleCreateRequest_2__835: java.util.function.Function bootstrap$(io.vertx.ext.web.client.impl.cache.CacheInterceptor,io.vertx.ext.web.client.impl.HttpContext)>(v, v);
v = interfaceinvoke v.<io.vertx.core.Future: io.vertx.core.Future map(java.util.function.Function)>(v);
v = staticinvoke <io.vertx.ext.web.client.impl.cache.CacheInterceptor$lambda_handleCreateRequest_3__836: io.vertx.core.Handler bootstrap$(io.vertx.ext.web.client.impl.HttpContext)>(v);
interfaceinvoke v.<io.vertx.core.Future: io.vertx.core.Future onComplete(io.vertx.core.Handler)>(v);
return;
}
private void handleDispatchResponse(io.vertx.ext.web.client.impl.HttpContext)
{
io.vertx.core.Future v, v;
io.vertx.ext.web.client.impl.cache.CacheInterceptor v;
java.lang.Boolean v;
java.lang.Object v, v;
io.vertx.core.Handler v, v;
io.vertx.ext.web.client.impl.HttpContext v;
v := @this: io.vertx.ext.web.client.impl.cache.CacheInterceptor;
v := @parameter: io.vertx.ext.web.client.impl.HttpContext;
v = virtualinvoke v.<io.vertx.ext.web.client.impl.HttpContext: java.lang.Object get(java.lang.String)>("cache.dispatch");
v = <java.lang.Boolean: java.lang.Boolean TRUE>;
if v != v goto label;
virtualinvoke v.<io.vertx.ext.web.client.impl.HttpContext: void next()>();
return;
label:
v = virtualinvoke v.<io.vertx.ext.web.client.impl.HttpContext: java.lang.Object get(java.lang.String)>("cache.response_to_revalidate");
if v == null goto label;
v = specialinvoke v.<io.vertx.ext.web.client.impl.cache.CacheInterceptor: io.vertx.core.Future processRevalidationResponse(io.vertx.ext.web.client.impl.HttpContext,io.vertx.ext.web.client.impl.cache.CachedHttpResponse)>(v, v);
v = staticinvoke <io.vertx.ext.web.client.impl.cache.CacheInterceptor$lambda_handleDispatchResponse_4__839: io.vertx.core.Handler bootstrap$(io.vertx.ext.web.client.impl.HttpContext)>(v);
interfaceinvoke v.<io.vertx.core.Future: io.vertx.core.Future onComplete(io.vertx.core.Handler)>(v);
goto label;
label:
v = specialinvoke v.<io.vertx.ext.web.client.impl.cache.CacheInterceptor: io.vertx.core.Future processResponse(io.vertx.ext.web.client.impl.HttpContext,io.vertx.ext.web.client.impl.cache.CachedHttpResponse)>(v, null);
v = staticinvoke <io.vertx.ext.web.client.impl.cache.CacheInterceptor$lambda_handleDispatchResponse_5__838: io.vertx.core.Handler bootstrap$(io.vertx.ext.web.client.impl.HttpContext)>(v);
interfaceinvoke v.<io.vertx.core.Future: io.vertx.core.Future onComplete(io.vertx.core.Handler)>(v);
label:
return;
}
private io.vertx.ext.web.client.impl.cache.Vary selectVariation(io.vertx.core.http.RequestOptions)
{
java.util.Iterator v;
java.util.Set v;
io.vertx.core.http.RequestOptions v;
io.vertx.ext.web.client.impl.cache.CacheInterceptor v;
java.util.Map v;
io.vertx.ext.web.client.impl.cache.CacheVariationsKey v;
java.lang.Object v, v;
boolean v, v;
v := @this: io.vertx.ext.web.client.impl.cache.CacheInterceptor;
v := @parameter: io.vertx.core.http.RequestOptions;
v = new io.vertx.ext.web.client.impl.cache.CacheVariationsKey;
specialinvoke v.<io.vertx.ext.web.client.impl.cache.CacheVariationsKey: void <init>(io.vertx.core.http.RequestOptions)>(v);
v = v.<io.vertx.ext.web.client.impl.cache.CacheInterceptor: java.util.Map variationsRegistry>;
v = staticinvoke <java.util.Collections: java.util.Set emptySet()>();
v = interfaceinvoke v.<java.util.Map: java.lang.Object getOrDefault(java.lang.Object,java.lang.Object)>(v, v);
v = interfaceinvoke v.<java.util.Set: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = virtualinvoke v.<io.vertx.ext.web.client.impl.cache.Vary: boolean matchesRequest(io.vertx.core.http.RequestOptions)>(v);
if v == 0 goto label;
return v;
label:
return null;
}
private io.vertx.core.Future processResponse(io.vertx.ext.web.client.impl.HttpContext, io.vertx.ext.web.client.impl.cache.CachedHttpResponse)
{
io.vertx.ext.web.client.CachingWebClientOptions v;
io.vertx.ext.web.client.HttpResponse v, v;
java.util.Set v;
io.vertx.core.Future v, v, v, v;
java.lang.Integer v;
io.vertx.ext.web.client.impl.cache.CacheInterceptor v;
int v;
io.vertx.ext.web.client.impl.cache.CachedHttpResponse v;
boolean v, v;
io.vertx.ext.web.client.impl.HttpContext v;
v := @this: io.vertx.ext.web.client.impl.cache.CacheInterceptor;
v := @parameter: io.vertx.ext.web.client.impl.HttpContext;
v := @parameter: io.vertx.ext.web.client.impl.cache.CachedHttpResponse;
v = virtualinvoke v.<io.vertx.ext.web.client.impl.HttpContext: io.vertx.ext.web.client.HttpResponse response()>();
v = v.<io.vertx.ext.web.client.impl.cache.CacheInterceptor: io.vertx.ext.web.client.CachingWebClientOptions options>;
v = virtualinvoke v.<io.vertx.ext.web.client.CachingWebClientOptions: java.util.Set getCachedStatusCodes()>();
v = interfaceinvoke v.<io.vertx.ext.web.client.HttpResponse: int statusCode()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v = interfaceinvoke v.<java.util.Set: boolean contains(java.lang.Object)>(v);
if v == 0 goto label;
v = specialinvoke v.<io.vertx.ext.web.client.impl.cache.CacheInterceptor: io.vertx.core.Future cacheResponse(io.vertx.ext.web.client.impl.HttpContext,io.vertx.ext.web.client.HttpResponse)>(v, v);
v = interfaceinvoke v.<io.vertx.core.Future: io.vertx.core.Future map(java.lang.Object)>(v);
return v;
label:
if v == null goto label;
v = virtualinvoke v.<io.vertx.ext.web.client.impl.cache.CachedHttpResponse: boolean useStaleIfError()>();
if v == 0 goto label;
v = virtualinvoke v.<io.vertx.ext.web.client.impl.cache.CachedHttpResponse: io.vertx.ext.web.client.HttpResponse rehydrate()>();
v = staticinvoke <io.vertx.core.Future: io.vertx.core.Future succeededFuture(java.lang.Object)>(v);
return v;
label:
v = staticinvoke <io.vertx.core.Future: io.vertx.core.Future succeededFuture(java.lang.Object)>(v);
return v;
}
private java.util.Optional respondFromCache(io.vertx.ext.web.client.impl.HttpContext, io.vertx.ext.web.client.impl.cache.CachedHttpResponse)
{
io.vertx.ext.web.client.HttpResponse v;
io.vertx.core.MultiMap v;
long v;
java.lang.Boolean v;
java.lang.String v, v;
boolean v, v, v;
java.lang.CharSequence v;
io.vertx.ext.web.client.HttpRequest v;
io.vertx.ext.web.client.impl.cache.CacheInterceptor v;
java.util.Optional v, v, v, v, v;
io.vertx.ext.web.client.impl.cache.CachedHttpResponse v;
java.lang.Object v;
io.vertx.ext.web.client.impl.cache.CacheControl v;
io.vertx.ext.web.client.impl.HttpContext v, v;
v := @this: io.vertx.ext.web.client.impl.cache.CacheInterceptor;
v := @parameter: io.vertx.ext.web.client.impl.HttpContext;
v := @parameter: io.vertx.ext.web.client.impl.cache.CachedHttpResponse;
if v != null goto label;
v = staticinvoke <java.util.Optional: java.util.Optional empty()>();
return v;
label:
v = virtualinvoke v.<io.vertx.ext.web.client.impl.cache.CachedHttpResponse: io.vertx.ext.web.client.HttpResponse rehydrate()>();
v = interfaceinvoke v.<io.vertx.ext.web.client.HttpResponse: io.vertx.core.MultiMap headers()>();
v = <io.vertx.core.http.HttpHeaders: java.lang.CharSequence AGE>;
v = virtualinvoke v.<io.vertx.ext.web.client.impl.cache.CachedHttpResponse: long age()>();
v = staticinvoke <java.lang.Long: java.lang.String toString(long)>(v);
interfaceinvoke v.<io.vertx.core.MultiMap: io.vertx.core.MultiMap set(java.lang.CharSequence,java.lang.CharSequence)>(v, v);
v = virtualinvoke v.<io.vertx.ext.web.client.impl.cache.CachedHttpResponse: io.vertx.ext.web.client.impl.cache.CacheControl getCacheControl()>();
v = virtualinvoke v.<io.vertx.ext.web.client.impl.cache.CacheControl: boolean noCache()>();
if v == 0 goto label;
specialinvoke v.<io.vertx.ext.web.client.impl.cache.CacheInterceptor: void markForRevalidation(io.vertx.ext.web.client.impl.HttpContext,io.vertx.ext.web.client.impl.cache.CachedHttpResponse)>(v, v);
v = staticinvoke <java.util.Optional: java.util.Optional empty()>();
return v;
label:
v = virtualinvoke v.<io.vertx.ext.web.client.impl.cache.CachedHttpResponse: boolean isFresh()>();
if v == 0 goto label;
v = staticinvoke <java.util.Optional: java.util.Optional of(java.lang.Object)>(v);
return v;
label:
v = virtualinvoke v.<io.vertx.ext.web.client.impl.cache.CachedHttpResponse: boolean useStaleWhileRevalidate()>();
if v == 0 goto label;
v = virtualinvoke v.<io.vertx.ext.web.client.impl.HttpContext: io.vertx.ext.web.client.impl.HttpContext duplicate()>();
v = staticinvoke <java.lang.Boolean: java.lang.Boolean valueOf(boolean)>(1);
virtualinvoke v.<io.vertx.ext.web.client.impl.HttpContext: io.vertx.ext.web.client.impl.HttpContext set(java.lang.String,java.lang.Object)>("cache.revalidation", v);
v = virtualinvoke v.<io.vertx.ext.web.client.impl.HttpContext: io.vertx.ext.web.client.HttpRequest request()>();
v = virtualinvoke v.<io.vertx.ext.web.client.impl.HttpContext: java.lang.String contentType()>();
v = virtualinvoke v.<io.vertx.ext.web.client.impl.HttpContext: java.lang.Object body()>();
virtualinvoke v.<io.vertx.ext.web.client.impl.HttpContext: void prepareRequest(io.vertx.ext.web.client.HttpRequest,java.lang.String,java.lang.Object)>(v, v, v);
v = staticinvoke <java.util.Optional: java.util.Optional of(java.lang.Object)>(v);
return v;
label:
specialinvoke v.<io.vertx.ext.web.client.impl.cache.CacheInterceptor: void markForRevalidation(io.vertx.ext.web.client.impl.HttpContext,io.vertx.ext.web.client.impl.cache.CachedHttpResponse)>(v, v);
v = staticinvoke <java.util.Optional: java.util.Optional empty()>();
return v;
}
private void markForRevalidation(io.vertx.ext.web.client.impl.HttpContext, io.vertx.ext.web.client.impl.cache.CachedHttpResponse)
{
java.lang.CharSequence v;
io.vertx.ext.web.client.impl.cache.CacheInterceptor v;
io.vertx.core.http.RequestOptions v;
io.vertx.ext.web.client.impl.cache.CachedHttpResponse v;
java.lang.String v;
io.vertx.ext.web.client.impl.cache.CacheControl v;
io.vertx.ext.web.client.impl.HttpContext v;
v := @this: io.vertx.ext.web.client.impl.cache.CacheInterceptor;
v := @parameter: io.vertx.ext.web.client.impl.HttpContext;
v := @parameter: io.vertx.ext.web.client.impl.cache.CachedHttpResponse;
v = virtualinvoke v.<io.vertx.ext.web.client.impl.cache.CachedHttpResponse: io.vertx.ext.web.client.impl.cache.CacheControl getCacheControl()>();
v = virtualinvoke v.<io.vertx.ext.web.client.impl.cache.CacheControl: java.lang.String getEtag()>();
if v == null goto label;
v = virtualinvoke v.<io.vertx.ext.web.client.impl.HttpContext: io.vertx.core.http.RequestOptions requestOptions()>();
v = <io.vertx.core.http.HttpHeaders: java.lang.CharSequence IF_NONE_MATCH>;
virtualinvoke v.<io.vertx.core.http.RequestOptions: io.vertx.core.http.RequestOptions putHeader(java.lang.CharSequence,java.lang.CharSequence)>(v, v);
label:
virtualinvoke v.<io.vertx.ext.web.client.impl.HttpContext: io.vertx.ext.web.client.impl.HttpContext set(java.lang.String,java.lang.Object)>("cache.response_to_revalidate", v);
return;
}
private io.vertx.core.Future processRevalidationResponse(io.vertx.ext.web.client.impl.HttpContext, io.vertx.ext.web.client.impl.cache.CachedHttpResponse)
{
io.vertx.ext.web.client.HttpResponse v, v;
io.vertx.core.Future v, v;
io.vertx.ext.web.client.impl.cache.CacheInterceptor v;
int v;
io.vertx.ext.web.client.impl.cache.CachedHttpResponse v;
io.vertx.ext.web.client.impl.HttpContext v;
v := @this: io.vertx.ext.web.client.impl.cache.CacheInterceptor;
v := @parameter: io.vertx.ext.web.client.impl.HttpContext;
v := @parameter: io.vertx.ext.web.client.impl.cache.CachedHttpResponse;
v = virtualinvoke v.<io.vertx.ext.web.client.impl.HttpContext: io.vertx.ext.web.client.HttpResponse response()>();
v = interfaceinvoke v.<io.vertx.ext.web.client.HttpResponse: int statusCode()>();
if v != 304 goto label;
v = virtualinvoke v.<io.vertx.ext.web.client.impl.cache.CachedHttpResponse: io.vertx.ext.web.client.HttpResponse rehydrate()>();
v = specialinvoke v.<io.vertx.ext.web.client.impl.cache.CacheInterceptor: io.vertx.core.Future cacheResponse(io.vertx.ext.web.client.impl.HttpContext,io.vertx.ext.web.client.HttpResponse)>(v, v);
return v;
label:
v = specialinvoke v.<io.vertx.ext.web.client.impl.cache.CacheInterceptor: io.vertx.core.Future processResponse(io.vertx.ext.web.client.impl.HttpContext,io.vertx.ext.web.client.impl.cache.CachedHttpResponse)>(v, v);
return v;
}
private io.vertx.core.Future cacheResponse(io.vertx.ext.web.client.impl.HttpContext, io.vertx.ext.web.client.HttpResponse)
{
io.vertx.ext.web.client.CachingWebClientOptions v;
io.vertx.ext.web.client.HttpResponse v;
io.vertx.core.MultiMap v, v, v;
io.vertx.ext.web.client.impl.cache.CacheKey v;
io.vertx.core.http.RequestOptions v, v;
io.vertx.ext.web.client.impl.cache.Vary v;
boolean v, v, v, v, v;
io.vertx.core.Future v, v, v, v, v, v, v;
io.vertx.ext.web.client.HttpRequest v;
io.vertx.ext.web.client.impl.cache.CacheInterceptor v;
io.vertx.ext.web.client.impl.cache.CacheVariationsKey v;
io.vertx.ext.web.client.impl.cache.CachedHttpResponse v;
io.vertx.ext.web.client.spi.CacheStore v, v, v;
io.vertx.ext.web.client.impl.cache.CacheControl v;
io.vertx.ext.web.client.impl.HttpContext v;
v := @this: io.vertx.ext.web.client.impl.cache.CacheInterceptor;
v := @parameter: io.vertx.ext.web.client.impl.HttpContext;
v := @parameter: io.vertx.ext.web.client.HttpResponse;
v = virtualinvoke v.<io.vertx.ext.web.client.impl.HttpContext: io.vertx.ext.web.client.HttpRequest request()>();
v = interfaceinvoke v.<io.vertx.ext.web.client.HttpResponse: io.vertx.core.MultiMap headers()>();
v = staticinvoke <io.vertx.ext.web.client.impl.cache.CacheControl: io.vertx.ext.web.client.impl.cache.CacheControl parse(io.vertx.core.MultiMap)>(v);
v = virtualinvoke v.<io.vertx.ext.web.client.impl.cache.CacheControl: boolean isCacheable()>();
if v != 0 goto label;
v = staticinvoke <io.vertx.core.Future: io.vertx.core.Future succeededFuture(java.lang.Object)>(v);
return v;
label:
v = virtualinvoke v.<io.vertx.ext.web.client.impl.cache.CacheControl: boolean isPrivate()>();
if v == 0 goto label;
v = virtualinvoke v.<io.vertx.ext.web.client.impl.HttpContext: io.vertx.ext.web.client.spi.CacheStore privateCacheStore()>();
if v != null goto label;
v = staticinvoke <io.vertx.core.Future: io.vertx.core.Future succeededFuture(java.lang.Object)>(v);
return v;
label:
v = virtualinvoke v.<io.vertx.ext.web.client.impl.cache.CacheControl: boolean isVarying()>();
if v == 0 goto label;
v = v.<io.vertx.ext.web.client.impl.cache.CacheInterceptor: io.vertx.ext.web.client.CachingWebClientOptions options>;
v = virtualinvoke v.<io.vertx.ext.web.client.CachingWebClientOptions: boolean isVaryCachingEnabled()>();
if v != 0 goto label;
v = staticinvoke <io.vertx.core.Future: io.vertx.core.Future succeededFuture(java.lang.Object)>(v);
return v;
label:
v = new io.vertx.ext.web.client.impl.cache.CacheVariationsKey;
v = virtualinvoke v.<io.vertx.ext.web.client.impl.HttpContext: io.vertx.core.http.RequestOptions requestOptions()>();
specialinvoke v.<io.vertx.ext.web.client.impl.cache.CacheVariationsKey: void <init>(io.vertx.core.http.RequestOptions)>(v);
v = new io.vertx.ext.web.client.impl.cache.Vary;
v = interfaceinvoke v.<io.vertx.ext.web.client.HttpRequest: io.vertx.core.MultiMap headers()>();
v = interfaceinvoke v.<io.vertx.ext.web.client.HttpResponse: io.vertx.core.MultiMap headers()>();
specialinvoke v.<io.vertx.ext.web.client.impl.cache.Vary: void <init>(io.vertx.core.MultiMap,io.vertx.core.MultiMap)>(v, v);
specialinvoke v.<io.vertx.ext.web.client.impl.cache.CacheInterceptor: void registerVariation(io.vertx.ext.web.client.impl.cache.CacheVariationsKey,io.vertx.ext.web.client.impl.cache.Vary)>(v, v);
v = new io.vertx.ext.web.client.impl.cache.CacheKey;
v = virtualinvoke v.<io.vertx.ext.web.client.impl.HttpContext: io.vertx.core.http.RequestOptions requestOptions()>();
specialinvoke v.<io.vertx.ext.web.client.impl.cache.CacheKey: void <init>(io.vertx.core.http.RequestOptions,io.vertx.ext.web.client.impl.cache.Vary)>(v, v);
v = staticinvoke <io.vertx.ext.web.client.impl.cache.CachedHttpResponse: io.vertx.ext.web.client.impl.cache.CachedHttpResponse wrap(io.vertx.ext.web.client.HttpResponse,io.vertx.ext.web.client.impl.cache.CacheControl)>(v, v);
v = virtualinvoke v.<io.vertx.ext.web.client.impl.cache.CacheControl: boolean isPrivate()>();
if v == 0 goto label;
v = virtualinvoke v.<io.vertx.ext.web.client.impl.HttpContext: io.vertx.ext.web.client.spi.CacheStore privateCacheStore()>();
v = interfaceinvoke v.<io.vertx.ext.web.client.spi.CacheStore: io.vertx.core.Future set(io.vertx.ext.web.client.impl.cache.CacheKey,io.vertx.ext.web.client.impl.cache.CachedHttpResponse)>(v, v);
v = interfaceinvoke v.<io.vertx.core.Future: io.vertx.core.Future map(java.lang.Object)>(v);
return v;
label:
v = v.<io.vertx.ext.web.client.impl.cache.CacheInterceptor: io.vertx.ext.web.client.spi.CacheStore publicCacheStore>;
v = interfaceinvoke v.<io.vertx.ext.web.client.spi.CacheStore: io.vertx.core.Future set(io.vertx.ext.web.client.impl.cache.CacheKey,io.vertx.ext.web.client.impl.cache.CachedHttpResponse)>(v, v);
v = interfaceinvoke v.<io.vertx.core.Future: io.vertx.core.Future map(java.lang.Object)>(v);
return v;
}
private void registerVariation(io.vertx.ext.web.client.impl.cache.CacheVariationsKey, io.vertx.ext.web.client.impl.cache.Vary)
{
java.util.Set v;
java.util.HashSet v;
io.vertx.ext.web.client.impl.cache.Vary v;
io.vertx.ext.web.client.impl.cache.CacheInterceptor v;
java.util.Map v, v;
io.vertx.ext.web.client.impl.cache.CacheVariationsKey v;
java.lang.Object v;
v := @this: io.vertx.ext.web.client.impl.cache.CacheInterceptor;
v := @parameter: io.vertx.ext.web.client.impl.cache.CacheVariationsKey;
v := @parameter: io.vertx.ext.web.client.impl.cache.Vary;
v = v.<io.vertx.ext.web.client.impl.cache.CacheInterceptor: java.util.Map variationsRegistry>;
v = staticinvoke <java.util.Collections: java.util.Set emptySet()>();
v = interfaceinvoke v.<java.util.Map: java.lang.Object getOrDefault(java.lang.Object,java.lang.Object)>(v, v);
v = new java.util.HashSet;
specialinvoke v.<java.util.HashSet: void <init>(java.util.Collection)>(v);
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
v = v.<io.vertx.ext.web.client.impl.cache.CacheInterceptor: java.util.Map variationsRegistry>;
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
return;
}
}