class org.jruby.javasupport.JavaPackage$JavaClassProvider implements org.jruby.util.ClassProvider
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.jruby.javasupport.JavaPackage$JavaClassProvider
  super_class: java.lang.Object
{
  static final org.jruby.javasupport.JavaPackage$JavaClassProvider INSTANCE;
    descriptor: Lorg/jruby/javasupport/JavaPackage$JavaClassProvider;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 300
            new org.jruby.javasupport.JavaPackage$JavaClassProvider
            dup
            invokespecial org.jruby.javasupport.JavaPackage$JavaClassProvider.<init>:()V
            putstatic org.jruby.javasupport.JavaPackage$JavaClassProvider.INSTANCE:Lorg/jruby/javasupport/JavaPackage$JavaClassProvider;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.javasupport.JavaPackage$JavaClassProvider this
         0: .line 298
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.jruby.javasupport.JavaPackage$JavaClassProvider this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/javasupport/JavaPackage$JavaClassProvider;

  public org.jruby.RubyClass defineClassUnder(org.jruby.RubyModule, java.lang.String, org.jruby.RubyClass);
    descriptor: (Lorg/jruby/RubyModule;Ljava/lang/String;Lorg/jruby/RubyClass;)Lorg/jruby/RubyClass;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=7, args_size=4
        start local 0 // org.jruby.javasupport.JavaPackage$JavaClassProvider this
        start local 1 // org.jruby.RubyModule pkg
        start local 2 // java.lang.String name
        start local 3 // org.jruby.RubyClass superClazz
         0: .line 304
            aload 3 /* superClazz */
            ifnull 1
            aconst_null
            areturn
         1: .line 306
      StackMap locals:
      StackMap stack:
            aload 1 /* pkg */
            aload 2 /* name */
            invokestatic org.jruby.javasupport.JavaPackage.buildPackageName:(Lorg/jruby/RubyModule;Ljava/lang/String;)Ljava/lang/CharSequence;
            invokeinterface java.lang.CharSequence.toString:()Ljava/lang/String;
            astore 4 /* subPackageName */
        start local 4 // java.lang.String subPackageName
         2: .line 308
            aload 1 /* pkg */
            invokevirtual org.jruby.RubyModule.getRuntime:()Lorg/jruby/Ruby;
            astore 5 /* runtime */
        start local 5 // org.jruby.Ruby runtime
         3: .line 309
            aload 5 /* runtime */
            aload 4 /* subPackageName */
            invokestatic org.jruby.javasupport.JavaClass.forNameVerbose:(Lorg/jruby/Ruby;Ljava/lang/String;)Lorg/jruby/javasupport/JavaClass;
            astore 6 /* javaClass */
        start local 6 // org.jruby.javasupport.JavaClass javaClass
         4: .line 310
            aload 5 /* runtime */
            aload 6 /* javaClass */
            invokestatic org.jruby.javasupport.Java.getProxyClass:(Lorg/jruby/Ruby;Lorg/jruby/javasupport/JavaClass;)Lorg/jruby/RubyModule;
            checkcast org.jruby.RubyClass
            areturn
        end local 6 // org.jruby.javasupport.JavaClass javaClass
        end local 5 // org.jruby.Ruby runtime
        end local 4 // java.lang.String subPackageName
        end local 3 // org.jruby.RubyClass superClazz
        end local 2 // java.lang.String name
        end local 1 // org.jruby.RubyModule pkg
        end local 0 // org.jruby.javasupport.JavaPackage$JavaClassProvider this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    5     0            this  Lorg/jruby/javasupport/JavaPackage$JavaClassProvider;
            0    5     1             pkg  Lorg/jruby/RubyModule;
            0    5     2            name  Ljava/lang/String;
            0    5     3      superClazz  Lorg/jruby/RubyClass;
            2    5     4  subPackageName  Ljava/lang/String;
            3    5     5         runtime  Lorg/jruby/Ruby;
            4    5     6       javaClass  Lorg/jruby/javasupport/JavaClass;
    MethodParameters:
            Name  Flags
      pkg         
      name        
      superClazz  

  public org.jruby.RubyModule defineModuleUnder(org.jruby.RubyModule, java.lang.String);
    descriptor: (Lorg/jruby/RubyModule;Ljava/lang/String;)Lorg/jruby/RubyModule;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=6, args_size=3
        start local 0 // org.jruby.javasupport.JavaPackage$JavaClassProvider this
        start local 1 // org.jruby.RubyModule pkg
        start local 2 // java.lang.String name
         0: .line 314
            aload 1 /* pkg */
            aload 2 /* name */
            invokestatic org.jruby.javasupport.JavaPackage.buildPackageName:(Lorg/jruby/RubyModule;Ljava/lang/String;)Ljava/lang/CharSequence;
            invokeinterface java.lang.CharSequence.toString:()Ljava/lang/String;
            astore 3 /* subPackageName */
        start local 3 // java.lang.String subPackageName
         1: .line 316
            aload 1 /* pkg */
            invokevirtual org.jruby.RubyModule.getRuntime:()Lorg/jruby/Ruby;
            astore 4 /* runtime */
        start local 4 // org.jruby.Ruby runtime
         2: .line 317
            aload 4 /* runtime */
            aload 3 /* subPackageName */
            invokestatic org.jruby.javasupport.JavaClass.forNameVerbose:(Lorg/jruby/Ruby;Ljava/lang/String;)Lorg/jruby/javasupport/JavaClass;
            astore 5 /* javaClass */
        start local 5 // org.jruby.javasupport.JavaClass javaClass
         3: .line 318
            aload 4 /* runtime */
            aload 5 /* javaClass */
            invokestatic org.jruby.javasupport.Java.getInterfaceModule:(Lorg/jruby/Ruby;Lorg/jruby/javasupport/JavaClass;)Lorg/jruby/RubyModule;
            areturn
        end local 5 // org.jruby.javasupport.JavaClass javaClass
        end local 4 // org.jruby.Ruby runtime
        end local 3 // java.lang.String subPackageName
        end local 2 // java.lang.String name
        end local 1 // org.jruby.RubyModule pkg
        end local 0 // org.jruby.javasupport.JavaPackage$JavaClassProvider this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    4     0            this  Lorg/jruby/javasupport/JavaPackage$JavaClassProvider;
            0    4     1             pkg  Lorg/jruby/RubyModule;
            0    4     2            name  Ljava/lang/String;
            1    4     3  subPackageName  Ljava/lang/String;
            2    4     4         runtime  Lorg/jruby/Ruby;
            3    4     5       javaClass  Lorg/jruby/javasupport/JavaClass;
    MethodParameters:
      Name  Flags
      pkg   
      name  
}
SourceFile: "JavaPackage.java"
NestHost: org.jruby.javasupport.JavaPackage
InnerClasses:
  private JavaClassProvider = org.jruby.javasupport.JavaPackage$JavaClassProvider of org.jruby.javasupport.JavaPackage