class org.jruby.runtime.load.LibrarySearcher$ResourceLibrary implements org.jruby.runtime.load.Library
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.jruby.runtime.load.LibrarySearcher$ResourceLibrary
  super_class: java.lang.Object
{
  protected final java.lang.String searchName;
    descriptor: Ljava/lang/String;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected final java.lang.String scriptName;
    descriptor: Ljava/lang/String;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected final org.jruby.util.FileResource resource;
    descriptor: Lorg/jruby/util/FileResource;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected final java.lang.String location;
    descriptor: Ljava/lang/String;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  public static org.jruby.runtime.load.LibrarySearcher$ResourceLibrary create(java.lang.String, java.lang.String, org.jruby.util.FileResource);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Lorg/jruby/util/FileResource;)Lorg/jruby/runtime/load/LibrarySearcher$ResourceLibrary;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // java.lang.String searchName
        start local 1 // java.lang.String scriptName
        start local 2 // org.jruby.util.FileResource resource
         0: .line 207
            aload 2 /* resource */
            invokeinterface org.jruby.util.FileResource.absolutePath:()Ljava/lang/String;
            astore 3 /* location */
        start local 3 // java.lang.String location
         1: .line 209
            aload 3 /* location */
            ldc ".class"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 2
            new org.jruby.runtime.load.LibrarySearcher$ClassResourceLibrary
            dup
            aload 0 /* searchName */
            aload 1 /* scriptName */
            aload 2 /* resource */
            invokespecial org.jruby.runtime.load.LibrarySearcher$ClassResourceLibrary.<init>:(Ljava/lang/String;Ljava/lang/String;Lorg/jruby/util/FileResource;)V
            areturn
         2: .line 210
      StackMap locals: java.lang.String
      StackMap stack:
            aload 3 /* location */
            ldc ".jar"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 3
            new org.jruby.runtime.load.LibrarySearcher$JarResourceLibrary
            dup
            aload 0 /* searchName */
            aload 1 /* scriptName */
            aload 2 /* resource */
            invokespecial org.jruby.runtime.load.LibrarySearcher$JarResourceLibrary.<init>:(Ljava/lang/String;Ljava/lang/String;Lorg/jruby/util/FileResource;)V
            areturn
         3: .line 212
      StackMap locals:
      StackMap stack:
            new org.jruby.runtime.load.LibrarySearcher$ResourceLibrary
            dup
            aload 0 /* searchName */
            aload 1 /* scriptName */
            aload 2 /* resource */
            invokespecial org.jruby.runtime.load.LibrarySearcher$ResourceLibrary.<init>:(Ljava/lang/String;Ljava/lang/String;Lorg/jruby/util/FileResource;)V
            areturn
        end local 3 // java.lang.String location
        end local 2 // org.jruby.util.FileResource resource
        end local 1 // java.lang.String scriptName
        end local 0 // java.lang.String searchName
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0  searchName  Ljava/lang/String;
            0    4     1  scriptName  Ljava/lang/String;
            0    4     2    resource  Lorg/jruby/util/FileResource;
            1    4     3    location  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      searchName  
      scriptName  
      resource    

  public void <init>(java.lang.String, java.lang.String, org.jruby.util.FileResource);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Lorg/jruby/util/FileResource;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // org.jruby.runtime.load.LibrarySearcher$ResourceLibrary this
        start local 1 // java.lang.String searchName
        start local 2 // java.lang.String scriptName
        start local 3 // org.jruby.util.FileResource resource
         0: .line 220
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 221
            aload 0 /* this */
            aload 1 /* searchName */
            putfield org.jruby.runtime.load.LibrarySearcher$ResourceLibrary.searchName:Ljava/lang/String;
         2: .line 222
            aload 0 /* this */
            aload 2 /* scriptName */
            putfield org.jruby.runtime.load.LibrarySearcher$ResourceLibrary.scriptName:Ljava/lang/String;
         3: .line 223
            aload 0 /* this */
            aload 3 /* resource */
            invokeinterface org.jruby.util.FileResource.absolutePath:()Ljava/lang/String;
            putfield org.jruby.runtime.load.LibrarySearcher$ResourceLibrary.location:Ljava/lang/String;
         4: .line 224
            aload 0 /* this */
            aload 3 /* resource */
            putfield org.jruby.runtime.load.LibrarySearcher$ResourceLibrary.resource:Lorg/jruby/util/FileResource;
         5: .line 225
            return
        end local 3 // org.jruby.util.FileResource resource
        end local 2 // java.lang.String scriptName
        end local 1 // java.lang.String searchName
        end local 0 // org.jruby.runtime.load.LibrarySearcher$ResourceLibrary this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lorg/jruby/runtime/load/LibrarySearcher$ResourceLibrary;
            0    6     1  searchName  Ljava/lang/String;
            0    6     2  scriptName  Ljava/lang/String;
            0    6     3    resource  Lorg/jruby/util/FileResource;
    MethodParameters:
            Name  Flags
      searchName  
      scriptName  
      resource    

  public void load(org.jruby.Ruby, boolean);
    descriptor: (Lorg/jruby/Ruby;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=3
        start local 0 // org.jruby.runtime.load.LibrarySearcher$ResourceLibrary this
        start local 1 // org.jruby.Ruby runtime
        start local 2 // boolean wrap
         0: .line 229
            aconst_null
            astore 3
            aconst_null
            astore 4
         1: aload 0 /* this */
            getfield org.jruby.runtime.load.LibrarySearcher$ResourceLibrary.resource:Lorg/jruby/util/FileResource;
            invokeinterface org.jruby.util.FileResource.inputStream:()Ljava/io/InputStream;
            astore 5 /* ris */
        start local 5 // java.io.InputStream ris
         2: .line 231
            aload 1 /* runtime */
            invokevirtual org.jruby.Ruby.getInstanceConfig:()Lorg/jruby/RubyInstanceConfig;
            invokevirtual org.jruby.RubyInstanceConfig.getCompileMode:()Lorg/jruby/RubyInstanceConfig$CompileMode;
            invokevirtual org.jruby.RubyInstanceConfig$CompileMode.shouldPrecompileAll:()Z
            ifeq 5
         3: .line 232
            aload 1 /* runtime */
            aload 0 /* this */
            getfield org.jruby.runtime.load.LibrarySearcher$ResourceLibrary.scriptName:Ljava/lang/String;
            aload 5 /* ris */
            iload 2 /* wrap */
            invokevirtual org.jruby.Ruby.compileAndLoadFile:(Ljava/lang/String;Ljava/io/InputStream;Z)V
         4: .line 233
            goto 6
         5: .line 234
      StackMap locals: java.lang.Throwable java.lang.Throwable java.io.InputStream
      StackMap stack:
            aload 1 /* runtime */
            aload 0 /* this */
            getfield org.jruby.runtime.load.LibrarySearcher$ResourceLibrary.scriptName:Ljava/lang/String;
            new org.jruby.runtime.load.LoadServiceResourceInputStream
            dup
            aload 5 /* ris */
            invokespecial org.jruby.runtime.load.LoadServiceResourceInputStream.<init>:(Ljava/io/InputStream;)V
            iload 2 /* wrap */
            invokevirtual org.jruby.Ruby.loadFile:(Ljava/lang/String;Ljava/io/InputStream;Z)V
         6: .line 236
      StackMap locals:
      StackMap stack:
            aload 5 /* ris */
            ifnull 14
            aload 5 /* ris */
            invokevirtual java.io.InputStream.close:()V
            goto 14
      StackMap locals:
      StackMap stack: java.lang.Throwable
         7: astore 3
            aload 5 /* ris */
            ifnull 8
            aload 5 /* ris */
            invokevirtual java.io.InputStream.close:()V
        end local 5 // java.io.InputStream ris
      StackMap locals:
      StackMap stack:
         8: aload 3
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
         9: astore 4
            aload 3
            ifnonnull 10
            aload 4
            astore 3
            goto 11
      StackMap locals:
      StackMap stack:
        10: aload 3
            aload 4
            if_acmpeq 11
            aload 3
            aload 4
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        11: aload 3
            athrow
      StackMap locals: org.jruby.runtime.load.LibrarySearcher$ResourceLibrary org.jruby.Ruby int
      StackMap stack: java.io.IOException
        12: pop
        13: .line 237
            aload 1 /* runtime */
            new java.lang.StringBuilder
            dup
            ldc "no such file to load -- "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.jruby.runtime.load.LibrarySearcher$ResourceLibrary.searchName:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 0 /* this */
            getfield org.jruby.runtime.load.LibrarySearcher$ResourceLibrary.searchName:Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newLoadError:(Ljava/lang/String;Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        14: .line 239
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean wrap
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.runtime.load.LibrarySearcher$ResourceLibrary this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   15     0     this  Lorg/jruby/runtime/load/LibrarySearcher$ResourceLibrary;
            0   15     1  runtime  Lorg/jruby/Ruby;
            0   15     2     wrap  Z
            2    8     5      ris  Ljava/io/InputStream;
      Exception table:
        from    to  target  type
           2     6       7  any
           1     9       9  any
           0    12      12  Class java.io.IOException
    MethodParameters:
         Name  Flags
      runtime  
      wrap     
}
SourceFile: "LibrarySearcher.java"
NestHost: org.jruby.runtime.load.LibrarySearcher
InnerClasses:
  public final CompileMode = org.jruby.RubyInstanceConfig$CompileMode of org.jruby.RubyInstanceConfig
  ClassResourceLibrary = org.jruby.runtime.load.LibrarySearcher$ClassResourceLibrary of org.jruby.runtime.load.LibrarySearcher
  JarResourceLibrary = org.jruby.runtime.load.LibrarySearcher$JarResourceLibrary of org.jruby.runtime.load.LibrarySearcher
  ResourceLibrary = org.jruby.runtime.load.LibrarySearcher$ResourceLibrary of org.jruby.runtime.load.LibrarySearcher