public class ch.qos.logback.core.spi.AppenderAttachableImpl<E> implements ch.qos.logback.core.spi.AppenderAttachable<E>
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: ch.qos.logback.core.spi.AppenderAttachableImpl
super_class: java.lang.Object
{
private final ch.qos.logback.core.util.COWArrayList<ch.qos.logback.core.Appender<E>> appenderList;
descriptor: Lch/qos/logback/core/util/COWArrayList;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lch/qos/logback/core/util/COWArrayList<Lch/qos/logback/core/Appender<TE;>;>;
static final long START;
descriptor: J
flags: (0x0018) ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: invokestatic java.lang.System.currentTimeMillis:()J
putstatic ch.qos.logback.core.spi.AppenderAttachableImpl.START:J
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new ch.qos.logback.core.util.COWArrayList
dup
iconst_0
anewarray ch.qos.logback.core.Appender
invokespecial ch.qos.logback.core.util.COWArrayList.<init>:([Ljava/lang/Object;)V
putfield ch.qos.logback.core.spi.AppenderAttachableImpl.appenderList:Lch/qos/logback/core/util/COWArrayList;
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lch/qos/logback/core/spi/AppenderAttachableImpl<TE;>;
public void addAppender(ch.qos.logback.core.Appender<E>);
descriptor: (Lch/qos/logback/core/Appender;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 2
1: new java.lang.IllegalArgumentException
dup
ldc "Null argument disallowed"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield ch.qos.logback.core.spi.AppenderAttachableImpl.appenderList:Lch/qos/logback/core/util/COWArrayList;
aload 1
invokevirtual ch.qos.logback.core.util.COWArrayList.addIfAbsent:(Ljava/lang/Object;)V
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lch/qos/logback/core/spi/AppenderAttachableImpl<TE;>;
0 4 1 newAppender Lch/qos/logback/core/Appender<TE;>;
Signature: (Lch/qos/logback/core/Appender<TE;>;)V
MethodParameters:
Name Flags
newAppender
public int appendLoopOnAppenders();
descriptor: (Ljava/lang/Object;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=6, args_size=2
start local 0 start local 1 0: iconst_0
istore 2
start local 2 1: aload 0
getfield ch.qos.logback.core.spi.AppenderAttachableImpl.appenderList:Lch/qos/logback/core/util/COWArrayList;
invokevirtual ch.qos.logback.core.util.COWArrayList.asTypedArray:()[Ljava/lang/Object;
checkcast ch.qos.logback.core.Appender[]
astore 3
start local 3 2: aload 3
arraylength
istore 4
start local 4 3: iconst_0
istore 5
start local 5 4: goto 8
5: StackMap locals: ch.qos.logback.core.spi.AppenderAttachableImpl java.lang.Object int ch.qos.logback.core.Appender[] int int
StackMap stack:
aload 3
iload 5
aaload
aload 1
invokeinterface ch.qos.logback.core.Appender.doAppend:(Ljava/lang/Object;)V
6: iinc 2 1
7: iinc 5 1
StackMap locals:
StackMap stack:
8: iload 5
iload 4
if_icmplt 5
end local 5 9: iload 2
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lch/qos/logback/core/spi/AppenderAttachableImpl<TE;>;
0 10 1 e TE;
1 10 2 size I
2 10 3 appenderArray [Lch/qos/logback/core/Appender;
3 10 4 len I
4 9 5 i I
Signature: (TE;)I
MethodParameters:
Name Flags
e
public java.util.Iterator<ch.qos.logback.core.Appender<E>> iteratorForAppenders();
descriptor: ()Ljava/util/Iterator;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield ch.qos.logback.core.spi.AppenderAttachableImpl.appenderList:Lch/qos/logback/core/util/COWArrayList;
invokevirtual ch.qos.logback.core.util.COWArrayList.iterator:()Ljava/util/Iterator;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lch/qos/logback/core/spi/AppenderAttachableImpl<TE;>;
Signature: ()Ljava/util/Iterator<Lch/qos/logback/core/Appender<TE;>;>;
public ch.qos.logback.core.Appender<E> getAppender(java.lang.String);
descriptor: (Ljava/lang/String;)Lch/qos/logback/core/Appender;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 2
1: aconst_null
areturn
2: StackMap locals:
StackMap stack:
aload 0
getfield ch.qos.logback.core.spi.AppenderAttachableImpl.appenderList:Lch/qos/logback/core/util/COWArrayList;
invokevirtual ch.qos.logback.core.util.COWArrayList.iterator:()Ljava/util/Iterator;
astore 3
goto 6
StackMap locals: ch.qos.logback.core.spi.AppenderAttachableImpl java.lang.String top java.util.Iterator
StackMap stack:
3: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast ch.qos.logback.core.Appender
astore 2
start local 2 4: aload 1
aload 2
invokeinterface ch.qos.logback.core.Appender.getName:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 6
5: aload 2
areturn
end local 2 6: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
7: aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lch/qos/logback/core/spi/AppenderAttachableImpl<TE;>;
0 8 1 name Ljava/lang/String;
4 6 2 appender Lch/qos/logback/core/Appender<TE;>;
Signature: (Ljava/lang/String;)Lch/qos/logback/core/Appender<TE;>;
MethodParameters:
Name Flags
name
public boolean isAttached(ch.qos.logback.core.Appender<E>);
descriptor: (Lch/qos/logback/core/Appender;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 0
getfield ch.qos.logback.core.spi.AppenderAttachableImpl.appenderList:Lch/qos/logback/core/util/COWArrayList;
invokevirtual ch.qos.logback.core.util.COWArrayList.iterator:()Ljava/util/Iterator;
astore 3
goto 6
StackMap locals: ch.qos.logback.core.spi.AppenderAttachableImpl ch.qos.logback.core.Appender top java.util.Iterator
StackMap stack:
3: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast ch.qos.logback.core.Appender
astore 2
start local 2 4: aload 2
aload 1
if_acmpne 6
5: iconst_1
ireturn
end local 2 6: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
7: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lch/qos/logback/core/spi/AppenderAttachableImpl<TE;>;
0 8 1 appender Lch/qos/logback/core/Appender<TE;>;
4 6 2 a Lch/qos/logback/core/Appender<TE;>;
Signature: (Lch/qos/logback/core/Appender<TE;>;)Z
MethodParameters:
Name Flags
appender
public void detachAndStopAllAppenders();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=3, args_size=1
start local 0 0: aload 0
getfield ch.qos.logback.core.spi.AppenderAttachableImpl.appenderList:Lch/qos/logback/core/util/COWArrayList;
invokevirtual ch.qos.logback.core.util.COWArrayList.iterator:()Ljava/util/Iterator;
astore 2
goto 3
StackMap locals: ch.qos.logback.core.spi.AppenderAttachableImpl top java.util.Iterator
StackMap stack:
1: aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast ch.qos.logback.core.Appender
astore 1
start local 1 2: aload 1
invokeinterface ch.qos.logback.core.Appender.stop:()V
end local 1 3: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
4: aload 0
getfield ch.qos.logback.core.spi.AppenderAttachableImpl.appenderList:Lch/qos/logback/core/util/COWArrayList;
invokevirtual ch.qos.logback.core.util.COWArrayList.clear:()V
5: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lch/qos/logback/core/spi/AppenderAttachableImpl<TE;>;
2 3 1 a Lch/qos/logback/core/Appender<TE;>;
public boolean detachAppender(ch.qos.logback.core.Appender<E>);
descriptor: (Lch/qos/logback/core/Appender;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 0
getfield ch.qos.logback.core.spi.AppenderAttachableImpl.appenderList:Lch/qos/logback/core/util/COWArrayList;
aload 1
invokevirtual ch.qos.logback.core.util.COWArrayList.remove:(Ljava/lang/Object;)Z
istore 2
start local 2 3: iload 2
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lch/qos/logback/core/spi/AppenderAttachableImpl<TE;>;
0 4 1 appender Lch/qos/logback/core/Appender<TE;>;
3 4 2 result Z
Signature: (Lch/qos/logback/core/Appender<TE;>;)Z
MethodParameters:
Name Flags
appender
public boolean detachAppender(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=5, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
iconst_0
istore 2
start local 2 3: aload 0
getfield ch.qos.logback.core.spi.AppenderAttachableImpl.appenderList:Lch/qos/logback/core/util/COWArrayList;
invokevirtual ch.qos.logback.core.util.COWArrayList.iterator:()Ljava/util/Iterator;
astore 4
goto 8
StackMap locals: ch.qos.logback.core.spi.AppenderAttachableImpl java.lang.String int top java.util.Iterator
StackMap stack:
4: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast ch.qos.logback.core.Appender
astore 3
start local 3 5: aload 1
aload 3
invokeinterface ch.qos.logback.core.Appender.getName:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 8
6: aload 0
getfield ch.qos.logback.core.spi.AppenderAttachableImpl.appenderList:Lch/qos/logback/core/util/COWArrayList;
aload 3
invokevirtual ch.qos.logback.core.util.COWArrayList.remove:(Ljava/lang/Object;)Z
istore 2
7: goto 9
end local 3 8: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
9: StackMap locals: ch.qos.logback.core.spi.AppenderAttachableImpl java.lang.String int
StackMap stack:
iload 2
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lch/qos/logback/core/spi/AppenderAttachableImpl<TE;>;
0 10 1 name Ljava/lang/String;
3 10 2 removed Z
5 8 3 a Lch/qos/logback/core/Appender<TE;>;
MethodParameters:
Name Flags
name
}
Signature: <E:Ljava/lang/Object;>Ljava/lang/Object;Lch/qos/logback/core/spi/AppenderAttachable<TE;>;
SourceFile: "AppenderAttachableImpl.java"