public final class org.jboss.shrinkwrap.api.ArchiveFactory
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: org.jboss.shrinkwrap.api.ArchiveFactory
  super_class: java.lang.Object
{
  private static final java.lang.String ARCHIVE_IMPL;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "org.jboss.shrinkwrap.impl.base.MemoryMapArchiveImpl"

  private final org.jboss.shrinkwrap.api.Configuration configuration;
    descriptor: Lorg/jboss/shrinkwrap/api/Configuration;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 37
            ldc Lorg/jboss/shrinkwrap/api/ArchiveFactory;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic org.jboss.shrinkwrap.api.ArchiveFactory.$assertionsDisabled:Z
         3: .line 45
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(org.jboss.shrinkwrap.api.Configuration);
    descriptor: (Lorg/jboss/shrinkwrap/api/Configuration;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.jboss.shrinkwrap.api.ArchiveFactory this
        start local 1 // org.jboss.shrinkwrap.api.Configuration configuration
         0: .line 69
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 71
            getstatic org.jboss.shrinkwrap.api.ArchiveFactory.$assertionsDisabled:Z
            ifne 2
            aload 1 /* configuration */
            ifnonnull 2
            new java.lang.AssertionError
            dup
            ldc "configuration must be supplied"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         2: .line 74
      StackMap locals: org.jboss.shrinkwrap.api.ArchiveFactory org.jboss.shrinkwrap.api.Configuration
      StackMap stack:
            aload 0 /* this */
            aload 1 /* configuration */
            putfield org.jboss.shrinkwrap.api.ArchiveFactory.configuration:Lorg/jboss/shrinkwrap/api/Configuration;
         3: .line 75
            return
        end local 1 // org.jboss.shrinkwrap.api.Configuration configuration
        end local 0 // org.jboss.shrinkwrap.api.ArchiveFactory this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0           this  Lorg/jboss/shrinkwrap/api/ArchiveFactory;
            0    4     1  configuration  Lorg/jboss/shrinkwrap/api/Configuration;
    Exceptions:
      throws java.lang.IllegalArgumentException
    MethodParameters:
               Name  Flags
      configuration  final

  public <T extends org.jboss.shrinkwrap.api.Assignable> T create(java.lang.Class<T>);
    descriptor: (Ljava/lang/Class;)Lorg/jboss/shrinkwrap/api/Assignable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // org.jboss.shrinkwrap.api.ArchiveFactory this
        start local 1 // java.lang.Class type
         0: .line 99
            aload 1 /* type */
            ifnonnull 2
         1: .line 100
            new java.lang.IllegalArgumentException
            dup
            ldc "Type must be specified"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 104
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jboss.shrinkwrap.api.ArchiveFactory.configuration:Lorg/jboss/shrinkwrap/api/Configuration;
            invokevirtual org.jboss.shrinkwrap.api.Configuration.getExtensionLoader:()Lorg/jboss/shrinkwrap/api/ExtensionLoader;
            aload 1 /* type */
            invokeinterface org.jboss.shrinkwrap.api.ExtensionLoader.getExtensionFromExtensionMapping:(Ljava/lang/Class;)Ljava/lang/String;
            astore 2 /* extension */
        start local 2 // java.lang.String extension
         3: .line 107
            invokestatic java.util.UUID.randomUUID:()Ljava/util/UUID;
            invokevirtual java.util.UUID.toString:()Ljava/lang/String;
            astore 3 /* archiveName */
        start local 3 // java.lang.String archiveName
         4: .line 110
            aload 0 /* this */
            aload 1 /* type */
            new java.lang.StringBuilder
            dup
            aload 3 /* archiveName */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* extension */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            dup
            astore 3 /* archiveName */
            invokevirtual org.jboss.shrinkwrap.api.ArchiveFactory.create:(Ljava/lang/Class;Ljava/lang/String;)Lorg/jboss/shrinkwrap/api/Assignable;
            areturn
        end local 3 // java.lang.String archiveName
        end local 2 // java.lang.String extension
        end local 1 // java.lang.Class type
        end local 0 // org.jboss.shrinkwrap.api.ArchiveFactory this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    5     0         this  Lorg/jboss/shrinkwrap/api/ArchiveFactory;
            0    5     1         type  Ljava/lang/Class<TT;>;
            3    5     2    extension  Ljava/lang/String;
            4    5     3  archiveName  Ljava/lang/String;
    Exceptions:
      throws java.lang.IllegalArgumentException, org.jboss.shrinkwrap.api.UnknownExtensionTypeException
    Signature: <T::Lorg/jboss/shrinkwrap/api/Assignable;>(Ljava/lang/Class<TT;>;)TT;
    MethodParameters:
      Name  Flags
      type  final

  public <T extends org.jboss.shrinkwrap.api.Assignable> T create(java.lang.Class<T>, java.lang.String);
    descriptor: (Ljava/lang/Class;Ljava/lang/String;)Lorg/jboss/shrinkwrap/api/Assignable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=3
        start local 0 // org.jboss.shrinkwrap.api.ArchiveFactory this
        start local 1 // java.lang.Class type
        start local 2 // java.lang.String archiveName
         0: .line 128
            aload 1 /* type */
            ifnonnull 2
         1: .line 129
            new java.lang.IllegalArgumentException
            dup
            ldc "Type must be specified"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 131
      StackMap locals:
      StackMap stack:
            aload 2 /* archiveName */
            ifnonnull 4
         3: .line 132
            new java.lang.IllegalArgumentException
            dup
            ldc "ArchiveName must be specified"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 138
      StackMap locals:
      StackMap stack:
            ldc "org.jboss.shrinkwrap.impl.base.MemoryMapArchiveImpl"
         5: .line 139
            aload 0 /* this */
            getfield org.jboss.shrinkwrap.api.ArchiveFactory.configuration:Lorg/jboss/shrinkwrap/api/Configuration;
            invokevirtual org.jboss.shrinkwrap.api.Configuration.getClassLoaders:()Ljava/lang/Iterable;
         6: .line 138
            invokestatic org.jboss.shrinkwrap.api.ClassLoaderSearchUtil.findClassFromClassLoaders:(Ljava/lang/String;Ljava/lang/Iterable;)Ljava/lang/Class;
            astore 3 /* archiveImplClass */
        start local 3 // java.lang.Class archiveImplClass
         7: .line 140
            goto 12
        end local 3 // java.lang.Class archiveImplClass
      StackMap locals:
      StackMap stack: java.lang.ClassNotFoundException
         8: astore 4 /* cnfe */
        start local 4 // java.lang.ClassNotFoundException cnfe
         9: .line 141
            new java.lang.IllegalStateException
            dup
            ldc "Could not find the archive implementation class org.jboss.shrinkwrap.impl.base.MemoryMapArchiveImpl in any configured ClassLoader"
        10: .line 142
            aload 4 /* cnfe */
        11: .line 141
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.lang.ClassNotFoundException cnfe
        start local 3 // java.lang.Class archiveImplClass
        12: .line 146
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 3 /* archiveImplClass */
            iconst_2
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/String;
            aastore
            dup
            iconst_1
        13: .line 147
            ldc Lorg/jboss/shrinkwrap/api/Configuration;
            aastore
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* archiveName */
            aastore
            dup
            iconst_1
            aload 0 /* this */
            getfield org.jboss.shrinkwrap.api.ArchiveFactory.configuration:Lorg/jboss/shrinkwrap/api/Configuration;
            aastore
            ldc Lorg/jboss/shrinkwrap/api/Archive;
        14: .line 146
            invokestatic org.jboss.shrinkwrap.api.SecurityActions.newInstance:(Ljava/lang/Class;[Ljava/lang/Class;[Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
            checkcast org.jboss.shrinkwrap.api.Archive
            astore 4 /* archive */
        start local 4 // org.jboss.shrinkwrap.api.Archive archive
        15: .line 150
            aload 4 /* archive */
            aload 1 /* type */
            invokeinterface org.jboss.shrinkwrap.api.Archive.as:(Ljava/lang/Class;)Lorg/jboss/shrinkwrap/api/Assignable;
            areturn
        end local 4 // org.jboss.shrinkwrap.api.Archive archive
        end local 3 // java.lang.Class archiveImplClass
        end local 2 // java.lang.String archiveName
        end local 1 // java.lang.Class type
        end local 0 // org.jboss.shrinkwrap.api.ArchiveFactory this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   16     0              this  Lorg/jboss/shrinkwrap/api/ArchiveFactory;
            0   16     1              type  Ljava/lang/Class<TT;>;
            0   16     2       archiveName  Ljava/lang/String;
            7    8     3  archiveImplClass  Ljava/lang/Class<*>;
           12   16     3  archiveImplClass  Ljava/lang/Class<*>;
            9   12     4              cnfe  Ljava/lang/ClassNotFoundException;
           15   16     4           archive  Lorg/jboss/shrinkwrap/api/Archive<*>;
      Exception table:
        from    to  target  type
           4     7       8  Class java.lang.ClassNotFoundException
    Exceptions:
      throws java.lang.IllegalArgumentException
    Signature: <T::Lorg/jboss/shrinkwrap/api/Assignable;>(Ljava/lang/Class<TT;>;Ljava/lang/String;)TT;
    MethodParameters:
             Name  Flags
      type         final
      archiveName  final

  public <T extends org.jboss.shrinkwrap.api.Assignable> T createFromZipFile(java.lang.Class<T>, java.io.File);
    descriptor: (Ljava/lang/Class;Ljava/io/File;)Lorg/jboss/shrinkwrap/api/Assignable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // org.jboss.shrinkwrap.api.ArchiveFactory this
        start local 1 // java.lang.Class type
        start local 2 // java.io.File archiveFile
         0: .line 172
            aload 1 /* type */
            ifnonnull 2
         1: .line 173
            new java.lang.IllegalArgumentException
            dup
            ldc "Type must be specified"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 175
      StackMap locals:
      StackMap stack:
            aload 2 /* archiveFile */
            ifnonnull 4
         3: .line 176
            new java.lang.IllegalArgumentException
            dup
            ldc "File must be specified"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 178
      StackMap locals:
      StackMap stack:
            aload 2 /* archiveFile */
            invokevirtual java.io.File.exists:()Z
            ifne 6
         5: .line 179
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "File for import does not exist: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* archiveFile */
            invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 181
      StackMap locals:
      StackMap stack:
            aload 2 /* archiveFile */
            invokevirtual java.io.File.isDirectory:()Z
            ifeq 10
         7: .line 182
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "File for import must not be a directory: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         8: .line 183
            aload 2 /* archiveFile */
            invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         9: .line 182
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        10: .line 189
      StackMap locals:
      StackMap stack:
            new java.util.zip.ZipFile
            dup
            aload 2 /* archiveFile */
            invokespecial java.util.zip.ZipFile.<init>:(Ljava/io/File;)V
            astore 3 /* zipFile */
        start local 3 // java.util.zip.ZipFile zipFile
        11: .line 190
            goto 20
        end local 3 // java.util.zip.ZipFile zipFile
      StackMap locals:
      StackMap stack: java.util.zip.ZipException
        12: pop
        13: .line 191
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Does not appear to be a valid ZIP file: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        14: .line 192
            aload 2 /* archiveFile */
            invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        15: .line 191
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        16: .line 193
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 4 /* ioe */
        start local 4 // java.io.IOException ioe
        17: .line 194
            new java.lang.RuntimeException
            dup
            new java.lang.StringBuilder
            dup
            ldc "I/O Error in importing new archive from ZIP: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* archiveFile */
            invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        18: .line 195
            aload 4 /* ioe */
        19: .line 194
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.io.IOException ioe
        start local 3 // java.util.zip.ZipFile zipFile
        20: .line 199
      StackMap locals: java.util.zip.ZipFile
      StackMap stack:
            aload 1 /* type */
            aload 2 /* archiveFile */
            invokevirtual java.io.File.getName:()Ljava/lang/String;
            invokestatic org.jboss.shrinkwrap.api.ShrinkWrap.create:(Ljava/lang/Class;Ljava/lang/String;)Lorg/jboss/shrinkwrap/api/Assignable;
            ldc Lorg/jboss/shrinkwrap/api/importer/ZipImporter;
            invokeinterface org.jboss.shrinkwrap.api.Assignable.as:(Ljava/lang/Class;)Lorg/jboss/shrinkwrap/api/Assignable;
            checkcast org.jboss.shrinkwrap.api.importer.ZipImporter
            aload 3 /* zipFile */
            invokeinterface org.jboss.shrinkwrap.api.importer.ZipImporter.importFrom:(Ljava/util/zip/ZipFile;)Lorg/jboss/shrinkwrap/api/importer/ZipImporter;
            aload 1 /* type */
            invokeinterface org.jboss.shrinkwrap.api.importer.ZipImporter.as:(Ljava/lang/Class;)Lorg/jboss/shrinkwrap/api/Assignable;
            areturn
        end local 3 // java.util.zip.ZipFile zipFile
        end local 2 // java.io.File archiveFile
        end local 1 // java.lang.Class type
        end local 0 // org.jboss.shrinkwrap.api.ArchiveFactory this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   21     0         this  Lorg/jboss/shrinkwrap/api/ArchiveFactory;
            0   21     1         type  Ljava/lang/Class<TT;>;
            0   21     2  archiveFile  Ljava/io/File;
           11   12     3      zipFile  Ljava/util/zip/ZipFile;
           20   21     3      zipFile  Ljava/util/zip/ZipFile;
           17   20     4          ioe  Ljava/io/IOException;
      Exception table:
        from    to  target  type
          10    11      12  Class java.util.zip.ZipException
          10    11      16  Class java.io.IOException
    Exceptions:
      throws java.lang.IllegalArgumentException, org.jboss.shrinkwrap.api.importer.ArchiveImportException
    Signature: <T::Lorg/jboss/shrinkwrap/api/Assignable;>(Ljava/lang/Class<TT;>;Ljava/io/File;)TT;
    MethodParameters:
             Name  Flags
      type         final
      archiveFile  final
}
SourceFile: "ArchiveFactory.java"