public class ch.qos.logback.core.BasicStatusManager implements ch.qos.logback.core.status.StatusManager
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: ch.qos.logback.core.BasicStatusManager
  super_class: java.lang.Object
{
  public static final int MAX_HEADER_COUNT;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 150

  public static final int TAIL_SIZE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 150

  int count;
    descriptor: I
    flags: (0x0000) 

  protected final java.util.List<ch.qos.logback.core.status.Status> statusList;
    descriptor: Ljava/util/List;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Signature: Ljava/util/List<Lch/qos/logback/core/status/Status;>;

  protected final ch.qos.logback.core.helpers.CyclicBuffer<ch.qos.logback.core.status.Status> tailBuffer;
    descriptor: Lch/qos/logback/core/helpers/CyclicBuffer;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Signature: Lch/qos/logback/core/helpers/CyclicBuffer<Lch/qos/logback/core/status/Status;>;

  protected final ch.qos.logback.core.spi.LogbackLock statusListLock;
    descriptor: Lch/qos/logback/core/spi/LogbackLock;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  int level;
    descriptor: I
    flags: (0x0000) 

  protected final java.util.List<ch.qos.logback.core.status.StatusListener> statusListenerList;
    descriptor: Ljava/util/List;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Signature: Ljava/util/List<Lch/qos/logback/core/status/StatusListener;>;

  protected final ch.qos.logback.core.spi.LogbackLock statusListenerListLock;
    descriptor: Lch/qos/logback/core/spi/LogbackLock;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // ch.qos.logback.core.BasicStatusManager this
         0: .line 26
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 31
            aload 0 /* this */
            iconst_0
            putfield ch.qos.logback.core.BasicStatusManager.count:I
         2: .line 34
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield ch.qos.logback.core.BasicStatusManager.statusList:Ljava/util/List;
         3: .line 35
            aload 0 /* this */
            new ch.qos.logback.core.helpers.CyclicBuffer
            dup
            sipush 150
            invokespecial ch.qos.logback.core.helpers.CyclicBuffer.<init>:(I)V
            putfield ch.qos.logback.core.BasicStatusManager.tailBuffer:Lch/qos/logback/core/helpers/CyclicBuffer;
         4: .line 36
            aload 0 /* this */
            new ch.qos.logback.core.spi.LogbackLock
            dup
            invokespecial ch.qos.logback.core.spi.LogbackLock.<init>:()V
            putfield ch.qos.logback.core.BasicStatusManager.statusListLock:Lch/qos/logback/core/spi/LogbackLock;
         5: .line 38
            aload 0 /* this */
            iconst_0
            putfield ch.qos.logback.core.BasicStatusManager.level:I
         6: .line 41
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield ch.qos.logback.core.BasicStatusManager.statusListenerList:Ljava/util/List;
         7: .line 42
            aload 0 /* this */
            new ch.qos.logback.core.spi.LogbackLock
            dup
            invokespecial ch.qos.logback.core.spi.LogbackLock.<init>:()V
            putfield ch.qos.logback.core.BasicStatusManager.statusListenerListLock:Lch/qos/logback/core/spi/LogbackLock;
         8: .line 26
            return
        end local 0 // ch.qos.logback.core.BasicStatusManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lch/qos/logback/core/BasicStatusManager;

  public void add(ch.qos.logback.core.status.Status);
    descriptor: (Lch/qos/logback/core/status/Status;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // ch.qos.logback.core.BasicStatusManager this
        start local 1 // ch.qos.logback.core.status.Status newStatus
         0: .line 59
            aload 0 /* this */
            aload 1 /* newStatus */
            invokevirtual ch.qos.logback.core.BasicStatusManager.fireStatusAddEvent:(Lch/qos/logback/core/status/Status;)V
         1: .line 61
            aload 0 /* this */
            dup
            getfield ch.qos.logback.core.BasicStatusManager.count:I
            iconst_1
            iadd
            putfield ch.qos.logback.core.BasicStatusManager.count:I
         2: .line 62
            aload 1 /* newStatus */
            invokeinterface ch.qos.logback.core.status.Status.getLevel:()I
            aload 0 /* this */
            getfield ch.qos.logback.core.BasicStatusManager.level:I
            if_icmple 4
         3: .line 63
            aload 0 /* this */
            aload 1 /* newStatus */
            invokeinterface ch.qos.logback.core.status.Status.getLevel:()I
            putfield ch.qos.logback.core.BasicStatusManager.level:I
         4: .line 66
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield ch.qos.logback.core.BasicStatusManager.statusListLock:Lch/qos/logback/core/spi/LogbackLock;
            dup
            astore 2
            monitorenter
         5: .line 67
            aload 0 /* this */
            getfield ch.qos.logback.core.BasicStatusManager.statusList:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            sipush 150
            if_icmpge 8
         6: .line 68
            aload 0 /* this */
            getfield ch.qos.logback.core.BasicStatusManager.statusList:Ljava/util/List;
            aload 1 /* newStatus */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         7: .line 69
            goto 9
         8: .line 70
      StackMap locals: ch.qos.logback.core.spi.LogbackLock
      StackMap stack:
            aload 0 /* this */
            getfield ch.qos.logback.core.BasicStatusManager.tailBuffer:Lch/qos/logback/core/helpers/CyclicBuffer;
            aload 1 /* newStatus */
            invokevirtual ch.qos.logback.core.helpers.CyclicBuffer.add:(Ljava/lang/Object;)V
         9: .line 66
      StackMap locals:
      StackMap stack:
            aload 2
            monitorexit
        10: goto 13
      StackMap locals:
      StackMap stack: java.lang.Throwable
        11: aload 2
            monitorexit
        12: athrow
        13: .line 74
      StackMap locals:
      StackMap stack:
            return
        end local 1 // ch.qos.logback.core.status.Status newStatus
        end local 0 // ch.qos.logback.core.BasicStatusManager this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   14     0       this  Lch/qos/logback/core/BasicStatusManager;
            0   14     1  newStatus  Lch/qos/logback/core/status/Status;
      Exception table:
        from    to  target  type
           5    10      11  any
          11    12      11  any
    MethodParameters:
           Name  Flags
      newStatus  

  public java.util.List<ch.qos.logback.core.status.Status> getCopyOfStatusList();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // ch.qos.logback.core.BasicStatusManager this
         0: .line 77
            aload 0 /* this */
            getfield ch.qos.logback.core.BasicStatusManager.statusListLock:Lch/qos/logback/core/spi/LogbackLock;
            dup
            astore 1
            monitorenter
         1: .line 78
            new java.util.ArrayList
            dup
            aload 0 /* this */
            getfield ch.qos.logback.core.BasicStatusManager.statusList:Ljava/util/List;
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            astore 2 /* tList */
        start local 2 // java.util.List tList
         2: .line 79
            aload 2 /* tList */
            aload 0 /* this */
            getfield ch.qos.logback.core.BasicStatusManager.tailBuffer:Lch/qos/logback/core/helpers/CyclicBuffer;
            invokevirtual ch.qos.logback.core.helpers.CyclicBuffer.asList:()Ljava/util/List;
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
         3: .line 80
            aload 2 /* tList */
            aload 1
            monitorexit
         4: areturn
        end local 2 // java.util.List tList
         5: .line 77
      StackMap locals: ch.qos.logback.core.BasicStatusManager ch.qos.logback.core.spi.LogbackLock
      StackMap stack: java.lang.Throwable
            aload 1
            monitorexit
         6: athrow
        end local 0 // ch.qos.logback.core.BasicStatusManager this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0   this  Lch/qos/logback/core/BasicStatusManager;
            2    5     2  tList  Ljava/util/List<Lch/qos/logback/core/status/Status;>;
      Exception table:
        from    to  target  type
           1     4       5  any
           5     6       5  any
    Signature: ()Ljava/util/List<Lch/qos/logback/core/status/Status;>;

  private void fireStatusAddEvent(ch.qos.logback.core.status.Status);
    descriptor: (Lch/qos/logback/core/status/Status;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // ch.qos.logback.core.BasicStatusManager this
        start local 1 // ch.qos.logback.core.status.Status status
         0: .line 85
            aload 0 /* this */
            getfield ch.qos.logback.core.BasicStatusManager.statusListenerListLock:Lch/qos/logback/core/spi/LogbackLock;
            dup
            astore 2
            monitorenter
         1: .line 86
            aload 0 /* this */
            getfield ch.qos.logback.core.BasicStatusManager.statusListenerList:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 4
      StackMap locals: ch.qos.logback.core.BasicStatusManager ch.qos.logback.core.status.Status ch.qos.logback.core.spi.LogbackLock top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast ch.qos.logback.core.status.StatusListener
            astore 3 /* sl */
        start local 3 // ch.qos.logback.core.status.StatusListener sl
         3: .line 87
            aload 3 /* sl */
            aload 1 /* status */
            invokeinterface ch.qos.logback.core.status.StatusListener.addStatusEvent:(Lch/qos/logback/core/status/Status;)V
        end local 3 // ch.qos.logback.core.status.StatusListener sl
         4: .line 86
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 85
            aload 2
            monitorexit
         6: goto 9
      StackMap locals: ch.qos.logback.core.BasicStatusManager ch.qos.logback.core.status.Status ch.qos.logback.core.spi.LogbackLock
      StackMap stack: java.lang.Throwable
         7: aload 2
            monitorexit
         8: athrow
         9: .line 90
      StackMap locals:
      StackMap stack:
            return
        end local 1 // ch.qos.logback.core.status.Status status
        end local 0 // ch.qos.logback.core.BasicStatusManager this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   10     0    this  Lch/qos/logback/core/BasicStatusManager;
            0   10     1  status  Lch/qos/logback/core/status/Status;
            3    4     3      sl  Lch/qos/logback/core/status/StatusListener;
      Exception table:
        from    to  target  type
           1     6       7  any
           7     8       7  any
    MethodParameters:
        Name  Flags
      status  

  public void clear();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // ch.qos.logback.core.BasicStatusManager this
         0: .line 93
            aload 0 /* this */
            getfield ch.qos.logback.core.BasicStatusManager.statusListLock:Lch/qos/logback/core/spi/LogbackLock;
            dup
            astore 1
            monitorenter
         1: .line 94
            aload 0 /* this */
            iconst_0
            putfield ch.qos.logback.core.BasicStatusManager.count:I
         2: .line 95
            aload 0 /* this */
            getfield ch.qos.logback.core.BasicStatusManager.statusList:Ljava/util/List;
            invokeinterface java.util.List.clear:()V
         3: .line 96
            aload 0 /* this */
            getfield ch.qos.logback.core.BasicStatusManager.tailBuffer:Lch/qos/logback/core/helpers/CyclicBuffer;
            invokevirtual ch.qos.logback.core.helpers.CyclicBuffer.clear:()V
         4: .line 93
            aload 1
            monitorexit
         5: goto 8
      StackMap locals: ch.qos.logback.core.BasicStatusManager ch.qos.logback.core.spi.LogbackLock
      StackMap stack: java.lang.Throwable
         6: aload 1
            monitorexit
         7: athrow
         8: .line 98
      StackMap locals:
      StackMap stack:
            return
        end local 0 // ch.qos.logback.core.BasicStatusManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lch/qos/logback/core/BasicStatusManager;
      Exception table:
        from    to  target  type
           1     5       6  any
           6     7       6  any

  public int getLevel();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // ch.qos.logback.core.BasicStatusManager this
         0: .line 101
            aload 0 /* this */
            getfield ch.qos.logback.core.BasicStatusManager.level:I
            ireturn
        end local 0 // ch.qos.logback.core.BasicStatusManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lch/qos/logback/core/BasicStatusManager;

  public int getCount();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // ch.qos.logback.core.BasicStatusManager this
         0: .line 105
            aload 0 /* this */
            getfield ch.qos.logback.core.BasicStatusManager.count:I
            ireturn
        end local 0 // ch.qos.logback.core.BasicStatusManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lch/qos/logback/core/BasicStatusManager;

  public boolean add(ch.qos.logback.core.status.StatusListener);
    descriptor: (Lch/qos/logback/core/status/StatusListener;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // ch.qos.logback.core.BasicStatusManager this
        start local 1 // ch.qos.logback.core.status.StatusListener listener
         0: .line 113
            aload 0 /* this */
            getfield ch.qos.logback.core.BasicStatusManager.statusListenerListLock:Lch/qos/logback/core/spi/LogbackLock;
            dup
            astore 2
            monitorenter
         1: .line 114
            aload 1 /* listener */
            instanceof ch.qos.logback.core.status.OnConsoleStatusListener
            ifeq 6
         2: .line 115
            aload 0 /* this */
            aload 0 /* this */
            getfield ch.qos.logback.core.BasicStatusManager.statusListenerList:Ljava/util/List;
            aload 1 /* listener */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual ch.qos.logback.core.BasicStatusManager.checkForPresence:(Ljava/util/List;Ljava/lang/Class;)Z
            istore 3 /* alreadyPresent */
        start local 3 // boolean alreadyPresent
         3: .line 116
            iload 3 /* alreadyPresent */
            ifeq 6
         4: .line 117
            aload 2
            monitorexit
         5: iconst_0
            ireturn
        end local 3 // boolean alreadyPresent
         6: .line 119
      StackMap locals: ch.qos.logback.core.spi.LogbackLock
      StackMap stack:
            aload 0 /* this */
            getfield ch.qos.logback.core.BasicStatusManager.statusListenerList:Ljava/util/List;
            aload 1 /* listener */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         7: .line 113
            aload 2
            monitorexit
         8: goto 11
      StackMap locals:
      StackMap stack: java.lang.Throwable
         9: aload 2
            monitorexit
        10: athrow
        11: .line 121
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 1 // ch.qos.logback.core.status.StatusListener listener
        end local 0 // ch.qos.logback.core.BasicStatusManager this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   12     0            this  Lch/qos/logback/core/BasicStatusManager;
            0   12     1        listener  Lch/qos/logback/core/status/StatusListener;
            3    6     3  alreadyPresent  Z
      Exception table:
        from    to  target  type
           1     5       9  any
           6     8       9  any
           9    10       9  any
    MethodParameters:
          Name  Flags
      listener  

  private boolean checkForPresence(java.util.List<ch.qos.logback.core.status.StatusListener>, java.lang.Class<?>);
    descriptor: (Ljava/util/List;Ljava/lang/Class;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=5, args_size=3
        start local 0 // ch.qos.logback.core.BasicStatusManager this
        start local 1 // java.util.List statusListenerList
        start local 2 // java.lang.Class aClass
         0: .line 125
            aload 1 /* statusListenerList */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 4
      StackMap locals: ch.qos.logback.core.BasicStatusManager java.util.List java.lang.Class top java.util.Iterator
      StackMap stack:
         1: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast ch.qos.logback.core.status.StatusListener
            astore 3 /* e */
        start local 3 // ch.qos.logback.core.status.StatusListener e
         2: .line 126
            aload 3 /* e */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aload 2 /* aClass */
            if_acmpne 4
         3: .line 127
            iconst_1
            ireturn
        end local 3 // ch.qos.logback.core.status.StatusListener e
         4: .line 125
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         5: .line 129
            iconst_0
            ireturn
        end local 2 // java.lang.Class aClass
        end local 1 // java.util.List statusListenerList
        end local 0 // ch.qos.logback.core.BasicStatusManager this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    6     0                this  Lch/qos/logback/core/BasicStatusManager;
            0    6     1  statusListenerList  Ljava/util/List<Lch/qos/logback/core/status/StatusListener;>;
            0    6     2              aClass  Ljava/lang/Class<*>;
            2    4     3                   e  Lch/qos/logback/core/status/StatusListener;
    Signature: (Ljava/util/List<Lch/qos/logback/core/status/StatusListener;>;Ljava/lang/Class<*>;)Z
    MethodParameters:
                    Name  Flags
      statusListenerList  
      aClass              

  public void remove(ch.qos.logback.core.status.StatusListener);
    descriptor: (Lch/qos/logback/core/status/StatusListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // ch.qos.logback.core.BasicStatusManager this
        start local 1 // ch.qos.logback.core.status.StatusListener listener
         0: .line 133
            aload 0 /* this */
            getfield ch.qos.logback.core.BasicStatusManager.statusListenerListLock:Lch/qos/logback/core/spi/LogbackLock;
            dup
            astore 2
            monitorenter
         1: .line 134
            aload 0 /* this */
            getfield ch.qos.logback.core.BasicStatusManager.statusListenerList:Ljava/util/List;
            aload 1 /* listener */
            invokeinterface java.util.List.remove:(Ljava/lang/Object;)Z
            pop
         2: .line 133
            aload 2
            monitorexit
         3: goto 6
      StackMap locals: ch.qos.logback.core.BasicStatusManager ch.qos.logback.core.status.StatusListener ch.qos.logback.core.spi.LogbackLock
      StackMap stack: java.lang.Throwable
         4: aload 2
            monitorexit
         5: athrow
         6: .line 136
      StackMap locals:
      StackMap stack:
            return
        end local 1 // ch.qos.logback.core.status.StatusListener listener
        end local 0 // ch.qos.logback.core.BasicStatusManager this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Lch/qos/logback/core/BasicStatusManager;
            0    7     1  listener  Lch/qos/logback/core/status/StatusListener;
      Exception table:
        from    to  target  type
           1     3       4  any
           4     5       4  any
    MethodParameters:
          Name  Flags
      listener  

  public java.util.List<ch.qos.logback.core.status.StatusListener> getCopyOfStatusListenerList();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // ch.qos.logback.core.BasicStatusManager this
         0: .line 139
            aload 0 /* this */
            getfield ch.qos.logback.core.BasicStatusManager.statusListenerListLock:Lch/qos/logback/core/spi/LogbackLock;
            dup
            astore 1
            monitorenter
         1: .line 140
            new java.util.ArrayList
            dup
            aload 0 /* this */
            getfield ch.qos.logback.core.BasicStatusManager.statusListenerList:Ljava/util/List;
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            aload 1
            monitorexit
         2: areturn
         3: .line 139
      StackMap locals: ch.qos.logback.core.BasicStatusManager ch.qos.logback.core.spi.LogbackLock
      StackMap stack: java.lang.Throwable
            aload 1
            monitorexit
         4: athrow
        end local 0 // ch.qos.logback.core.BasicStatusManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lch/qos/logback/core/BasicStatusManager;
      Exception table:
        from    to  target  type
           1     2       3  any
           3     4       3  any
    Signature: ()Ljava/util/List<Lch/qos/logback/core/status/StatusListener;>;
}
SourceFile: "BasicStatusManager.java"