public abstract class org.apache.commons.vfs2.provider.AbstractVfsContainer extends org.apache.commons.vfs2.provider.AbstractVfsComponent
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.apache.commons.vfs2.provider.AbstractVfsContainer
  super_class: org.apache.commons.vfs2.provider.AbstractVfsComponent
{
  private final java.util.ArrayList<java.lang.Object> components;
    descriptor: Ljava/util/ArrayList;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/ArrayList<Ljava/lang/Object;>;

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.apache.commons.vfs2.provider.AbstractVfsContainer this
         0: .line 26
            aload 0 /* this */
            invokespecial org.apache.commons.vfs2.provider.AbstractVfsComponent.<init>:()V
         1: .line 31
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield org.apache.commons.vfs2.provider.AbstractVfsContainer.components:Ljava/util/ArrayList;
         2: .line 26
            return
        end local 0 // org.apache.commons.vfs2.provider.AbstractVfsContainer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/commons/vfs2/provider/AbstractVfsContainer;

  protected void addComponent(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // org.apache.commons.vfs2.provider.AbstractVfsContainer this
        start local 1 // java.lang.Object component
         0: .line 44
            aload 0 /* this */
            getfield org.apache.commons.vfs2.provider.AbstractVfsContainer.components:Ljava/util/ArrayList;
            dup
            astore 2
            monitorenter
         1: .line 45
            aload 0 /* this */
            getfield org.apache.commons.vfs2.provider.AbstractVfsContainer.components:Ljava/util/ArrayList;
            aload 1 /* component */
            invokevirtual java.util.ArrayList.contains:(Ljava/lang/Object;)Z
            ifne 8
         2: .line 47
            aload 1 /* component */
            instanceof org.apache.commons.vfs2.provider.VfsComponent
            ifeq 7
         3: .line 48
            aload 1 /* component */
            checkcast org.apache.commons.vfs2.provider.VfsComponent
            astore 3 /* vfsComponent */
        start local 3 // org.apache.commons.vfs2.provider.VfsComponent vfsComponent
         4: .line 49
            aload 3 /* vfsComponent */
            aload 0 /* this */
            invokevirtual org.apache.commons.vfs2.provider.AbstractVfsContainer.getLogger:()Lorg/apache/commons/logging/Log;
            invokeinterface org.apache.commons.vfs2.provider.VfsComponent.setLogger:(Lorg/apache/commons/logging/Log;)V
         5: .line 50
            aload 3 /* vfsComponent */
            aload 0 /* this */
            invokevirtual org.apache.commons.vfs2.provider.AbstractVfsContainer.getContext:()Lorg/apache/commons/vfs2/provider/VfsComponentContext;
            invokeinterface org.apache.commons.vfs2.provider.VfsComponent.setContext:(Lorg/apache/commons/vfs2/provider/VfsComponentContext;)V
         6: .line 51
            aload 3 /* vfsComponent */
            invokeinterface org.apache.commons.vfs2.provider.VfsComponent.init:()V
        end local 3 // org.apache.commons.vfs2.provider.VfsComponent vfsComponent
         7: .line 55
      StackMap locals: java.util.ArrayList
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.commons.vfs2.provider.AbstractVfsContainer.components:Ljava/util/ArrayList;
            aload 1 /* component */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
         8: .line 44
      StackMap locals:
      StackMap stack:
            aload 2
            monitorexit
         9: goto 12
      StackMap locals:
      StackMap stack: java.lang.Throwable
        10: aload 2
            monitorexit
        11: athrow
        12: .line 58
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.Object component
        end local 0 // org.apache.commons.vfs2.provider.AbstractVfsContainer this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   13     0          this  Lorg/apache/commons/vfs2/provider/AbstractVfsContainer;
            0   13     1     component  Ljava/lang/Object;
            4    7     3  vfsComponent  Lorg/apache/commons/vfs2/provider/VfsComponent;
      Exception table:
        from    to  target  type
           1     9      10  any
          10    11      10  any
    Exceptions:
      throws org.apache.commons.vfs2.FileSystemException
    MethodParameters:
           Name  Flags
      component  final

  protected void removeComponent(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.apache.commons.vfs2.provider.AbstractVfsContainer this
        start local 1 // java.lang.Object component
         0: .line 66
            aload 0 /* this */
            getfield org.apache.commons.vfs2.provider.AbstractVfsContainer.components:Ljava/util/ArrayList;
            dup
            astore 2
            monitorenter
         1: .line 68
            aload 0 /* this */
            getfield org.apache.commons.vfs2.provider.AbstractVfsContainer.components:Ljava/util/ArrayList;
            aload 1 /* component */
            invokevirtual java.util.ArrayList.remove:(Ljava/lang/Object;)Z
            pop
         2: .line 66
            aload 2
            monitorexit
         3: goto 6
      StackMap locals: org.apache.commons.vfs2.provider.AbstractVfsContainer java.lang.Object java.util.ArrayList
      StackMap stack: java.lang.Throwable
         4: aload 2
            monitorexit
         5: athrow
         6: .line 70
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.Object component
        end local 0 // org.apache.commons.vfs2.provider.AbstractVfsContainer this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    7     0       this  Lorg/apache/commons/vfs2/provider/AbstractVfsContainer;
            0    7     1  component  Ljava/lang/Object;
      Exception table:
        from    to  target  type
           1     3       4  any
           4     5       4  any
    MethodParameters:
           Name  Flags
      component  final

  public void close();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=7, args_size=1
        start local 0 // org.apache.commons.vfs2.provider.AbstractVfsContainer this
         0: .line 78
            aload 0 /* this */
            getfield org.apache.commons.vfs2.provider.AbstractVfsContainer.components:Ljava/util/ArrayList;
            dup
            astore 2
            monitorenter
         1: .line 79
            aload 0 /* this */
            getfield org.apache.commons.vfs2.provider.AbstractVfsContainer.components:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.toArray:()[Ljava/lang/Object;
            astore 1 /* toclose */
        start local 1 // java.lang.Object[] toclose
         2: .line 80
            aload 0 /* this */
            getfield org.apache.commons.vfs2.provider.AbstractVfsContainer.components:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.clear:()V
         3: .line 78
            aload 2
            monitorexit
         4: goto 7
        end local 1 // java.lang.Object[] toclose
      StackMap locals: org.apache.commons.vfs2.provider.AbstractVfsContainer top java.util.ArrayList
      StackMap stack: java.lang.Throwable
         5: aload 2
            monitorexit
         6: athrow
        start local 1 // java.lang.Object[] toclose
         7: .line 84
      StackMap locals: org.apache.commons.vfs2.provider.AbstractVfsContainer java.lang.Object[]
      StackMap stack:
            aload 1 /* toclose */
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 13
      StackMap locals: org.apache.commons.vfs2.provider.AbstractVfsContainer java.lang.Object[] top int int java.lang.Object[]
      StackMap stack:
         8: aload 5
            iload 3
            aaload
            astore 2 /* component */
        start local 2 // java.lang.Object component
         9: .line 85
            aload 2 /* component */
            instanceof org.apache.commons.vfs2.provider.VfsComponent
            ifeq 12
        10: .line 86
            aload 2 /* component */
            checkcast org.apache.commons.vfs2.provider.VfsComponent
            astore 6 /* vfsComponent */
        start local 6 // org.apache.commons.vfs2.provider.VfsComponent vfsComponent
        11: .line 87
            aload 6 /* vfsComponent */
            invokeinterface org.apache.commons.vfs2.provider.VfsComponent.close:()V
        end local 6 // org.apache.commons.vfs2.provider.VfsComponent vfsComponent
        end local 2 // java.lang.Object component
        12: .line 84
      StackMap locals:
      StackMap stack:
            iinc 3 1
      StackMap locals:
      StackMap stack:
        13: iload 3
            iload 4
            if_icmplt 8
        14: .line 90
            return
        end local 1 // java.lang.Object[] toclose
        end local 0 // org.apache.commons.vfs2.provider.AbstractVfsContainer this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   15     0          this  Lorg/apache/commons/vfs2/provider/AbstractVfsContainer;
            2    5     1       toclose  [Ljava/lang/Object;
            7   15     1       toclose  [Ljava/lang/Object;
            9   12     2     component  Ljava/lang/Object;
           11   12     6  vfsComponent  Lorg/apache/commons/vfs2/provider/VfsComponent;
      Exception table:
        from    to  target  type
           1     4       5  any
           5     6       5  any
}
SourceFile: "AbstractVfsContainer.java"