public class org.apache.dubbo.cache.support.expiring.ExpiringMap extends java.lang.Object implements java.util.Map
{
private static final int DEFAULT_TIME_TO_LIVE;
private static final int DEFAULT_EXPIRATION_INTERVAL;
private static java.util.concurrent.atomic.AtomicInteger expireCount;
private final java.util.concurrent.ConcurrentHashMap delegateMap;
private final org.apache.dubbo.cache.support.expiring.ExpiringMap$ExpireThread expireThread;
public void <init>()
{
org.apache.dubbo.cache.support.expiring.ExpiringMap v;
v := @this: org.apache.dubbo.cache.support.expiring.ExpiringMap;
specialinvoke v.<org.apache.dubbo.cache.support.expiring.ExpiringMap: void <init>(int,int)>(180, 1);
return;
}
public void <init>(int)
{
int v;
org.apache.dubbo.cache.support.expiring.ExpiringMap v;
v := @this: org.apache.dubbo.cache.support.expiring.ExpiringMap;
v := @parameter: int;
specialinvoke v.<org.apache.dubbo.cache.support.expiring.ExpiringMap: void <init>(int,int)>(v, 1);
return;
}
public void <init>(int, int)
{
org.apache.dubbo.cache.support.expiring.ExpiringMap v;
int v, v;
java.util.concurrent.ConcurrentHashMap v;
v := @this: org.apache.dubbo.cache.support.expiring.ExpiringMap;
v := @parameter: int;
v := @parameter: int;
v = new java.util.concurrent.ConcurrentHashMap;
specialinvoke v.<java.util.concurrent.ConcurrentHashMap: void <init>()>();
specialinvoke v.<org.apache.dubbo.cache.support.expiring.ExpiringMap: void <init>(java.util.concurrent.ConcurrentHashMap,int,int)>(v, v, v);
return;
}
private void <init>(java.util.concurrent.ConcurrentHashMap, int, int)
{
org.apache.dubbo.cache.support.expiring.ExpiringMap v;
org.apache.dubbo.cache.support.expiring.ExpiringMap$ExpireThread v, v, v;
int v, v;
java.util.concurrent.ConcurrentHashMap v;
v := @this: org.apache.dubbo.cache.support.expiring.ExpiringMap;
v := @parameter: java.util.concurrent.ConcurrentHashMap;
v := @parameter: int;
v := @parameter: int;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<org.apache.dubbo.cache.support.expiring.ExpiringMap: java.util.concurrent.ConcurrentHashMap delegateMap> = v;
v = new org.apache.dubbo.cache.support.expiring.ExpiringMap$ExpireThread;
specialinvoke v.<org.apache.dubbo.cache.support.expiring.ExpiringMap$ExpireThread: void <init>(org.apache.dubbo.cache.support.expiring.ExpiringMap)>(v);
v.<org.apache.dubbo.cache.support.expiring.ExpiringMap: org.apache.dubbo.cache.support.expiring.ExpiringMap$ExpireThread expireThread> = v;
v = v.<org.apache.dubbo.cache.support.expiring.ExpiringMap: org.apache.dubbo.cache.support.expiring.ExpiringMap$ExpireThread expireThread>;
virtualinvoke v.<org.apache.dubbo.cache.support.expiring.ExpiringMap$ExpireThread: void setTimeToLive(long)>(v);
v = v.<org.apache.dubbo.cache.support.expiring.ExpiringMap: org.apache.dubbo.cache.support.expiring.ExpiringMap$ExpireThread expireThread>;
virtualinvoke v.<org.apache.dubbo.cache.support.expiring.ExpiringMap$ExpireThread: void setExpirationInterval(long)>(v);
return;
}
public java.lang.Object put(java.lang.Object, java.lang.Object)
{
org.apache.dubbo.cache.support.expiring.ExpiringMap v;
java.util.concurrent.ConcurrentHashMap v;
long v;
org.apache.dubbo.cache.support.expiring.ExpiringMap$ExpiryObject v;
java.lang.Object v, v, v, v;
v := @this: org.apache.dubbo.cache.support.expiring.ExpiringMap;
v := @parameter: java.lang.Object;
v := @parameter: java.lang.Object;
v = v.<org.apache.dubbo.cache.support.expiring.ExpiringMap: java.util.concurrent.ConcurrentHashMap delegateMap>;
v = new org.apache.dubbo.cache.support.expiring.ExpiringMap$ExpiryObject;
v = staticinvoke <java.lang.System: long currentTimeMillis()>();
specialinvoke v.<org.apache.dubbo.cache.support.expiring.ExpiringMap$ExpiryObject: void <init>(org.apache.dubbo.cache.support.expiring.ExpiringMap,java.lang.Object,java.lang.Object,long)>(v, v, v, v);
v = virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
if v != null goto label;
return null;
label:
v = virtualinvoke v.<org.apache.dubbo.cache.support.expiring.ExpiringMap$ExpiryObject: java.lang.Object getValue()>();
return v;
}
public java.lang.Object get(java.lang.Object)
{
org.apache.dubbo.cache.support.expiring.ExpiringMap v;
java.util.concurrent.ConcurrentHashMap v, v;
long v, v, v, v;
org.apache.dubbo.cache.support.expiring.ExpiringMap$ExpireThread v;
byte v;
int v, v;
java.lang.Object v, v, v, v;
v := @this: org.apache.dubbo.cache.support.expiring.ExpiringMap;
v := @parameter: java.lang.Object;
v = v.<org.apache.dubbo.cache.support.expiring.ExpiringMap: java.util.concurrent.ConcurrentHashMap delegateMap>;
v = virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: java.lang.Object get(java.lang.Object)>(v);
if v == null goto label;
v = staticinvoke <java.lang.System: long currentTimeMillis()>();
v = virtualinvoke v.<org.apache.dubbo.cache.support.expiring.ExpiringMap$ExpiryObject: long getLastAccessTime()>();
v = v - v;
v = v.<org.apache.dubbo.cache.support.expiring.ExpiringMap: org.apache.dubbo.cache.support.expiring.ExpiringMap$ExpireThread expireThread>;
v = virtualinvoke v.<org.apache.dubbo.cache.support.expiring.ExpiringMap$ExpireThread: int getTimeToLive()>();
if v <= 0 goto label;
v = v * 1000;
v = v cmp v;
if v < 0 goto label;
v = v.<org.apache.dubbo.cache.support.expiring.ExpiringMap: java.util.concurrent.ConcurrentHashMap delegateMap>;
v = virtualinvoke v.<org.apache.dubbo.cache.support.expiring.ExpiringMap$ExpiryObject: java.lang.Object getKey()>();
virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: java.lang.Object remove(java.lang.Object)>(v);
return null;
label:
v = staticinvoke <java.lang.System: long currentTimeMillis()>();
virtualinvoke v.<org.apache.dubbo.cache.support.expiring.ExpiringMap$ExpiryObject: void setLastAccessTime(long)>(v);
v = virtualinvoke v.<org.apache.dubbo.cache.support.expiring.ExpiringMap$ExpiryObject: java.lang.Object getValue()>();
return v;
label:
return null;
}
public java.lang.Object remove(java.lang.Object)
{
org.apache.dubbo.cache.support.expiring.ExpiringMap v;
java.util.concurrent.ConcurrentHashMap v;
java.lang.Object v, v, v;
v := @this: org.apache.dubbo.cache.support.expiring.ExpiringMap;
v := @parameter: java.lang.Object;
v = v.<org.apache.dubbo.cache.support.expiring.ExpiringMap: java.util.concurrent.ConcurrentHashMap delegateMap>;
v = virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: java.lang.Object remove(java.lang.Object)>(v);
if v != null goto label;
return null;
label:
v = virtualinvoke v.<org.apache.dubbo.cache.support.expiring.ExpiringMap$ExpiryObject: java.lang.Object getValue()>();
return v;
}
public boolean containsKey(java.lang.Object)
{
org.apache.dubbo.cache.support.expiring.ExpiringMap v;
java.util.concurrent.ConcurrentHashMap v;
java.lang.Object v;
boolean v;
v := @this: org.apache.dubbo.cache.support.expiring.ExpiringMap;
v := @parameter: java.lang.Object;
v = v.<org.apache.dubbo.cache.support.expiring.ExpiringMap: java.util.concurrent.ConcurrentHashMap delegateMap>;
v = virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: boolean containsKey(java.lang.Object)>(v);
return v;
}
public boolean containsValue(java.lang.Object)
{
org.apache.dubbo.cache.support.expiring.ExpiringMap v;
java.util.concurrent.ConcurrentHashMap v;
java.lang.Object v;
boolean v;
v := @this: org.apache.dubbo.cache.support.expiring.ExpiringMap;
v := @parameter: java.lang.Object;
v = v.<org.apache.dubbo.cache.support.expiring.ExpiringMap: java.util.concurrent.ConcurrentHashMap delegateMap>;
v = virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: boolean containsValue(java.lang.Object)>(v);
return v;
}
public int size()
{
int v;
java.util.concurrent.ConcurrentHashMap v;
org.apache.dubbo.cache.support.expiring.ExpiringMap v;
v := @this: org.apache.dubbo.cache.support.expiring.ExpiringMap;
v = v.<org.apache.dubbo.cache.support.expiring.ExpiringMap: java.util.concurrent.ConcurrentHashMap delegateMap>;
v = virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: int size()>();
return v;
}
public boolean isEmpty()
{
java.util.concurrent.ConcurrentHashMap v;
org.apache.dubbo.cache.support.expiring.ExpiringMap v;
boolean v;
v := @this: org.apache.dubbo.cache.support.expiring.ExpiringMap;
v = v.<org.apache.dubbo.cache.support.expiring.ExpiringMap: java.util.concurrent.ConcurrentHashMap delegateMap>;
v = virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: boolean isEmpty()>();
return v;
}
public void clear()
{
java.util.concurrent.ConcurrentHashMap v;
org.apache.dubbo.cache.support.expiring.ExpiringMap v;
org.apache.dubbo.cache.support.expiring.ExpiringMap$ExpireThread v;
v := @this: org.apache.dubbo.cache.support.expiring.ExpiringMap;
v = v.<org.apache.dubbo.cache.support.expiring.ExpiringMap: java.util.concurrent.ConcurrentHashMap delegateMap>;
virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: void clear()>();
v = v.<org.apache.dubbo.cache.support.expiring.ExpiringMap: org.apache.dubbo.cache.support.expiring.ExpiringMap$ExpireThread expireThread>;
virtualinvoke v.<org.apache.dubbo.cache.support.expiring.ExpiringMap$ExpireThread: void stopExpiring()>();
return;
}
public int hashCode()
{
int v;
java.util.concurrent.ConcurrentHashMap v;
org.apache.dubbo.cache.support.expiring.ExpiringMap v;
v := @this: org.apache.dubbo.cache.support.expiring.ExpiringMap;
v = v.<org.apache.dubbo.cache.support.expiring.ExpiringMap: java.util.concurrent.ConcurrentHashMap delegateMap>;
v = virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: int hashCode()>();
return v;
}
public java.util.Set keySet()
{
java.util.concurrent.ConcurrentHashMap v;
org.apache.dubbo.cache.support.expiring.ExpiringMap v;
java.util.concurrent.ConcurrentHashMap$KeySetView v;
v := @this: org.apache.dubbo.cache.support.expiring.ExpiringMap;
v = v.<org.apache.dubbo.cache.support.expiring.ExpiringMap: java.util.concurrent.ConcurrentHashMap delegateMap>;
v = virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: java.util.concurrent.ConcurrentHashMap$KeySetView keySet()>();
return v;
}
public boolean equals(java.lang.Object)
{
org.apache.dubbo.cache.support.expiring.ExpiringMap v;
java.util.concurrent.ConcurrentHashMap v;
java.lang.Object v;
boolean v;
v := @this: org.apache.dubbo.cache.support.expiring.ExpiringMap;
v := @parameter: java.lang.Object;
if v != v goto label;
return 1;
label:
v = v.<org.apache.dubbo.cache.support.expiring.ExpiringMap: java.util.concurrent.ConcurrentHashMap delegateMap>;
v = virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: boolean equals(java.lang.Object)>(v);
return v;
}
public void putAll(java.util.Map)
{
org.apache.dubbo.cache.support.expiring.ExpiringMap v;
java.util.Iterator v;
java.util.Set v;
java.util.Map v;
java.lang.Object v, v, v;
boolean v;
v := @this: org.apache.dubbo.cache.support.expiring.ExpiringMap;
v := @parameter: java.util.Map;
v = interfaceinvoke v.<java.util.Map: java.util.Set entrySet()>();
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 = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
virtualinvoke v.<org.apache.dubbo.cache.support.expiring.ExpiringMap: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
goto label;
label:
return;
}
public java.util.Collection values()
{
org.apache.dubbo.cache.support.expiring.ExpiringMap v;
java.util.Iterator v;
java.util.concurrent.ConcurrentHashMap v;
java.util.Set v;
java.util.ArrayList v;
java.lang.Object v, v, v;
boolean v;
v := @this: org.apache.dubbo.cache.support.expiring.ExpiringMap;
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = v.<org.apache.dubbo.cache.support.expiring.ExpiringMap: java.util.concurrent.ConcurrentHashMap delegateMap>;
v = virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: java.util.Set entrySet()>();
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 = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = virtualinvoke v.<org.apache.dubbo.cache.support.expiring.ExpiringMap$ExpiryObject: java.lang.Object getValue()>();
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
goto label;
label:
return v;
}
public java.util.Set entrySet()
{
java.lang.UnsupportedOperationException v;
org.apache.dubbo.cache.support.expiring.ExpiringMap v;
v := @this: org.apache.dubbo.cache.support.expiring.ExpiringMap;
v = new java.lang.UnsupportedOperationException;
specialinvoke v.<java.lang.UnsupportedOperationException: void <init>()>();
throw v;
}
public org.apache.dubbo.cache.support.expiring.ExpiringMap$ExpireThread getExpireThread()
{
org.apache.dubbo.cache.support.expiring.ExpiringMap v;
org.apache.dubbo.cache.support.expiring.ExpiringMap$ExpireThread v;
v := @this: org.apache.dubbo.cache.support.expiring.ExpiringMap;
v = v.<org.apache.dubbo.cache.support.expiring.ExpiringMap: org.apache.dubbo.cache.support.expiring.ExpiringMap$ExpireThread expireThread>;
return v;
}
public int getExpirationInterval()
{
int v;
org.apache.dubbo.cache.support.expiring.ExpiringMap v;
org.apache.dubbo.cache.support.expiring.ExpiringMap$ExpireThread v;
v := @this: org.apache.dubbo.cache.support.expiring.ExpiringMap;
v = v.<org.apache.dubbo.cache.support.expiring.ExpiringMap: org.apache.dubbo.cache.support.expiring.ExpiringMap$ExpireThread expireThread>;
v = virtualinvoke v.<org.apache.dubbo.cache.support.expiring.ExpiringMap$ExpireThread: int getExpirationInterval()>();
return v;
}
public void setExpirationInterval(int)
{
int v;
org.apache.dubbo.cache.support.expiring.ExpiringMap v;
org.apache.dubbo.cache.support.expiring.ExpiringMap$ExpireThread v;
v := @this: org.apache.dubbo.cache.support.expiring.ExpiringMap;
v := @parameter: int;
v = v.<org.apache.dubbo.cache.support.expiring.ExpiringMap: org.apache.dubbo.cache.support.expiring.ExpiringMap$ExpireThread expireThread>;
virtualinvoke v.<org.apache.dubbo.cache.support.expiring.ExpiringMap$ExpireThread: void setExpirationInterval(long)>(v);
return;
}
public int getTimeToLive()
{
int v;
org.apache.dubbo.cache.support.expiring.ExpiringMap v;
org.apache.dubbo.cache.support.expiring.ExpiringMap$ExpireThread v;
v := @this: org.apache.dubbo.cache.support.expiring.ExpiringMap;
v = v.<org.apache.dubbo.cache.support.expiring.ExpiringMap: org.apache.dubbo.cache.support.expiring.ExpiringMap$ExpireThread expireThread>;
v = virtualinvoke v.<org.apache.dubbo.cache.support.expiring.ExpiringMap$ExpireThread: int getTimeToLive()>();
return v;
}
public void setTimeToLive(int)
{
int v;
org.apache.dubbo.cache.support.expiring.ExpiringMap v;
org.apache.dubbo.cache.support.expiring.ExpiringMap$ExpireThread v;
v := @this: org.apache.dubbo.cache.support.expiring.ExpiringMap;
v := @parameter: int;
v = v.<org.apache.dubbo.cache.support.expiring.ExpiringMap: org.apache.dubbo.cache.support.expiring.ExpiringMap$ExpireThread expireThread>;
virtualinvoke v.<org.apache.dubbo.cache.support.expiring.ExpiringMap$ExpireThread: void setTimeToLive(long)>(v);
return;
}
public java.lang.String toString()
{
org.apache.dubbo.cache.support.expiring.ExpiringMap v;
org.apache.dubbo.cache.support.expiring.ExpiringMap$ExpireThread v;
java.util.concurrent.ConcurrentHashMap v;
java.lang.String v, v, v;
v := @this: org.apache.dubbo.cache.support.expiring.ExpiringMap;
v = v.<org.apache.dubbo.cache.support.expiring.ExpiringMap: java.util.concurrent.ConcurrentHashMap delegateMap>;
v = virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: java.lang.String toString()>();
v = v.<org.apache.dubbo.cache.support.expiring.ExpiringMap: org.apache.dubbo.cache.support.expiring.ExpiringMap$ExpireThread expireThread>;
v = virtualinvoke v.<org.apache.dubbo.cache.support.expiring.ExpiringMap$ExpireThread: java.lang.String toString()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("ExpiringMap{delegateMap=\u, expireThread=\u0001}");
return v;
}
static void <clinit>()
{
java.util.concurrent.atomic.AtomicInteger v;
v = new java.util.concurrent.atomic.AtomicInteger;
specialinvoke v.<java.util.concurrent.atomic.AtomicInteger: void <init>(int)>(1);
<org.apache.dubbo.cache.support.expiring.ExpiringMap: java.util.concurrent.atomic.AtomicInteger expireCount> = v;
return;
}
}