final class org.jboss.logmanager.CopyOnWriteMap extends java.util.AbstractMap implements java.util.concurrent.ConcurrentMap, java.lang.Cloneable
{
private static final org.jboss.logmanager.FastCopyHashMap EMPTY;
private volatile org.jboss.logmanager.FastCopyHashMap map;
private static final java.util.concurrent.atomic.AtomicReferenceFieldUpdater mapUpdater;
void <init>()
{
org.jboss.logmanager.FastCopyHashMap v;
org.jboss.logmanager.CopyOnWriteMap v;
v := @this: org.jboss.logmanager.CopyOnWriteMap;
specialinvoke v.<java.util.AbstractMap: void <init>()>();
v = <org.jboss.logmanager.CopyOnWriteMap: org.jboss.logmanager.FastCopyHashMap EMPTY>;
v.<org.jboss.logmanager.CopyOnWriteMap: org.jboss.logmanager.FastCopyHashMap map> = v;
return;
}
public java.lang.Object get(java.lang.Object)
{
org.jboss.logmanager.FastCopyHashMap v;
java.lang.Object v, v;
org.jboss.logmanager.CopyOnWriteMap v;
v := @this: org.jboss.logmanager.CopyOnWriteMap;
v := @parameter: java.lang.Object;
v = v.<org.jboss.logmanager.CopyOnWriteMap: org.jboss.logmanager.FastCopyHashMap map>;
v = virtualinvoke v.<org.jboss.logmanager.FastCopyHashMap: java.lang.Object get(java.lang.Object)>(v);
return v;
}
public boolean containsKey(java.lang.Object)
{
org.jboss.logmanager.FastCopyHashMap v;
java.lang.Object v;
org.jboss.logmanager.CopyOnWriteMap v;
boolean v;
v := @this: org.jboss.logmanager.CopyOnWriteMap;
v := @parameter: java.lang.Object;
v = v.<org.jboss.logmanager.CopyOnWriteMap: org.jboss.logmanager.FastCopyHashMap map>;
v = virtualinvoke v.<org.jboss.logmanager.FastCopyHashMap: boolean containsKey(java.lang.Object)>(v);
return v;
}
public int size()
{
int v;
org.jboss.logmanager.FastCopyHashMap v;
org.jboss.logmanager.CopyOnWriteMap v;
v := @this: org.jboss.logmanager.CopyOnWriteMap;
v = v.<org.jboss.logmanager.CopyOnWriteMap: org.jboss.logmanager.FastCopyHashMap map>;
v = virtualinvoke v.<org.jboss.logmanager.FastCopyHashMap: int size()>();
return v;
}
public boolean containsValue(java.lang.Object)
{
org.jboss.logmanager.FastCopyHashMap v;
java.lang.Object v;
org.jboss.logmanager.CopyOnWriteMap v;
boolean v;
v := @this: org.jboss.logmanager.CopyOnWriteMap;
v := @parameter: java.lang.Object;
v = v.<org.jboss.logmanager.CopyOnWriteMap: org.jboss.logmanager.FastCopyHashMap map>;
v = virtualinvoke v.<org.jboss.logmanager.FastCopyHashMap: boolean containsValue(java.lang.Object)>(v);
return v;
}
public void clear()
{
org.jboss.logmanager.FastCopyHashMap v;
org.jboss.logmanager.CopyOnWriteMap v;
v := @this: org.jboss.logmanager.CopyOnWriteMap;
v = <org.jboss.logmanager.CopyOnWriteMap: org.jboss.logmanager.FastCopyHashMap EMPTY>;
v.<org.jboss.logmanager.CopyOnWriteMap: org.jboss.logmanager.FastCopyHashMap map> = v;
return;
}
public java.lang.Object put(java.lang.Object, java.lang.Object)
{
org.jboss.logmanager.FastCopyHashMap v, v;
java.util.concurrent.atomic.AtomicReferenceFieldUpdater v;
org.jboss.logmanager.CopyOnWriteMap v;
java.lang.Object v, v, v;
boolean v;
v := @this: org.jboss.logmanager.CopyOnWriteMap;
v := @parameter: java.lang.Object;
v := @parameter: java.lang.Object;
label:
v = v.<org.jboss.logmanager.CopyOnWriteMap: org.jboss.logmanager.FastCopyHashMap map>;
v = virtualinvoke v.<org.jboss.logmanager.FastCopyHashMap: org.jboss.logmanager.FastCopyHashMap clone()>();
v = virtualinvoke v.<org.jboss.logmanager.FastCopyHashMap: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
v = <org.jboss.logmanager.CopyOnWriteMap: java.util.concurrent.atomic.AtomicReferenceFieldUpdater mapUpdater>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicReferenceFieldUpdater: boolean compareAndSet(java.lang.Object,java.lang.Object,java.lang.Object)>(v, v, v);
if v == 0 goto label;
return v;
}
public java.lang.Object remove(java.lang.Object)
{
org.jboss.logmanager.FastCopyHashMap v, v;
java.util.concurrent.atomic.AtomicReferenceFieldUpdater v;
org.jboss.logmanager.CopyOnWriteMap v;
java.lang.Object v, v;
boolean v, v;
v := @this: org.jboss.logmanager.CopyOnWriteMap;
v := @parameter: java.lang.Object;
label:
v = v.<org.jboss.logmanager.CopyOnWriteMap: org.jboss.logmanager.FastCopyHashMap map>;
v = virtualinvoke v.<org.jboss.logmanager.FastCopyHashMap: boolean containsKey(java.lang.Object)>(v);
if v != 0 goto label;
return null;
label:
v = virtualinvoke v.<org.jboss.logmanager.FastCopyHashMap: org.jboss.logmanager.FastCopyHashMap clone()>();
v = virtualinvoke v.<org.jboss.logmanager.FastCopyHashMap: java.lang.Object remove(java.lang.Object)>(v);
v = <org.jboss.logmanager.CopyOnWriteMap: java.util.concurrent.atomic.AtomicReferenceFieldUpdater mapUpdater>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicReferenceFieldUpdater: boolean compareAndSet(java.lang.Object,java.lang.Object,java.lang.Object)>(v, v, v);
if v == 0 goto label;
return v;
}
public org.jboss.logmanager.CopyOnWriteMap clone()
{
java.lang.IllegalStateException v;
java.lang.Object v;
org.jboss.logmanager.CopyOnWriteMap v;
java.lang.CloneNotSupportedException v;
v := @this: org.jboss.logmanager.CopyOnWriteMap;
label:
v = specialinvoke v.<java.util.AbstractMap: java.lang.Object clone()>();
label:
return v;
label:
v := @caughtexception;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>()>();
throw v;
catch java.lang.CloneNotSupportedException from label to label with label;
}
public java.lang.Object putIfAbsent(java.lang.Object, java.lang.Object)
{
org.jboss.logmanager.FastCopyHashMap v, v;
java.util.concurrent.atomic.AtomicReferenceFieldUpdater v;
org.jboss.logmanager.CopyOnWriteMap v;
java.lang.Object v, v, v;
boolean v, v;
v := @this: org.jboss.logmanager.CopyOnWriteMap;
v := @parameter: java.lang.Object;
v := @parameter: java.lang.Object;
label:
v = v.<org.jboss.logmanager.CopyOnWriteMap: org.jboss.logmanager.FastCopyHashMap map>;
v = virtualinvoke v.<org.jboss.logmanager.FastCopyHashMap: boolean containsKey(java.lang.Object)>(v);
if v == 0 goto label;
v = virtualinvoke v.<org.jboss.logmanager.FastCopyHashMap: java.lang.Object get(java.lang.Object)>(v);
return v;
label:
v = virtualinvoke v.<org.jboss.logmanager.FastCopyHashMap: org.jboss.logmanager.FastCopyHashMap clone()>();
virtualinvoke v.<org.jboss.logmanager.FastCopyHashMap: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
v = <org.jboss.logmanager.CopyOnWriteMap: java.util.concurrent.atomic.AtomicReferenceFieldUpdater mapUpdater>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicReferenceFieldUpdater: boolean compareAndSet(java.lang.Object,java.lang.Object,java.lang.Object)>(v, v, v);
if v == 0 goto label;
return null;
}
public boolean remove(java.lang.Object, java.lang.Object)
{
org.jboss.logmanager.FastCopyHashMap v, v;
java.util.concurrent.atomic.AtomicReferenceFieldUpdater v;
org.jboss.logmanager.CopyOnWriteMap v;
int v;
java.lang.Object v, v, v;
boolean v, v;
v := @this: org.jboss.logmanager.CopyOnWriteMap;
v := @parameter: java.lang.Object;
v := @parameter: java.lang.Object;
label:
v = v.<org.jboss.logmanager.CopyOnWriteMap: org.jboss.logmanager.FastCopyHashMap map>;
v = virtualinvoke v.<org.jboss.logmanager.FastCopyHashMap: java.lang.Object get(java.lang.Object)>(v);
if v != v goto label;
if v != null goto label;
v = virtualinvoke v.<org.jboss.logmanager.FastCopyHashMap: boolean containsKey(java.lang.Object)>(v);
if v == 0 goto label;
label:
v = virtualinvoke v.<org.jboss.logmanager.FastCopyHashMap: int size()>();
if v != 1 goto label;
v = <org.jboss.logmanager.CopyOnWriteMap: org.jboss.logmanager.FastCopyHashMap EMPTY>;
goto label;
label:
v = virtualinvoke v.<org.jboss.logmanager.FastCopyHashMap: org.jboss.logmanager.FastCopyHashMap clone()>();
virtualinvoke v.<org.jboss.logmanager.FastCopyHashMap: java.lang.Object remove(java.lang.Object)>(v);
goto label;
label:
return 0;
label:
v = <org.jboss.logmanager.CopyOnWriteMap: java.util.concurrent.atomic.AtomicReferenceFieldUpdater mapUpdater>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicReferenceFieldUpdater: boolean compareAndSet(java.lang.Object,java.lang.Object,java.lang.Object)>(v, v, v);
if v == 0 goto label;
return 1;
}
public boolean replace(java.lang.Object, java.lang.Object, java.lang.Object)
{
org.jboss.logmanager.FastCopyHashMap v, v;
java.util.concurrent.atomic.AtomicReferenceFieldUpdater v;
org.jboss.logmanager.CopyOnWriteMap v;
java.lang.Object v, v, v, v;
boolean v, v;
v := @this: org.jboss.logmanager.CopyOnWriteMap;
v := @parameter: java.lang.Object;
v := @parameter: java.lang.Object;
v := @parameter: java.lang.Object;
label:
v = v.<org.jboss.logmanager.CopyOnWriteMap: org.jboss.logmanager.FastCopyHashMap map>;
v = virtualinvoke v.<org.jboss.logmanager.FastCopyHashMap: java.lang.Object get(java.lang.Object)>(v);
if v != v goto label;
if v != null goto label;
v = virtualinvoke v.<org.jboss.logmanager.FastCopyHashMap: boolean containsKey(java.lang.Object)>(v);
if v == 0 goto label;
label:
v = virtualinvoke v.<org.jboss.logmanager.FastCopyHashMap: org.jboss.logmanager.FastCopyHashMap clone()>();
virtualinvoke v.<org.jboss.logmanager.FastCopyHashMap: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
goto label;
label:
return 0;
label:
v = <org.jboss.logmanager.CopyOnWriteMap: java.util.concurrent.atomic.AtomicReferenceFieldUpdater mapUpdater>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicReferenceFieldUpdater: boolean compareAndSet(java.lang.Object,java.lang.Object,java.lang.Object)>(v, v, v);
if v == 0 goto label;
return 1;
}
public java.lang.Object replace(java.lang.Object, java.lang.Object)
{
org.jboss.logmanager.FastCopyHashMap v, v;
java.util.concurrent.atomic.AtomicReferenceFieldUpdater v;
org.jboss.logmanager.CopyOnWriteMap v;
java.lang.Object v, v, v, v;
boolean v, v;
v := @this: org.jboss.logmanager.CopyOnWriteMap;
v := @parameter: java.lang.Object;
v := @parameter: java.lang.Object;
label:
v = v.<org.jboss.logmanager.CopyOnWriteMap: org.jboss.logmanager.FastCopyHashMap map>;
v = virtualinvoke v.<org.jboss.logmanager.FastCopyHashMap: java.lang.Object get(java.lang.Object)>(v);
if v != v goto label;
if v != null goto label;
v = virtualinvoke v.<org.jboss.logmanager.FastCopyHashMap: boolean containsKey(java.lang.Object)>(v);
if v == 0 goto label;
label:
v = virtualinvoke v.<org.jboss.logmanager.FastCopyHashMap: org.jboss.logmanager.FastCopyHashMap clone()>();
v = virtualinvoke v.<org.jboss.logmanager.FastCopyHashMap: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
goto label;
label:
return null;
label:
v = <org.jboss.logmanager.CopyOnWriteMap: java.util.concurrent.atomic.AtomicReferenceFieldUpdater mapUpdater>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicReferenceFieldUpdater: boolean compareAndSet(java.lang.Object,java.lang.Object,java.lang.Object)>(v, v, v);
if v == 0 goto label;
return v;
}
public java.util.Set keySet()
{
org.jboss.logmanager.FastCopyHashMap v;
java.util.Set v, v;
org.jboss.logmanager.CopyOnWriteMap v;
v := @this: org.jboss.logmanager.CopyOnWriteMap;
v = v.<org.jboss.logmanager.CopyOnWriteMap: org.jboss.logmanager.FastCopyHashMap map>;
v = virtualinvoke v.<org.jboss.logmanager.FastCopyHashMap: java.util.Set keySet()>();
v = staticinvoke <java.util.Collections: java.util.Set unmodifiableSet(java.util.Set)>(v);
return v;
}
public java.util.Collection values()
{
org.jboss.logmanager.FastCopyHashMap v;
java.util.Collection v, v;
org.jboss.logmanager.CopyOnWriteMap v;
v := @this: org.jboss.logmanager.CopyOnWriteMap;
v = v.<org.jboss.logmanager.CopyOnWriteMap: org.jboss.logmanager.FastCopyHashMap map>;
v = virtualinvoke v.<org.jboss.logmanager.FastCopyHashMap: java.util.Collection values()>();
v = staticinvoke <java.util.Collections: java.util.Collection unmodifiableCollection(java.util.Collection)>(v);
return v;
}
public java.util.Set entrySet()
{
org.jboss.logmanager.FastCopyHashMap v;
java.util.Set v, v;
org.jboss.logmanager.CopyOnWriteMap v;
v := @this: org.jboss.logmanager.CopyOnWriteMap;
v = v.<org.jboss.logmanager.CopyOnWriteMap: org.jboss.logmanager.FastCopyHashMap map>;
v = virtualinvoke v.<org.jboss.logmanager.FastCopyHashMap: java.util.Set entrySet()>();
v = staticinvoke <java.util.Collections: java.util.Set unmodifiableSet(java.util.Set)>(v);
return v;
}
static void <clinit>()
{
org.jboss.logmanager.FastCopyHashMap v;
java.util.concurrent.atomic.AtomicReferenceFieldUpdater v;
v = new org.jboss.logmanager.FastCopyHashMap;
specialinvoke v.<org.jboss.logmanager.FastCopyHashMap: void <init>(int,float)>(32, 0.25F);
<org.jboss.logmanager.CopyOnWriteMap: org.jboss.logmanager.FastCopyHashMap EMPTY> = v;
v = staticinvoke <java.util.concurrent.atomic.AtomicReferenceFieldUpdater: java.util.concurrent.atomic.AtomicReferenceFieldUpdater newUpdater(java.lang.Class,java.lang.Class,java.lang.String)>(class "Lorg/jboss/logmanager/CopyOnWriteMap;", class "Lorg/jboss/logmanager/FastCopyHashMap;", "map");
<org.jboss.logmanager.CopyOnWriteMap: java.util.concurrent.atomic.AtomicReferenceFieldUpdater mapUpdater> = v;
return;
}
}