public abstract class org.jruby.javasupport.ext.JavaIo
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.jruby.javasupport.ext.JavaIo
  super_class: java.lang.Object
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.javasupport.ext.JavaIo this
         0: .line 46
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.jruby.javasupport.ext.JavaIo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/javasupport/ext/JavaIo;

  public static void define(org.jruby.Ruby);
    descriptor: (Lorg/jruby/Ruby;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.jruby.Ruby runtime
         0: .line 49
            aload 0 /* runtime */
            ldc Ljava/io/InputStream;
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  org/jruby/javasupport/ext/JavaIo.lambda$0(Lorg/jruby/RubyModule;)V (6)
                  (Lorg/jruby/RubyModule;)V
            invokestatic org.jruby.javasupport.ext.JavaExtensions.put:(Lorg/jruby/Ruby;Ljava/lang/Class;Ljava/util/function/Consumer;)V
         1: .line 53
            aload 0 /* runtime */
            ldc Ljava/io/OutputStream;
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  org/jruby/javasupport/ext/JavaIo.lambda$1(Lorg/jruby/RubyModule;)V (6)
                  (Lorg/jruby/RubyModule;)V
            invokestatic org.jruby.javasupport.ext.JavaExtensions.put:(Lorg/jruby/Ruby;Ljava/lang/Class;Ljava/util/function/Consumer;)V
         2: .line 57
            aload 0 /* runtime */
            ldc Ljava/nio/channels/Channel;
            invokedynamic accept()Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  org/jruby/javasupport/ext/JavaIo.lambda$2(Lorg/jruby/RubyModule;)V (6)
                  (Lorg/jruby/RubyModule;)V
            invokestatic org.jruby.javasupport.ext.JavaExtensions.put:(Lorg/jruby/Ruby;Ljava/lang/Class;Ljava/util/function/Consumer;)V
         3: .line 60
            return
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0  runtime  Lorg/jruby/Ruby;
    MethodParameters:
         Name  Flags
      runtime  final

  static org.jruby.RubyIO to_io(org.jruby.runtime.ThreadContext, java.io.InputStream, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Ljava/io/InputStream;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyIO;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // java.io.InputStream stream
        start local 2 // org.jruby.runtime.builtin.IRubyObject opts
         0: .line 81
            new org.jruby.RubyIO
            dup
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 1 /* stream */
            invokespecial org.jruby.RubyIO.<init>:(Lorg/jruby/Ruby;Ljava/io/InputStream;)V
            astore 3 /* io */
        start local 3 // org.jruby.RubyIO io
         1: .line 82
            aload 0 /* context */
            aload 3 /* io */
            aload 2 /* opts */
            invokestatic org.jruby.javasupport.ext.JavaIo.setAutoclose:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyIO;Lorg/jruby/runtime/builtin/IRubyObject;)V
         2: .line 83
            aload 3 /* io */
            areturn
        end local 3 // org.jruby.RubyIO io
        end local 2 // org.jruby.runtime.builtin.IRubyObject opts
        end local 1 // java.io.InputStream stream
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0  context  Lorg/jruby/runtime/ThreadContext;
            0    3     1   stream  Ljava/io/InputStream;
            0    3     2     opts  Lorg/jruby/runtime/builtin/IRubyObject;
            1    3     3       io  Lorg/jruby/RubyIO;
    MethodParameters:
         Name  Flags
      context  final
      stream   final
      opts     final

  static org.jruby.RubyIO to_io(org.jruby.runtime.ThreadContext, java.io.OutputStream, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Ljava/io/OutputStream;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyIO;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // java.io.OutputStream stream
        start local 2 // org.jruby.runtime.builtin.IRubyObject opts
         0: .line 105
            new org.jruby.RubyIO
            dup
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 1 /* stream */
            invokespecial org.jruby.RubyIO.<init>:(Lorg/jruby/Ruby;Ljava/io/OutputStream;)V
            astore 3 /* io */
        start local 3 // org.jruby.RubyIO io
         1: .line 106
            aload 0 /* context */
            aload 3 /* io */
            aload 2 /* opts */
            invokestatic org.jruby.javasupport.ext.JavaIo.setAutoclose:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyIO;Lorg/jruby/runtime/builtin/IRubyObject;)V
         2: .line 107
            aload 3 /* io */
            areturn
        end local 3 // org.jruby.RubyIO io
        end local 2 // org.jruby.runtime.builtin.IRubyObject opts
        end local 1 // java.io.OutputStream stream
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0  context  Lorg/jruby/runtime/ThreadContext;
            0    3     1   stream  Ljava/io/OutputStream;
            0    3     2     opts  Lorg/jruby/runtime/builtin/IRubyObject;
            1    3     3       io  Lorg/jruby/RubyIO;
    MethodParameters:
         Name  Flags
      context  final
      stream   final
      opts     final

  private static void setAutoclose(org.jruby.runtime.ThreadContext, org.jruby.RubyIO, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyIO;Lorg/jruby/runtime/builtin/IRubyObject;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.RubyIO io
        start local 2 // org.jruby.runtime.builtin.IRubyObject opts
         0: .line 135
            aload 2 /* opts */
            ifnull 3
            aload 2 /* opts */
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            if_acmpeq 3
         1: .line 136
            aload 2 /* opts */
            aload 0 /* context */
            ldc "[]"
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            ldc "autoclose"
            invokevirtual org.jruby.Ruby.newSymbol:(Ljava/lang/String;)Lorg/jruby/RubySymbol;
            invokeinterface org.jruby.runtime.builtin.IRubyObject.callMethod:(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 3 /* autoclose */
        start local 3 // org.jruby.runtime.builtin.IRubyObject autoclose
         2: .line 137
            aload 3 /* autoclose */
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            if_acmpeq 3
            aload 1 /* io */
            aload 3 /* autoclose */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isTrue:()Z
            invokevirtual org.jruby.RubyIO.setAutoclose:(Z)V
        end local 3 // org.jruby.runtime.builtin.IRubyObject autoclose
         3: .line 139
      StackMap locals:
      StackMap stack:
            return
        end local 2 // org.jruby.runtime.builtin.IRubyObject opts
        end local 1 // org.jruby.RubyIO io
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0    context  Lorg/jruby/runtime/ThreadContext;
            0    4     1         io  Lorg/jruby/RubyIO;
            0    4     2       opts  Lorg/jruby/runtime/builtin/IRubyObject;
            2    3     3  autoclose  Lorg/jruby/runtime/builtin/IRubyObject;
    MethodParameters:
         Name  Flags
      context  final
      io       final
      opts     final

  private static void lambda$0(org.jruby.RubyModule);
    descriptor: (Lorg/jruby/RubyModule;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // org.jruby.RubyModule proxyClass
         0: .line 50
            aload 0 /* proxyClass */
            ldc "to_io"
            new org.jruby.javasupport.ext.JavaIo$InputStreamToIO
            dup
            aload 0 /* proxyClass */
            invokespecial org.jruby.javasupport.ext.JavaIo$InputStreamToIO.<init>:(Lorg/jruby/RubyModule;)V
            invokevirtual org.jruby.RubyModule.addMethodInternal:(Ljava/lang/String;Lorg/jruby/internal/runtime/methods/DynamicMethod;)V
         1: .line 51
            return
        end local 0 // org.jruby.RubyModule proxyClass
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0  proxyClass  Lorg/jruby/RubyModule;

  private static void lambda$1(org.jruby.RubyModule);
    descriptor: (Lorg/jruby/RubyModule;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // org.jruby.RubyModule proxyClass
         0: .line 54
            aload 0 /* proxyClass */
            ldc "to_io"
            new org.jruby.javasupport.ext.JavaIo$OutputStreamToIO
            dup
            aload 0 /* proxyClass */
            invokespecial org.jruby.javasupport.ext.JavaIo$OutputStreamToIO.<init>:(Lorg/jruby/RubyModule;)V
            invokevirtual org.jruby.RubyModule.addMethodInternal:(Ljava/lang/String;Lorg/jruby/internal/runtime/methods/DynamicMethod;)V
         1: .line 55
            return
        end local 0 // org.jruby.RubyModule proxyClass
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0  proxyClass  Lorg/jruby/RubyModule;

  private static void lambda$2(org.jruby.RubyModule);
    descriptor: (Lorg/jruby/RubyModule;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // org.jruby.RubyModule proxyClass
         0: .line 58
            aload 0 /* proxyClass */
            ldc "to_io"
            new org.jruby.javasupport.ext.JavaIo$ChannelToIO
            dup
            aload 0 /* proxyClass */
            invokespecial org.jruby.javasupport.ext.JavaIo$ChannelToIO.<init>:(Lorg/jruby/RubyModule;)V
            invokevirtual org.jruby.RubyModule.addMethodInternal:(Ljava/lang/String;Lorg/jruby/internal/runtime/methods/DynamicMethod;)V
         1: .line 59
            return
        end local 0 // org.jruby.RubyModule proxyClass
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0  proxyClass  Lorg/jruby/RubyModule;
}
SourceFile: "JavaIo.java"
NestMembers:
  org.jruby.javasupport.ext.JavaIo$ChannelToIO  org.jruby.javasupport.ext.JavaIo$InputStreamToIO  org.jruby.javasupport.ext.JavaIo$OutputStreamToIO
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  private final ChannelToIO = org.jruby.javasupport.ext.JavaIo$ChannelToIO of org.jruby.javasupport.ext.JavaIo
  private final InputStreamToIO = org.jruby.javasupport.ext.JavaIo$InputStreamToIO of org.jruby.javasupport.ext.JavaIo
  private final OutputStreamToIO = org.jruby.javasupport.ext.JavaIo$OutputStreamToIO of org.jruby.javasupport.ext.JavaIo