public class org.xnio.channels.AssembledStreamChannel implements org.xnio.channels.StreamChannel
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.xnio.channels.AssembledStreamChannel
  super_class: java.lang.Object
{
  private final org.xnio.channels.CloseableChannel closeable;
    descriptor: Lorg/xnio/channels/CloseableChannel;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.xnio.channels.StreamSourceChannel source;
    descriptor: Lorg/xnio/channels/StreamSourceChannel;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.xnio.channels.StreamSinkChannel sink;
    descriptor: Lorg/xnio/channels/StreamSinkChannel;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.xnio.ChannelListener$Setter<org.xnio.channels.AssembledStreamChannel> readSetter;
    descriptor: Lorg/xnio/ChannelListener$Setter;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lorg/xnio/ChannelListener$Setter<Lorg/xnio/channels/AssembledStreamChannel;>;

  private final org.xnio.ChannelListener$Setter<org.xnio.channels.AssembledStreamChannel> writeSetter;
    descriptor: Lorg/xnio/ChannelListener$Setter;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lorg/xnio/ChannelListener$Setter<Lorg/xnio/channels/AssembledStreamChannel;>;

  private final org.xnio.ChannelListener$Setter<org.xnio.channels.AssembledStreamChannel> closeSetter;
    descriptor: Lorg/xnio/ChannelListener$Setter;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lorg/xnio/ChannelListener$Setter<Lorg/xnio/channels/AssembledStreamChannel;>;

  public void <init>(org.xnio.channels.CloseableChannel, org.xnio.channels.StreamSourceChannel, org.xnio.channels.StreamSinkChannel);
    descriptor: (Lorg/xnio/channels/CloseableChannel;Lorg/xnio/channels/StreamSourceChannel;Lorg/xnio/channels/StreamSinkChannel;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // org.xnio.channels.AssembledStreamChannel this
        start local 1 // org.xnio.channels.CloseableChannel closeable
        start local 2 // org.xnio.channels.StreamSourceChannel source
        start local 3 // org.xnio.channels.StreamSinkChannel sink
         0: .line 56
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 57
            aload 2 /* source */
            invokeinterface org.xnio.channels.StreamSourceChannel.getWorker:()Lorg/xnio/XnioWorker;
            aload 3 /* sink */
            invokeinterface org.xnio.channels.StreamSinkChannel.getWorker:()Lorg/xnio/XnioWorker;
            if_acmpne 2
            aload 2 /* source */
            invokeinterface org.xnio.channels.StreamSourceChannel.getWorker:()Lorg/xnio/XnioWorker;
            aload 1 /* closeable */
            invokeinterface org.xnio.channels.CloseableChannel.getWorker:()Lorg/xnio/XnioWorker;
            if_acmpeq 3
         2: .line 58
      StackMap locals: org.xnio.channels.AssembledStreamChannel org.xnio.channels.CloseableChannel org.xnio.channels.StreamSourceChannel org.xnio.channels.StreamSinkChannel
      StackMap stack:
            getstatic org.xnio._private.Messages.msg:Lorg/xnio/_private/Messages;
            invokeinterface org.xnio._private.Messages.differentWorkers:()Ljava/lang/IllegalArgumentException;
            athrow
         3: .line 60
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* closeable */
            putfield org.xnio.channels.AssembledStreamChannel.closeable:Lorg/xnio/channels/CloseableChannel;
         4: .line 61
            aload 0 /* this */
            aload 2 /* source */
            putfield org.xnio.channels.AssembledStreamChannel.source:Lorg/xnio/channels/StreamSourceChannel;
         5: .line 62
            aload 0 /* this */
            aload 3 /* sink */
            putfield org.xnio.channels.AssembledStreamChannel.sink:Lorg/xnio/channels/StreamSinkChannel;
         6: .line 63
            aload 0 /* this */
            aload 2 /* source */
            invokeinterface org.xnio.channels.StreamSourceChannel.getReadSetter:()Lorg/xnio/ChannelListener$Setter;
            aload 0 /* this */
            invokestatic org.xnio.ChannelListeners.getDelegatingSetter:(Lorg/xnio/ChannelListener$Setter;Ljava/nio/channels/Channel;)Lorg/xnio/ChannelListener$Setter;
            putfield org.xnio.channels.AssembledStreamChannel.readSetter:Lorg/xnio/ChannelListener$Setter;
         7: .line 64
            aload 0 /* this */
            aload 3 /* sink */
            invokeinterface org.xnio.channels.StreamSinkChannel.getWriteSetter:()Lorg/xnio/ChannelListener$Setter;
            aload 0 /* this */
            invokestatic org.xnio.ChannelListeners.getDelegatingSetter:(Lorg/xnio/ChannelListener$Setter;Ljava/nio/channels/Channel;)Lorg/xnio/ChannelListener$Setter;
            putfield org.xnio.channels.AssembledStreamChannel.writeSetter:Lorg/xnio/ChannelListener$Setter;
         8: .line 65
            aload 0 /* this */
            aload 1 /* closeable */
            invokeinterface org.xnio.channels.CloseableChannel.getCloseSetter:()Lorg/xnio/ChannelListener$Setter;
            aload 0 /* this */
            invokestatic org.xnio.ChannelListeners.getDelegatingSetter:(Lorg/xnio/ChannelListener$Setter;Ljava/nio/channels/Channel;)Lorg/xnio/ChannelListener$Setter;
            putfield org.xnio.channels.AssembledStreamChannel.closeSetter:Lorg/xnio/ChannelListener$Setter;
         9: .line 66
            return
        end local 3 // org.xnio.channels.StreamSinkChannel sink
        end local 2 // org.xnio.channels.StreamSourceChannel source
        end local 1 // org.xnio.channels.CloseableChannel closeable
        end local 0 // org.xnio.channels.AssembledStreamChannel this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   10     0       this  Lorg/xnio/channels/AssembledStreamChannel;
            0   10     1  closeable  Lorg/xnio/channels/CloseableChannel;
            0   10     2     source  Lorg/xnio/channels/StreamSourceChannel;
            0   10     3       sink  Lorg/xnio/channels/StreamSinkChannel;
    MethodParameters:
           Name  Flags
      closeable  final
      source     final
      sink       final

  public void <init>(org.xnio.channels.StreamSourceChannel, org.xnio.channels.StreamSinkChannel);
    descriptor: (Lorg/xnio/channels/StreamSourceChannel;Lorg/xnio/channels/StreamSinkChannel;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.xnio.channels.AssembledStreamChannel this
        start local 1 // org.xnio.channels.StreamSourceChannel source
        start local 2 // org.xnio.channels.StreamSinkChannel sink
         0: .line 75
            aload 0 /* this */
            new org.xnio.channels.AssembledChannel
            dup
            aload 1 /* source */
            aload 2 /* sink */
            invokespecial org.xnio.channels.AssembledChannel.<init>:(Lorg/xnio/channels/SuspendableReadChannel;Lorg/xnio/channels/SuspendableWriteChannel;)V
            aload 1 /* source */
            aload 2 /* sink */
            invokespecial org.xnio.channels.AssembledStreamChannel.<init>:(Lorg/xnio/channels/CloseableChannel;Lorg/xnio/channels/StreamSourceChannel;Lorg/xnio/channels/StreamSinkChannel;)V
         1: .line 76
            return
        end local 2 // org.xnio.channels.StreamSinkChannel sink
        end local 1 // org.xnio.channels.StreamSourceChannel source
        end local 0 // org.xnio.channels.AssembledStreamChannel this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lorg/xnio/channels/AssembledStreamChannel;
            0    2     1  source  Lorg/xnio/channels/StreamSourceChannel;
            0    2     2    sink  Lorg/xnio/channels/StreamSinkChannel;
    MethodParameters:
        Name  Flags
      source  final
      sink    final

  public org.xnio.ChannelListener$Setter<? extends org.xnio.channels.AssembledStreamChannel> getReadSetter();
    descriptor: ()Lorg/xnio/ChannelListener$Setter;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.xnio.channels.AssembledStreamChannel this
         0: .line 81
            aload 0 /* this */
            getfield org.xnio.channels.AssembledStreamChannel.readSetter:Lorg/xnio/ChannelListener$Setter;
            areturn
        end local 0 // org.xnio.channels.AssembledStreamChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/xnio/channels/AssembledStreamChannel;
    Signature: ()Lorg/xnio/ChannelListener$Setter<+Lorg/xnio/channels/AssembledStreamChannel;>;

  public void suspendReads();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.xnio.channels.AssembledStreamChannel this
         0: .line 85
            aload 0 /* this */
            getfield org.xnio.channels.AssembledStreamChannel.source:Lorg/xnio/channels/StreamSourceChannel;
            invokeinterface org.xnio.channels.StreamSourceChannel.suspendReads:()V
         1: .line 86
            return
        end local 0 // org.xnio.channels.AssembledStreamChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/xnio/channels/AssembledStreamChannel;

  public void resumeReads();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.xnio.channels.AssembledStreamChannel this
         0: .line 89
            aload 0 /* this */
            getfield org.xnio.channels.AssembledStreamChannel.source:Lorg/xnio/channels/StreamSourceChannel;
            invokeinterface org.xnio.channels.StreamSourceChannel.resumeReads:()V
         1: .line 90
            return
        end local 0 // org.xnio.channels.AssembledStreamChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/xnio/channels/AssembledStreamChannel;

  public boolean isReadResumed();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.xnio.channels.AssembledStreamChannel this
         0: .line 93
            aload 0 /* this */
            getfield org.xnio.channels.AssembledStreamChannel.source:Lorg/xnio/channels/StreamSourceChannel;
            invokeinterface org.xnio.channels.StreamSourceChannel.isReadResumed:()Z
            ireturn
        end local 0 // org.xnio.channels.AssembledStreamChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/xnio/channels/AssembledStreamChannel;

  public void wakeupReads();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.xnio.channels.AssembledStreamChannel this
         0: .line 97
            aload 0 /* this */
            getfield org.xnio.channels.AssembledStreamChannel.source:Lorg/xnio/channels/StreamSourceChannel;
            invokeinterface org.xnio.channels.StreamSourceChannel.wakeupReads:()V
         1: .line 98
            return
        end local 0 // org.xnio.channels.AssembledStreamChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/xnio/channels/AssembledStreamChannel;

  public void shutdownReads();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.xnio.channels.AssembledStreamChannel this
         0: .line 101
            aload 0 /* this */
            getfield org.xnio.channels.AssembledStreamChannel.source:Lorg/xnio/channels/StreamSourceChannel;
            invokeinterface org.xnio.channels.StreamSourceChannel.shutdownReads:()V
         1: .line 102
            return
        end local 0 // org.xnio.channels.AssembledStreamChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/xnio/channels/AssembledStreamChannel;
    Exceptions:
      throws java.io.IOException

  public void awaitReadable();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.xnio.channels.AssembledStreamChannel this
         0: .line 105
            aload 0 /* this */
            getfield org.xnio.channels.AssembledStreamChannel.source:Lorg/xnio/channels/StreamSourceChannel;
            invokeinterface org.xnio.channels.StreamSourceChannel.awaitReadable:()V
         1: .line 106
            return
        end local 0 // org.xnio.channels.AssembledStreamChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/xnio/channels/AssembledStreamChannel;
    Exceptions:
      throws java.io.IOException

  public void awaitReadable(long, java.util.concurrent.TimeUnit);
    descriptor: (JLjava/util/concurrent/TimeUnit;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // org.xnio.channels.AssembledStreamChannel this
        start local 1 // long time
        start local 3 // java.util.concurrent.TimeUnit timeUnit
         0: .line 109
            aload 0 /* this */
            getfield org.xnio.channels.AssembledStreamChannel.source:Lorg/xnio/channels/StreamSourceChannel;
            lload 1 /* time */
            aload 3 /* timeUnit */
            invokeinterface org.xnio.channels.StreamSourceChannel.awaitReadable:(JLjava/util/concurrent/TimeUnit;)V
         1: .line 110
            return
        end local 3 // java.util.concurrent.TimeUnit timeUnit
        end local 1 // long time
        end local 0 // org.xnio.channels.AssembledStreamChannel this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lorg/xnio/channels/AssembledStreamChannel;
            0    2     1      time  J
            0    2     3  timeUnit  Ljava/util/concurrent/TimeUnit;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      time      final
      timeUnit  final

  public org.xnio.XnioExecutor getReadThread();
    descriptor: ()Lorg/xnio/XnioExecutor;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.xnio.channels.AssembledStreamChannel this
         0: .line 114
            aload 0 /* this */
            getfield org.xnio.channels.AssembledStreamChannel.source:Lorg/xnio/channels/StreamSourceChannel;
            invokeinterface org.xnio.channels.StreamSourceChannel.getReadThread:()Lorg/xnio/XnioExecutor;
            areturn
        end local 0 // org.xnio.channels.AssembledStreamChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/xnio/channels/AssembledStreamChannel;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public org.xnio.XnioIoThread getIoThread();
    descriptor: ()Lorg/xnio/XnioIoThread;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.xnio.channels.AssembledStreamChannel this
         0: .line 118
            aload 0 /* this */
            getfield org.xnio.channels.AssembledStreamChannel.source:Lorg/xnio/channels/StreamSourceChannel;
            invokeinterface org.xnio.channels.StreamSourceChannel.getIoThread:()Lorg/xnio/XnioIoThread;
            areturn
        end local 0 // org.xnio.channels.AssembledStreamChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/xnio/channels/AssembledStreamChannel;

  public int read(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.xnio.channels.AssembledStreamChannel this
        start local 1 // java.nio.ByteBuffer dst
         0: .line 122
            aload 0 /* this */
            getfield org.xnio.channels.AssembledStreamChannel.source:Lorg/xnio/channels/StreamSourceChannel;
            aload 1 /* dst */
            invokeinterface org.xnio.channels.StreamSourceChannel.read:(Ljava/nio/ByteBuffer;)I
            ireturn
        end local 1 // java.nio.ByteBuffer dst
        end local 0 // org.xnio.channels.AssembledStreamChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/xnio/channels/AssembledStreamChannel;
            0    1     1   dst  Ljava/nio/ByteBuffer;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      dst   final

  public long read(java.nio.ByteBuffer[], int, int);
    descriptor: ([Ljava/nio/ByteBuffer;II)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.xnio.channels.AssembledStreamChannel this
        start local 1 // java.nio.ByteBuffer[] dsts
        start local 2 // int offset
        start local 3 // int length
         0: .line 126
            aload 0 /* this */
            getfield org.xnio.channels.AssembledStreamChannel.source:Lorg/xnio/channels/StreamSourceChannel;
            aload 1 /* dsts */
            iload 2 /* offset */
            iload 3 /* length */
            invokeinterface org.xnio.channels.StreamSourceChannel.read:([Ljava/nio/ByteBuffer;II)J
            lreturn
        end local 3 // int length
        end local 2 // int offset
        end local 1 // java.nio.ByteBuffer[] dsts
        end local 0 // org.xnio.channels.AssembledStreamChannel this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/xnio/channels/AssembledStreamChannel;
            0    1     1    dsts  [Ljava/nio/ByteBuffer;
            0    1     2  offset  I
            0    1     3  length  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      dsts    final
      offset  final
      length  final

  public long read(java.nio.ByteBuffer[]);
    descriptor: ([Ljava/nio/ByteBuffer;)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.xnio.channels.AssembledStreamChannel this
        start local 1 // java.nio.ByteBuffer[] dsts
         0: .line 130
            aload 0 /* this */
            getfield org.xnio.channels.AssembledStreamChannel.source:Lorg/xnio/channels/StreamSourceChannel;
            aload 1 /* dsts */
            invokeinterface org.xnio.channels.StreamSourceChannel.read:([Ljava/nio/ByteBuffer;)J
            lreturn
        end local 1 // java.nio.ByteBuffer[] dsts
        end local 0 // org.xnio.channels.AssembledStreamChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/xnio/channels/AssembledStreamChannel;
            0    1     1  dsts  [Ljava/nio/ByteBuffer;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      dsts  final

  public long transferTo(long, long, java.nio.channels.FileChannel);
    descriptor: (JJLjava/nio/channels/FileChannel;)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=4
        start local 0 // org.xnio.channels.AssembledStreamChannel this
        start local 1 // long position
        start local 3 // long count
        start local 5 // java.nio.channels.FileChannel target
         0: .line 134
            aload 0 /* this */
            getfield org.xnio.channels.AssembledStreamChannel.source:Lorg/xnio/channels/StreamSourceChannel;
            lload 1 /* position */
            lload 3 /* count */
            aload 5 /* target */
            invokeinterface org.xnio.channels.StreamSourceChannel.transferTo:(JJLjava/nio/channels/FileChannel;)J
            lreturn
        end local 5 // java.nio.channels.FileChannel target
        end local 3 // long count
        end local 1 // long position
        end local 0 // org.xnio.channels.AssembledStreamChannel this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lorg/xnio/channels/AssembledStreamChannel;
            0    1     1  position  J
            0    1     3     count  J
            0    1     5    target  Ljava/nio/channels/FileChannel;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      position  final
      count     final
      target    final

  public long transferTo(long, java.nio.ByteBuffer, org.xnio.channels.StreamSinkChannel);
    descriptor: (JLjava/nio/ByteBuffer;Lorg/xnio/channels/StreamSinkChannel;)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // org.xnio.channels.AssembledStreamChannel this
        start local 1 // long count
        start local 3 // java.nio.ByteBuffer throughBuffer
        start local 4 // org.xnio.channels.StreamSinkChannel target
         0: .line 138
            aload 0 /* this */
            getfield org.xnio.channels.AssembledStreamChannel.source:Lorg/xnio/channels/StreamSourceChannel;
            lload 1 /* count */
            aload 3 /* throughBuffer */
            aload 4 /* target */
            invokeinterface org.xnio.channels.StreamSourceChannel.transferTo:(JLjava/nio/ByteBuffer;Lorg/xnio/channels/StreamSinkChannel;)J
            lreturn
        end local 4 // org.xnio.channels.StreamSinkChannel target
        end local 3 // java.nio.ByteBuffer throughBuffer
        end local 1 // long count
        end local 0 // org.xnio.channels.AssembledStreamChannel this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lorg/xnio/channels/AssembledStreamChannel;
            0    1     1          count  J
            0    1     3  throughBuffer  Ljava/nio/ByteBuffer;
            0    1     4         target  Lorg/xnio/channels/StreamSinkChannel;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
               Name  Flags
      count          final
      throughBuffer  final
      target         final

  public long transferFrom(java.nio.channels.FileChannel, long, long);
    descriptor: (Ljava/nio/channels/FileChannel;JJ)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=4
        start local 0 // org.xnio.channels.AssembledStreamChannel this
        start local 1 // java.nio.channels.FileChannel src
        start local 2 // long position
        start local 4 // long count
         0: .line 144
            aload 0 /* this */
            getfield org.xnio.channels.AssembledStreamChannel.sink:Lorg/xnio/channels/StreamSinkChannel;
            aload 1 /* src */
            lload 2 /* position */
            lload 4 /* count */
            invokeinterface org.xnio.channels.StreamSinkChannel.transferFrom:(Ljava/nio/channels/FileChannel;JJ)J
            lreturn
        end local 4 // long count
        end local 2 // long position
        end local 1 // java.nio.channels.FileChannel src
        end local 0 // org.xnio.channels.AssembledStreamChannel this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lorg/xnio/channels/AssembledStreamChannel;
            0    1     1       src  Ljava/nio/channels/FileChannel;
            0    1     2  position  J
            0    1     4     count  J
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      src       final
      position  final
      count     final

  public long transferFrom(org.xnio.channels.StreamSourceChannel, long, java.nio.ByteBuffer);
    descriptor: (Lorg/xnio/channels/StreamSourceChannel;JLjava/nio/ByteBuffer;)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // org.xnio.channels.AssembledStreamChannel this
        start local 1 // org.xnio.channels.StreamSourceChannel source
        start local 2 // long count
        start local 4 // java.nio.ByteBuffer throughBuffer
         0: .line 148
            aload 0 /* this */
            getfield org.xnio.channels.AssembledStreamChannel.sink:Lorg/xnio/channels/StreamSinkChannel;
            aload 1 /* source */
            lload 2 /* count */
            aload 4 /* throughBuffer */
            invokeinterface org.xnio.channels.StreamSinkChannel.transferFrom:(Lorg/xnio/channels/StreamSourceChannel;JLjava/nio/ByteBuffer;)J
            lreturn
        end local 4 // java.nio.ByteBuffer throughBuffer
        end local 2 // long count
        end local 1 // org.xnio.channels.StreamSourceChannel source
        end local 0 // org.xnio.channels.AssembledStreamChannel this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lorg/xnio/channels/AssembledStreamChannel;
            0    1     1         source  Lorg/xnio/channels/StreamSourceChannel;
            0    1     2          count  J
            0    1     4  throughBuffer  Ljava/nio/ByteBuffer;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
               Name  Flags
      source         final
      count          final
      throughBuffer  final

  public org.xnio.ChannelListener$Setter<? extends org.xnio.channels.AssembledStreamChannel> getWriteSetter();
    descriptor: ()Lorg/xnio/ChannelListener$Setter;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.xnio.channels.AssembledStreamChannel this
         0: .line 152
            aload 0 /* this */
            getfield org.xnio.channels.AssembledStreamChannel.writeSetter:Lorg/xnio/ChannelListener$Setter;
            areturn
        end local 0 // org.xnio.channels.AssembledStreamChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/xnio/channels/AssembledStreamChannel;
    Signature: ()Lorg/xnio/ChannelListener$Setter<+Lorg/xnio/channels/AssembledStreamChannel;>;

  public int write(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.xnio.channels.AssembledStreamChannel this
        start local 1 // java.nio.ByteBuffer src
         0: .line 156
            aload 0 /* this */
            getfield org.xnio.channels.AssembledStreamChannel.sink:Lorg/xnio/channels/StreamSinkChannel;
            aload 1 /* src */
            invokeinterface org.xnio.channels.StreamSinkChannel.write:(Ljava/nio/ByteBuffer;)I
            ireturn
        end local 1 // java.nio.ByteBuffer src
        end local 0 // org.xnio.channels.AssembledStreamChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/xnio/channels/AssembledStreamChannel;
            0    1     1   src  Ljava/nio/ByteBuffer;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      src   final

  public long write(java.nio.ByteBuffer[], int, int);
    descriptor: ([Ljava/nio/ByteBuffer;II)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.xnio.channels.AssembledStreamChannel this
        start local 1 // java.nio.ByteBuffer[] srcs
        start local 2 // int offset
        start local 3 // int length
         0: .line 160
            aload 0 /* this */
            getfield org.xnio.channels.AssembledStreamChannel.sink:Lorg/xnio/channels/StreamSinkChannel;
            aload 1 /* srcs */
            iload 2 /* offset */
            iload 3 /* length */
            invokeinterface org.xnio.channels.StreamSinkChannel.write:([Ljava/nio/ByteBuffer;II)J
            lreturn
        end local 3 // int length
        end local 2 // int offset
        end local 1 // java.nio.ByteBuffer[] srcs
        end local 0 // org.xnio.channels.AssembledStreamChannel this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/xnio/channels/AssembledStreamChannel;
            0    1     1    srcs  [Ljava/nio/ByteBuffer;
            0    1     2  offset  I
            0    1     3  length  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      srcs    final
      offset  final
      length  final

  public long write(java.nio.ByteBuffer[]);
    descriptor: ([Ljava/nio/ByteBuffer;)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.xnio.channels.AssembledStreamChannel this
        start local 1 // java.nio.ByteBuffer[] srcs
         0: .line 164
            aload 0 /* this */
            getfield org.xnio.channels.AssembledStreamChannel.sink:Lorg/xnio/channels/StreamSinkChannel;
            aload 1 /* srcs */
            invokeinterface org.xnio.channels.StreamSinkChannel.write:([Ljava/nio/ByteBuffer;)J
            lreturn
        end local 1 // java.nio.ByteBuffer[] srcs
        end local 0 // org.xnio.channels.AssembledStreamChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/xnio/channels/AssembledStreamChannel;
            0    1     1  srcs  [Ljava/nio/ByteBuffer;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      srcs  final

  public void suspendWrites();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.xnio.channels.AssembledStreamChannel this
         0: .line 168
            aload 0 /* this */
            getfield org.xnio.channels.AssembledStreamChannel.sink:Lorg/xnio/channels/StreamSinkChannel;
            invokeinterface org.xnio.channels.StreamSinkChannel.suspendWrites:()V
         1: .line 169
            return
        end local 0 // org.xnio.channels.AssembledStreamChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/xnio/channels/AssembledStreamChannel;

  public void resumeWrites();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.xnio.channels.AssembledStreamChannel this
         0: .line 172
            aload 0 /* this */
            getfield org.xnio.channels.AssembledStreamChannel.sink:Lorg/xnio/channels/StreamSinkChannel;
            invokeinterface org.xnio.channels.StreamSinkChannel.resumeWrites:()V
         1: .line 173
            return
        end local 0 // org.xnio.channels.AssembledStreamChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/xnio/channels/AssembledStreamChannel;

  public boolean isWriteResumed();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.xnio.channels.AssembledStreamChannel this
         0: .line 176
            aload 0 /* this */
            getfield org.xnio.channels.AssembledStreamChannel.sink:Lorg/xnio/channels/StreamSinkChannel;
            invokeinterface org.xnio.channels.StreamSinkChannel.isWriteResumed:()Z
            ireturn
        end local 0 // org.xnio.channels.AssembledStreamChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/xnio/channels/AssembledStreamChannel;

  public void wakeupWrites();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.xnio.channels.AssembledStreamChannel this
         0: .line 180
            aload 0 /* this */
            getfield org.xnio.channels.AssembledStreamChannel.sink:Lorg/xnio/channels/StreamSinkChannel;
            invokeinterface org.xnio.channels.StreamSinkChannel.wakeupWrites:()V
         1: .line 181
            return
        end local 0 // org.xnio.channels.AssembledStreamChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/xnio/channels/AssembledStreamChannel;

  public void shutdownWrites();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.xnio.channels.AssembledStreamChannel this
         0: .line 184
            aload 0 /* this */
            getfield org.xnio.channels.AssembledStreamChannel.sink:Lorg/xnio/channels/StreamSinkChannel;
            invokeinterface org.xnio.channels.StreamSinkChannel.shutdownWrites:()V
         1: .line 185
            return
        end local 0 // org.xnio.channels.AssembledStreamChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/xnio/channels/AssembledStreamChannel;
    Exceptions:
      throws java.io.IOException

  public void awaitWritable();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.xnio.channels.AssembledStreamChannel this
         0: .line 188
            aload 0 /* this */
            getfield org.xnio.channels.AssembledStreamChannel.sink:Lorg/xnio/channels/StreamSinkChannel;
            invokeinterface org.xnio.channels.StreamSinkChannel.awaitWritable:()V
         1: .line 189
            return
        end local 0 // org.xnio.channels.AssembledStreamChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/xnio/channels/AssembledStreamChannel;
    Exceptions:
      throws java.io.IOException

  public void awaitWritable(long, java.util.concurrent.TimeUnit);
    descriptor: (JLjava/util/concurrent/TimeUnit;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // org.xnio.channels.AssembledStreamChannel this
        start local 1 // long time
        start local 3 // java.util.concurrent.TimeUnit timeUnit
         0: .line 192
            aload 0 /* this */
            getfield org.xnio.channels.AssembledStreamChannel.sink:Lorg/xnio/channels/StreamSinkChannel;
            lload 1 /* time */
            aload 3 /* timeUnit */
            invokeinterface org.xnio.channels.StreamSinkChannel.awaitWritable:(JLjava/util/concurrent/TimeUnit;)V
         1: .line 193
            return
        end local 3 // java.util.concurrent.TimeUnit timeUnit
        end local 1 // long time
        end local 0 // org.xnio.channels.AssembledStreamChannel this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lorg/xnio/channels/AssembledStreamChannel;
            0    2     1      time  J
            0    2     3  timeUnit  Ljava/util/concurrent/TimeUnit;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      time      final
      timeUnit  final

  public org.xnio.XnioExecutor getWriteThread();
    descriptor: ()Lorg/xnio/XnioExecutor;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.xnio.channels.AssembledStreamChannel this
         0: .line 197
            aload 0 /* this */
            getfield org.xnio.channels.AssembledStreamChannel.sink:Lorg/xnio/channels/StreamSinkChannel;
            invokeinterface org.xnio.channels.StreamSinkChannel.getWriteThread:()Lorg/xnio/XnioExecutor;
            areturn
        end local 0 // org.xnio.channels.AssembledStreamChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/xnio/channels/AssembledStreamChannel;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public boolean flush();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.xnio.channels.AssembledStreamChannel this
         0: .line 201
            aload 0 /* this */
            getfield org.xnio.channels.AssembledStreamChannel.sink:Lorg/xnio/channels/StreamSinkChannel;
            invokeinterface org.xnio.channels.StreamSinkChannel.flush:()Z
            ireturn
        end local 0 // org.xnio.channels.AssembledStreamChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/xnio/channels/AssembledStreamChannel;
    Exceptions:
      throws java.io.IOException

  public org.xnio.ChannelListener$Setter<? extends org.xnio.channels.AssembledStreamChannel> getCloseSetter();
    descriptor: ()Lorg/xnio/ChannelListener$Setter;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.xnio.channels.AssembledStreamChannel this
         0: .line 207
            aload 0 /* this */
            getfield org.xnio.channels.AssembledStreamChannel.closeSetter:Lorg/xnio/ChannelListener$Setter;
            areturn
        end local 0 // org.xnio.channels.AssembledStreamChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/xnio/channels/AssembledStreamChannel;
    Signature: ()Lorg/xnio/ChannelListener$Setter<+Lorg/xnio/channels/AssembledStreamChannel;>;

  public int writeFinal(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.xnio.channels.AssembledStreamChannel this
        start local 1 // java.nio.ByteBuffer src
         0: .line 212
            aload 0 /* this */
            getfield org.xnio.channels.AssembledStreamChannel.sink:Lorg/xnio/channels/StreamSinkChannel;
            aload 1 /* src */
            invokeinterface org.xnio.channels.StreamSinkChannel.writeFinal:(Ljava/nio/ByteBuffer;)I
            ireturn
        end local 1 // java.nio.ByteBuffer src
        end local 0 // org.xnio.channels.AssembledStreamChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/xnio/channels/AssembledStreamChannel;
            0    1     1   src  Ljava/nio/ByteBuffer;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      src   

  public long writeFinal(java.nio.ByteBuffer[], int, int);
    descriptor: ([Ljava/nio/ByteBuffer;II)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.xnio.channels.AssembledStreamChannel this
        start local 1 // java.nio.ByteBuffer[] srcs
        start local 2 // int offset
        start local 3 // int length
         0: .line 217
            aload 0 /* this */
            getfield org.xnio.channels.AssembledStreamChannel.sink:Lorg/xnio/channels/StreamSinkChannel;
            aload 1 /* srcs */
            iload 2 /* offset */
            iload 3 /* length */
            invokeinterface org.xnio.channels.StreamSinkChannel.writeFinal:([Ljava/nio/ByteBuffer;II)J
            lreturn
        end local 3 // int length
        end local 2 // int offset
        end local 1 // java.nio.ByteBuffer[] srcs
        end local 0 // org.xnio.channels.AssembledStreamChannel this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/xnio/channels/AssembledStreamChannel;
            0    1     1    srcs  [Ljava/nio/ByteBuffer;
            0    1     2  offset  I
            0    1     3  length  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      srcs    
      offset  
      length  

  public long writeFinal(java.nio.ByteBuffer[]);
    descriptor: ([Ljava/nio/ByteBuffer;)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.xnio.channels.AssembledStreamChannel this
        start local 1 // java.nio.ByteBuffer[] srcs
         0: .line 222
            aload 0 /* this */
            getfield org.xnio.channels.AssembledStreamChannel.sink:Lorg/xnio/channels/StreamSinkChannel;
            aload 1 /* srcs */
            invokeinterface org.xnio.channels.StreamSinkChannel.writeFinal:([Ljava/nio/ByteBuffer;)J
            lreturn
        end local 1 // java.nio.ByteBuffer[] srcs
        end local 0 // org.xnio.channels.AssembledStreamChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/xnio/channels/AssembledStreamChannel;
            0    1     1  srcs  [Ljava/nio/ByteBuffer;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      srcs  

  public org.xnio.XnioWorker getWorker();
    descriptor: ()Lorg/xnio/XnioWorker;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.xnio.channels.AssembledStreamChannel this
         0: .line 226
            aload 0 /* this */
            getfield org.xnio.channels.AssembledStreamChannel.closeable:Lorg/xnio/channels/CloseableChannel;
            invokeinterface org.xnio.channels.CloseableChannel.getWorker:()Lorg/xnio/XnioWorker;
            areturn
        end local 0 // org.xnio.channels.AssembledStreamChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/xnio/channels/AssembledStreamChannel;

  public void close();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.xnio.channels.AssembledStreamChannel this
         0: .line 230
            aload 0 /* this */
            getfield org.xnio.channels.AssembledStreamChannel.closeable:Lorg/xnio/channels/CloseableChannel;
            invokeinterface org.xnio.channels.CloseableChannel.close:()V
         1: .line 231
            return
        end local 0 // org.xnio.channels.AssembledStreamChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/xnio/channels/AssembledStreamChannel;
    Exceptions:
      throws java.io.IOException

  public boolean isOpen();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.xnio.channels.AssembledStreamChannel this
         0: .line 234
            aload 0 /* this */
            getfield org.xnio.channels.AssembledStreamChannel.closeable:Lorg/xnio/channels/CloseableChannel;
            invokeinterface org.xnio.channels.CloseableChannel.isOpen:()Z
            ireturn
        end local 0 // org.xnio.channels.AssembledStreamChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/xnio/channels/AssembledStreamChannel;

  public boolean supportsOption(org.xnio.Option<?>);
    descriptor: (Lorg/xnio/Option;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.xnio.channels.AssembledStreamChannel this
        start local 1 // org.xnio.Option option
         0: .line 238
            aload 0 /* this */
            getfield org.xnio.channels.AssembledStreamChannel.closeable:Lorg/xnio/channels/CloseableChannel;
            aload 1 /* option */
            invokeinterface org.xnio.channels.CloseableChannel.supportsOption:(Lorg/xnio/Option;)Z
            ireturn
        end local 1 // org.xnio.Option option
        end local 0 // org.xnio.channels.AssembledStreamChannel this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/xnio/channels/AssembledStreamChannel;
            0    1     1  option  Lorg/xnio/Option<*>;
    Signature: (Lorg/xnio/Option<*>;)Z
    MethodParameters:
        Name  Flags
      option  final

  public <T> T getOption(org.xnio.Option<T>);
    descriptor: (Lorg/xnio/Option;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.xnio.channels.AssembledStreamChannel this
        start local 1 // org.xnio.Option option
         0: .line 242
            aload 0 /* this */
            getfield org.xnio.channels.AssembledStreamChannel.closeable:Lorg/xnio/channels/CloseableChannel;
            aload 1 /* option */
            invokeinterface org.xnio.channels.CloseableChannel.getOption:(Lorg/xnio/Option;)Ljava/lang/Object;
            areturn
        end local 1 // org.xnio.Option option
        end local 0 // org.xnio.channels.AssembledStreamChannel this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/xnio/channels/AssembledStreamChannel;
            0    1     1  option  Lorg/xnio/Option<TT;>;
    Exceptions:
      throws java.io.IOException
    Signature: <T:Ljava/lang/Object;>(Lorg/xnio/Option<TT;>;)TT;
    MethodParameters:
        Name  Flags
      option  final

  public <T> T setOption(org.xnio.Option<T>, );
    descriptor: (Lorg/xnio/Option;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.xnio.channels.AssembledStreamChannel this
        start local 1 // org.xnio.Option option
        start local 2 // java.lang.Object value
         0: .line 246
            aload 0 /* this */
            getfield org.xnio.channels.AssembledStreamChannel.closeable:Lorg/xnio/channels/CloseableChannel;
            aload 1 /* option */
            aload 2 /* value */
            invokeinterface org.xnio.channels.CloseableChannel.setOption:(Lorg/xnio/Option;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 2 // java.lang.Object value
        end local 1 // org.xnio.Option option
        end local 0 // org.xnio.channels.AssembledStreamChannel this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/xnio/channels/AssembledStreamChannel;
            0    1     1  option  Lorg/xnio/Option<TT;>;
            0    1     2   value  TT;
    Exceptions:
      throws java.lang.IllegalArgumentException, java.io.IOException
    Signature: <T:Ljava/lang/Object;>(Lorg/xnio/Option<TT;>;TT;)TT;
    MethodParameters:
        Name  Flags
      option  final
      value   final
}
SourceFile: "AssembledStreamChannel.java"
InnerClasses:
  public abstract Setter = org.xnio.ChannelListener$Setter of org.xnio.ChannelListener