final class io.netty.util.DefaultAttributeMap$DefaultAttribute extends java.util.concurrent.atomic.AtomicReference implements io.netty.util.Attribute
{
private static final java.util.concurrent.atomic.AtomicReferenceFieldUpdater MAP_UPDATER;
private static final long serialVersionUID;
private volatile io.netty.util.DefaultAttributeMap attributeMap;
private final io.netty.util.AttributeKey key;
void <init>(io.netty.util.DefaultAttributeMap, io.netty.util.AttributeKey)
{
io.netty.util.AttributeKey v;
io.netty.util.DefaultAttributeMap$DefaultAttribute v;
io.netty.util.DefaultAttributeMap v;
v := @this: io.netty.util.DefaultAttributeMap$DefaultAttribute;
v := @parameter: io.netty.util.DefaultAttributeMap;
v := @parameter: io.netty.util.AttributeKey;
specialinvoke v.<java.util.concurrent.atomic.AtomicReference: void <init>()>();
v.<io.netty.util.DefaultAttributeMap$DefaultAttribute: io.netty.util.DefaultAttributeMap attributeMap> = v;
v.<io.netty.util.DefaultAttributeMap$DefaultAttribute: io.netty.util.AttributeKey key> = v;
return;
}
public io.netty.util.AttributeKey key()
{
io.netty.util.AttributeKey v;
io.netty.util.DefaultAttributeMap$DefaultAttribute v;
v := @this: io.netty.util.DefaultAttributeMap$DefaultAttribute;
v = v.<io.netty.util.DefaultAttributeMap$DefaultAttribute: io.netty.util.AttributeKey key>;
return v;
}
private boolean isRemoved()
{
io.netty.util.DefaultAttributeMap$DefaultAttribute v;
io.netty.util.DefaultAttributeMap v;
boolean v;
v := @this: io.netty.util.DefaultAttributeMap$DefaultAttribute;
v = v.<io.netty.util.DefaultAttributeMap$DefaultAttribute: io.netty.util.DefaultAttributeMap attributeMap>;
if v != null goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public java.lang.Object setIfAbsent(java.lang.Object)
{
io.netty.util.DefaultAttributeMap$DefaultAttribute v;
java.lang.Object v, v;
boolean v;
v := @this: io.netty.util.DefaultAttributeMap$DefaultAttribute;
v := @parameter: java.lang.Object;
label:
v = virtualinvoke v.<io.netty.util.DefaultAttributeMap$DefaultAttribute: boolean compareAndSet(java.lang.Object,java.lang.Object)>(null, v);
if v != 0 goto label;
v = virtualinvoke v.<io.netty.util.DefaultAttributeMap$DefaultAttribute: java.lang.Object get()>();
if v == null goto label;
return v;
label:
return null;
}
public java.lang.Object getAndRemove()
{
io.netty.util.AttributeKey v;
io.netty.util.DefaultAttributeMap v;
java.util.concurrent.atomic.AtomicReferenceFieldUpdater v;
io.netty.util.DefaultAttributeMap$DefaultAttribute v;
java.lang.Object v;
boolean v, v;
v := @this: io.netty.util.DefaultAttributeMap$DefaultAttribute;
v = v.<io.netty.util.DefaultAttributeMap$DefaultAttribute: io.netty.util.DefaultAttributeMap attributeMap>;
if v == null goto label;
v = <io.netty.util.DefaultAttributeMap$DefaultAttribute: java.util.concurrent.atomic.AtomicReferenceFieldUpdater MAP_UPDATER>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicReferenceFieldUpdater: boolean compareAndSet(java.lang.Object,java.lang.Object,java.lang.Object)>(v, v, null);
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = virtualinvoke v.<io.netty.util.DefaultAttributeMap$DefaultAttribute: java.lang.Object getAndSet(java.lang.Object)>(null);
if v == 0 goto label;
v = v.<io.netty.util.DefaultAttributeMap$DefaultAttribute: io.netty.util.AttributeKey key>;
specialinvoke v.<io.netty.util.DefaultAttributeMap: void removeAttributeIfMatch(io.netty.util.AttributeKey,io.netty.util.DefaultAttributeMap$DefaultAttribute)>(v, v);
label:
return v;
}
public void remove()
{
io.netty.util.AttributeKey v;
io.netty.util.DefaultAttributeMap v;
java.util.concurrent.atomic.AtomicReferenceFieldUpdater v;
io.netty.util.DefaultAttributeMap$DefaultAttribute v;
boolean v, v;
v := @this: io.netty.util.DefaultAttributeMap$DefaultAttribute;
v = v.<io.netty.util.DefaultAttributeMap$DefaultAttribute: io.netty.util.DefaultAttributeMap attributeMap>;
if v == null goto label;
v = <io.netty.util.DefaultAttributeMap$DefaultAttribute: java.util.concurrent.atomic.AtomicReferenceFieldUpdater MAP_UPDATER>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicReferenceFieldUpdater: boolean compareAndSet(java.lang.Object,java.lang.Object,java.lang.Object)>(v, v, null);
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
virtualinvoke v.<io.netty.util.DefaultAttributeMap$DefaultAttribute: void set(java.lang.Object)>(null);
if v == 0 goto label;
v = v.<io.netty.util.DefaultAttributeMap$DefaultAttribute: io.netty.util.AttributeKey key>;
specialinvoke v.<io.netty.util.DefaultAttributeMap: void removeAttributeIfMatch(io.netty.util.AttributeKey,io.netty.util.DefaultAttributeMap$DefaultAttribute)>(v, v);
label:
return;
}
static void <clinit>()
{
java.util.concurrent.atomic.AtomicReferenceFieldUpdater v;
v = staticinvoke <java.util.concurrent.atomic.AtomicReferenceFieldUpdater: java.util.concurrent.atomic.AtomicReferenceFieldUpdater newUpdater(java.lang.Class,java.lang.Class,java.lang.String)>(class "Lio/netty/util/DefaultAttributeMap$DefaultAttribute;", class "Lio/netty/util/DefaultAttributeMap;", "attributeMap");
<io.netty.util.DefaultAttributeMap$DefaultAttribute: java.util.concurrent.atomic.AtomicReferenceFieldUpdater MAP_UPDATER> = v;
return;
}
}