public abstract class org.jruby.util.io.ChannelHelper
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: org.jruby.util.io.ChannelHelper
super_class: java.lang.Object
{
private static final java.lang.reflect.Field filterInField;
descriptor: Ljava/lang/reflect/Field;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.lang.reflect.Field filterOutField;
descriptor: Ljava/lang/reflect/Field;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=2, args_size=0
0: aconst_null
astore 0
start local 0 1: aconst_null
astore 1
start local 1 2: ldc Ljava/io/FilterInputStream;
ldc "in"
invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
astore 0
3: goto 5
StackMap locals: java.lang.reflect.Field java.lang.reflect.Field
StackMap stack: java.lang.Exception
4: pop
5: StackMap locals:
StackMap stack:
ldc Ljava/io/FilterOutputStream;
ldc "out"
invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
astore 1
6: goto 8
StackMap locals:
StackMap stack: java.lang.Exception
7: pop
8: StackMap locals:
StackMap stack:
aload 0
putstatic org.jruby.util.io.ChannelHelper.filterInField:Ljava/lang/reflect/Field;
9: aload 1
putstatic org.jruby.util.io.ChannelHelper.filterOutField:Ljava/lang/reflect/Field;
end local 1 end local 0 10: return
LocalVariableTable:
Start End Slot Name Signature
1 10 0 _filterInField Ljava/lang/reflect/Field;
2 10 1 _filterOutField Ljava/lang/reflect/Field;
Exception table:
from to target type
2 3 4 Class java.lang.Exception
5 6 7 Class java.lang.Exception
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/util/io/ChannelHelper;
public static java.nio.channels.ReadableByteChannel readableChannel(java.io.InputStream);
descriptor: (Ljava/io/InputStream;)Ljava/nio/channels/ReadableByteChannel;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
instanceof java.io.ByteArrayInputStream
ifeq 3
1: getstatic org.jruby.util.io.SeekableByteChannelImpl.USABLE:Z
ifeq 3
2: new org.jruby.util.io.SeekableByteChannelImpl
dup
aload 0
checkcast java.io.ByteArrayInputStream
invokespecial org.jruby.util.io.SeekableByteChannelImpl.<init>:(Ljava/io/ByteArrayInputStream;)V
areturn
3: StackMap locals:
StackMap stack:
aload 0
invokestatic java.nio.channels.Channels.newChannel:(Ljava/io/InputStream;)Ljava/nio/channels/ReadableByteChannel;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 inputStream Ljava/io/InputStream;
MethodParameters:
Name Flags
inputStream final
public static java.nio.channels.WritableByteChannel writableChannel(java.io.OutputStream);
descriptor: (Ljava/io/OutputStream;)Ljava/nio/channels/WritableByteChannel;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokestatic java.nio.channels.Channels.newChannel:(Ljava/io/OutputStream;)Ljava/nio/channels/WritableByteChannel;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 ouputStream Ljava/io/OutputStream;
MethodParameters:
Name Flags
ouputStream final
public static java.io.OutputStream unwrapBufferedStream(java.io.OutputStream);
descriptor: (Ljava/io/OutputStream;)Ljava/io/OutputStream;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: getstatic org.jruby.RubyInstanceConfig.NO_UNWRAP_PROCESS_STREAMS:Z
ifeq 1
aload 0
areturn
1: StackMap locals:
StackMap stack:
aload 0
invokestatic org.jruby.util.io.ChannelHelper.unwrapFilterOutputStream:(Ljava/io/OutputStream;)Ljava/io/OutputStream;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 filteredStream Ljava/io/OutputStream;
MethodParameters:
Name Flags
filteredStream
public static java.io.InputStream unwrapBufferedStream(java.io.InputStream);
descriptor: (Ljava/io/InputStream;)Ljava/io/InputStream;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: getstatic org.jruby.RubyInstanceConfig.NO_UNWRAP_PROCESS_STREAMS:Z
ifeq 1
aload 0
areturn
1: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
ldc "ProcessPipeInputStream"
invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
iconst_1
if_icmpeq 3
2: aload 0
areturn
3: StackMap locals:
StackMap stack:
aload 0
checkcast java.io.FilterInputStream
invokestatic org.jruby.util.io.ChannelHelper.unwrapFilterInputStream:(Ljava/io/InputStream;)Ljava/io/InputStream;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 filteredStream Ljava/io/InputStream;
MethodParameters:
Name Flags
filteredStream
public static java.io.OutputStream unwrapFilterOutputStream(java.io.OutputStream);
descriptor: (Ljava/io/OutputStream;)Ljava/io/OutputStream;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=3, args_size=1
start local 0 0: getstatic org.jruby.util.io.ChannelHelper.filterOutField:Ljava/lang/reflect/Field;
ifnull 15
1: goto 14
2: StackMap locals:
StackMap stack:
getstatic org.jruby.util.io.ChannelHelper.filterOutField:Ljava/lang/reflect/Field;
invokestatic org.jruby.javasupport.Java.trySetAccessible:(Ljava/lang/reflect/AccessibleObject;)Z
ifeq 4
3: getstatic org.jruby.util.io.ChannelHelper.filterOutField:Ljava/lang/reflect/Field;
aload 0
invokevirtual java.lang.reflect.Field.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.io.OutputStream
goto 5
4: StackMap locals:
StackMap stack:
aconst_null
5: StackMap locals:
StackMap stack: java.io.OutputStream
astore 1
start local 1 6: aload 1
instanceof java.io.FilterOutputStream
ifne 10
7: aload 1
invokestatic org.jruby.util.io.ChannelHelper.unwrapDripStream:(Ljava/io/OutputStream;)Ljava/io/OutputStream;
astore 2
start local 2 8: aload 2
ifnull 10
9: aload 2
astore 1
end local 2 10: StackMap locals: java.io.OutputStream
StackMap stack:
aload 1
astore 0
end local 1 11: goto 14
StackMap locals: java.io.OutputStream
StackMap stack: java.lang.Exception
12: pop
13: goto 15
14: StackMap locals:
StackMap stack:
aload 0
instanceof java.io.FilterOutputStream
ifne 2
15: StackMap locals:
StackMap stack:
aload 0
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 filteredStream Ljava/io/OutputStream;
6 11 1 tmpStream Ljava/io/OutputStream;
8 10 2 dripStream Ljava/io/OutputStream;
Exception table:
from to target type
2 11 12 Class java.lang.Exception
MethodParameters:
Name Flags
filteredStream
public static java.io.InputStream unwrapFilterInputStream(java.io.InputStream);
descriptor: (Ljava/io/InputStream;)Ljava/io/InputStream;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=3, args_size=1
start local 0 0: getstatic org.jruby.util.io.ChannelHelper.filterInField:Ljava/lang/reflect/Field;
ifnull 17
1: goto 16
2: StackMap locals:
StackMap stack:
getstatic org.jruby.util.io.ChannelHelper.filterInField:Ljava/lang/reflect/Field;
invokestatic org.jruby.javasupport.Java.trySetAccessible:(Ljava/lang/reflect/AccessibleObject;)Z
ifeq 4
3: getstatic org.jruby.util.io.ChannelHelper.filterInField:Ljava/lang/reflect/Field;
aload 0
invokevirtual java.lang.reflect.Field.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.io.InputStream
goto 5
4: StackMap locals:
StackMap stack:
aconst_null
5: StackMap locals:
StackMap stack: java.io.InputStream
astore 1
start local 1 6: aload 1
ifnonnull 8
7: goto 17
8: StackMap locals: java.io.InputStream
StackMap stack:
aload 1
instanceof java.io.FilterInputStream
ifne 12
9: aload 1
invokestatic org.jruby.util.io.ChannelHelper.unwrapDripStream:(Ljava/io/InputStream;)Ljava/io/InputStream;
astore 2
start local 2 10: aload 2
ifnull 12
11: aload 2
astore 1
end local 2 12: StackMap locals:
StackMap stack:
aload 1
astore 0
end local 1 13: goto 16
StackMap locals: java.io.InputStream
StackMap stack: java.lang.Exception
14: pop
15: goto 17
16: StackMap locals:
StackMap stack:
aload 0
instanceof java.io.FilterInputStream
ifne 2
17: StackMap locals:
StackMap stack:
aload 0
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 filteredStream Ljava/io/InputStream;
6 13 1 tmpStream Ljava/io/InputStream;
10 12 2 dripStream Ljava/io/InputStream;
Exception table:
from to target type
2 7 14 Class java.lang.Exception
8 13 14 Class java.lang.Exception
MethodParameters:
Name Flags
filteredStream
private static java.io.OutputStream unwrapDripStream(java.io.OutputStream);
descriptor: (Ljava/io/OutputStream;)Ljava/io/OutputStream;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
invokestatic org.jruby.util.io.ChannelHelper.isDripSwitchable:(Ljava/lang/Object;)Z
ifeq 6
1: aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
ldc "out"
invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
astore 1
start local 1 2: aload 1
invokestatic org.jruby.javasupport.Java.trySetAccessible:(Ljava/lang/reflect/AccessibleObject;)Z
ifeq 3
aload 1
aload 0
invokevirtual java.lang.reflect.Field.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.io.OutputStream
goto 4
StackMap locals: java.lang.reflect.Field
StackMap stack:
3: aconst_null
StackMap locals:
StackMap stack: java.io.OutputStream
4: areturn
end local 1 5: StackMap locals: java.io.OutputStream
StackMap stack: java.lang.Exception
pop
6: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 stream Ljava/io/OutputStream;
2 5 1 out Ljava/lang/reflect/Field;
Exception table:
from to target type
1 4 5 Class java.lang.Exception
MethodParameters:
Name Flags
stream
private static java.io.InputStream unwrapDripStream(java.io.InputStream);
descriptor: (Ljava/io/InputStream;)Ljava/io/InputStream;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
invokestatic org.jruby.util.io.ChannelHelper.isDripSwitchable:(Ljava/lang/Object;)Z
ifeq 6
1: aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
ldc "in"
invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
astore 1
start local 1 2: aload 1
invokestatic org.jruby.javasupport.Java.trySetAccessible:(Ljava/lang/reflect/AccessibleObject;)Z
ifeq 3
aload 1
aload 0
invokevirtual java.lang.reflect.Field.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.io.InputStream
goto 4
StackMap locals: java.lang.reflect.Field
StackMap stack:
3: aconst_null
StackMap locals:
StackMap stack: java.io.InputStream
4: areturn
end local 1 5: StackMap locals: java.io.InputStream
StackMap stack: java.lang.Exception
pop
6: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 stream Ljava/io/InputStream;
2 5 1 in Ljava/lang/reflect/Field;
Exception table:
from to target type
1 4 5 Class java.lang.Exception
MethodParameters:
Name Flags
stream
private static boolean isDripSwitchable(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
ldc "org.flatland.drip.Switchable"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 stream Ljava/lang/Object;
MethodParameters:
Name Flags
stream
}
SourceFile: "ChannelHelper.java"