public abstract class org.apache.commons.vfs2.operations.AbstractFileOperationProvider implements org.apache.commons.vfs2.operations.FileOperationProvider
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.apache.commons.vfs2.operations.AbstractFileOperationProvider
  super_class: java.lang.Object
{
  private final java.util.Collection<java.lang.Class<? extends org.apache.commons.vfs2.operations.FileOperation>> operations;
    descriptor: Ljava/util/Collection;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Collection<Ljava/lang/Class<+Lorg/apache/commons/vfs2/operations/FileOperation;>;>;

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

  public final void collectOperations(java.util.Collection<java.lang.Class<? extends org.apache.commons.vfs2.operations.FileOperation>>, org.apache.commons.vfs2.FileObject);
    descriptor: (Ljava/util/Collection;Lorg/apache/commons/vfs2/FileObject;)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.apache.commons.vfs2.operations.AbstractFileOperationProvider this
        start local 1 // java.util.Collection operationsList
        start local 2 // org.apache.commons.vfs2.FileObject file
         0: .line 50
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.commons.vfs2.operations.AbstractFileOperationProvider.operations:Ljava/util/Collection;
            aload 1 /* operationsList */
            aload 2 /* file */
            invokevirtual org.apache.commons.vfs2.operations.AbstractFileOperationProvider.doCollectOperations:(Ljava/util/Collection;Ljava/util/Collection;Lorg/apache/commons/vfs2/FileObject;)V
         1: .line 51
            return
        end local 2 // org.apache.commons.vfs2.FileObject file
        end local 1 // java.util.Collection operationsList
        end local 0 // org.apache.commons.vfs2.operations.AbstractFileOperationProvider this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            this  Lorg/apache/commons/vfs2/operations/AbstractFileOperationProvider;
            0    2     1  operationsList  Ljava/util/Collection<Ljava/lang/Class<+Lorg/apache/commons/vfs2/operations/FileOperation;>;>;
            0    2     2            file  Lorg/apache/commons/vfs2/FileObject;
    Exceptions:
      throws org.apache.commons.vfs2.FileSystemException
    Signature: (Ljava/util/Collection<Ljava/lang/Class<+Lorg/apache/commons/vfs2/operations/FileOperation;>;>;Lorg/apache/commons/vfs2/FileObject;)V
    MethodParameters:
                Name  Flags
      operationsList  final
      file            final

  protected abstract void doCollectOperations(java.util.Collection<java.lang.Class<? extends org.apache.commons.vfs2.operations.FileOperation>>, java.util.Collection<java.lang.Class<? extends org.apache.commons.vfs2.operations.FileOperation>>, org.apache.commons.vfs2.FileObject);
    descriptor: (Ljava/util/Collection;Ljava/util/Collection;Lorg/apache/commons/vfs2/FileObject;)V
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    Exceptions:
      throws org.apache.commons.vfs2.FileSystemException
    Signature: (Ljava/util/Collection<Ljava/lang/Class<+Lorg/apache/commons/vfs2/operations/FileOperation;>;>;Ljava/util/Collection<Ljava/lang/Class<+Lorg/apache/commons/vfs2/operations/FileOperation;>;>;Lorg/apache/commons/vfs2/FileObject;)V
    MethodParameters:
                     Name  Flags
      availableOperations  final
      resultList           final
      file                 final

  public final org.apache.commons.vfs2.operations.FileOperation getOperation(org.apache.commons.vfs2.FileObject, java.lang.Class<? extends org.apache.commons.vfs2.operations.FileOperation>);
    descriptor: (Lorg/apache/commons/vfs2/FileObject;Ljava/lang/Class;)Lorg/apache/commons/vfs2/operations/FileOperation;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // org.apache.commons.vfs2.operations.AbstractFileOperationProvider this
        start local 1 // org.apache.commons.vfs2.FileObject file
        start local 2 // java.lang.Class operationClass
         0: .line 75
            aload 0 /* this */
            aload 2 /* operationClass */
            invokevirtual org.apache.commons.vfs2.operations.AbstractFileOperationProvider.lookupOperation:(Ljava/lang/Class;)Ljava/lang/Class;
            astore 3 /* implementation */
        start local 3 // java.lang.Class implementation
         1: .line 77
            aload 0 /* this */
            aload 1 /* file */
            aload 3 /* implementation */
            invokevirtual org.apache.commons.vfs2.operations.AbstractFileOperationProvider.instantiateOperation:(Lorg/apache/commons/vfs2/FileObject;Ljava/lang/Class;)Lorg/apache/commons/vfs2/operations/FileOperation;
            astore 4 /* operationInstance */
        start local 4 // org.apache.commons.vfs2.operations.FileOperation operationInstance
         2: .line 79
            aload 4 /* operationInstance */
            areturn
        end local 4 // org.apache.commons.vfs2.operations.FileOperation operationInstance
        end local 3 // java.lang.Class implementation
        end local 2 // java.lang.Class operationClass
        end local 1 // org.apache.commons.vfs2.FileObject file
        end local 0 // org.apache.commons.vfs2.operations.AbstractFileOperationProvider this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    3     0               this  Lorg/apache/commons/vfs2/operations/AbstractFileOperationProvider;
            0    3     1               file  Lorg/apache/commons/vfs2/FileObject;
            0    3     2     operationClass  Ljava/lang/Class<+Lorg/apache/commons/vfs2/operations/FileOperation;>;
            1    3     3     implementation  Ljava/lang/Class<+Lorg/apache/commons/vfs2/operations/FileOperation;>;
            2    3     4  operationInstance  Lorg/apache/commons/vfs2/operations/FileOperation;
    Exceptions:
      throws org.apache.commons.vfs2.FileSystemException
    Signature: (Lorg/apache/commons/vfs2/FileObject;Ljava/lang/Class<+Lorg/apache/commons/vfs2/operations/FileOperation;>;)Lorg/apache/commons/vfs2/operations/FileOperation;
    MethodParameters:
                Name  Flags
      file            final
      operationClass  final

  protected abstract org.apache.commons.vfs2.operations.FileOperation instantiateOperation(org.apache.commons.vfs2.FileObject, java.lang.Class<? extends org.apache.commons.vfs2.operations.FileOperation>);
    descriptor: (Lorg/apache/commons/vfs2/FileObject;Ljava/lang/Class;)Lorg/apache/commons/vfs2/operations/FileOperation;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    Exceptions:
      throws org.apache.commons.vfs2.FileSystemException
    Signature: (Lorg/apache/commons/vfs2/FileObject;Ljava/lang/Class<+Lorg/apache/commons/vfs2/operations/FileOperation;>;)Lorg/apache/commons/vfs2/operations/FileOperation;
    MethodParameters:
                Name  Flags
      file            final
      operationClass  final

  protected final java.lang.Class<? extends org.apache.commons.vfs2.operations.FileOperation> lookupOperation(java.lang.Class<? extends org.apache.commons.vfs2.operations.FileOperation>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/Class;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // org.apache.commons.vfs2.operations.AbstractFileOperationProvider this
        start local 1 // java.lang.Class operationClass
         0: .line 103
            ldc Lorg/apache/commons/vfs2/operations/FileOperation;
            aload 1 /* operationClass */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifne 2
         1: .line 104
            new org.apache.commons.vfs2.FileSystemException
            dup
            ldc "vfs.operation/wrong-type.error"
            aload 1 /* operationClass */
            invokespecial org.apache.commons.vfs2.FileSystemException.<init>:(Ljava/lang/String;Ljava/lang/Object;)V
            athrow
         2: .line 108
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 2 /* foundClass */
        start local 2 // java.lang.Class foundClass
         3: .line 109
            aload 0 /* this */
            getfield org.apache.commons.vfs2.operations.AbstractFileOperationProvider.operations:Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 3 /* iterator */
        start local 3 // java.util.Iterator iterator
         4: .line 110
            goto 9
         5: .line 111
      StackMap locals: java.lang.Class java.util.Iterator
      StackMap stack:
            aload 3 /* iterator */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.Class
            astore 4 /* operation */
        start local 4 // java.lang.Class operation
         6: .line 112
            aload 1 /* operationClass */
            aload 4 /* operation */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 9
         7: .line 113
            aload 4 /* operation */
            astore 2 /* foundClass */
         8: .line 114
            goto 10
        end local 4 // java.lang.Class operation
         9: .line 110
      StackMap locals:
      StackMap stack:
            aload 3 /* iterator */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        10: .line 118
      StackMap locals:
      StackMap stack:
            aload 2 /* foundClass */
            ifnonnull 12
        11: .line 119
            new org.apache.commons.vfs2.FileSystemException
            dup
            ldc "vfs.operation/not-found.error"
            aload 1 /* operationClass */
            invokespecial org.apache.commons.vfs2.FileSystemException.<init>:(Ljava/lang/String;Ljava/lang/Object;)V
            athrow
        12: .line 122
      StackMap locals:
      StackMap stack:
            aload 2 /* foundClass */
            areturn
        end local 3 // java.util.Iterator iterator
        end local 2 // java.lang.Class foundClass
        end local 1 // java.lang.Class operationClass
        end local 0 // org.apache.commons.vfs2.operations.AbstractFileOperationProvider this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   13     0            this  Lorg/apache/commons/vfs2/operations/AbstractFileOperationProvider;
            0   13     1  operationClass  Ljava/lang/Class<+Lorg/apache/commons/vfs2/operations/FileOperation;>;
            3   13     2      foundClass  Ljava/lang/Class<+Lorg/apache/commons/vfs2/operations/FileOperation;>;
            4   13     3        iterator  Ljava/util/Iterator<Ljava/lang/Class<+Lorg/apache/commons/vfs2/operations/FileOperation;>;>;
            6    9     4       operation  Ljava/lang/Class<+Lorg/apache/commons/vfs2/operations/FileOperation;>;
    Exceptions:
      throws org.apache.commons.vfs2.FileSystemException
    Signature: (Ljava/lang/Class<+Lorg/apache/commons/vfs2/operations/FileOperation;>;)Ljava/lang/Class<+Lorg/apache/commons/vfs2/operations/FileOperation;>;
    MethodParameters:
                Name  Flags
      operationClass  final

  protected final void addOperation(java.lang.Class<? extends org.apache.commons.vfs2.operations.FileOperation>);
    descriptor: (Ljava/lang/Class;)V
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.apache.commons.vfs2.operations.AbstractFileOperationProvider this
        start local 1 // java.lang.Class operationClass
         0: .line 133
            ldc Lorg/apache/commons/vfs2/operations/FileOperation;
            aload 1 /* operationClass */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifne 2
         1: .line 134
            new org.apache.commons.vfs2.FileSystemException
            dup
            ldc "vfs.operation/cant-register.error"
            aload 1 /* operationClass */
            invokespecial org.apache.commons.vfs2.FileSystemException.<init>:(Ljava/lang/String;Ljava/lang/Object;)V
            athrow
         2: .line 138
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.commons.vfs2.operations.AbstractFileOperationProvider.operations:Ljava/util/Collection;
            aload 1 /* operationClass */
            invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
            pop
         3: .line 139
            return
        end local 1 // java.lang.Class operationClass
        end local 0 // org.apache.commons.vfs2.operations.AbstractFileOperationProvider this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    4     0            this  Lorg/apache/commons/vfs2/operations/AbstractFileOperationProvider;
            0    4     1  operationClass  Ljava/lang/Class<+Lorg/apache/commons/vfs2/operations/FileOperation;>;
    Exceptions:
      throws org.apache.commons.vfs2.FileSystemException
    Signature: (Ljava/lang/Class<+Lorg/apache/commons/vfs2/operations/FileOperation;>;)V
    MethodParameters:
                Name  Flags
      operationClass  final
}
SourceFile: "AbstractFileOperationProvider.java"