final class org.glassfish.grizzly.http2.hpack.StringReader
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: org.glassfish.grizzly.http2.hpack.StringReader
  super_class: java.lang.Object
{
  private static final byte NEW;
    descriptor: B
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  private static final byte FIRST_BYTE_READ;
    descriptor: B
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private static final byte LENGTH_READ;
    descriptor: B
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  private static final byte DONE;
    descriptor: B
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 4

  private final org.glassfish.grizzly.http2.hpack.IntegerReader intReader;
    descriptor: Lorg/glassfish/grizzly/http2/hpack/IntegerReader;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.glassfish.grizzly.http2.hpack.Huffman$Reader huffmanReader;
    descriptor: Lorg/glassfish/grizzly/http2/hpack/Huffman$Reader;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.glassfish.grizzly.http2.hpack.ISO_8859_1$Reader plainReader;
    descriptor: Lorg/glassfish/grizzly/http2/hpack/ISO_8859_1$Reader;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private byte state;
    descriptor: B
    flags: (0x0002) ACC_PRIVATE

  private boolean huffman;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private int remainingLength;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.glassfish.grizzly.http2.hpack.StringReader this
         0: .line 31
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 38
            aload 0 /* this */
            new org.glassfish.grizzly.http2.hpack.IntegerReader
            dup
            invokespecial org.glassfish.grizzly.http2.hpack.IntegerReader.<init>:()V
            putfield org.glassfish.grizzly.http2.hpack.StringReader.intReader:Lorg/glassfish/grizzly/http2/hpack/IntegerReader;
         2: .line 39
            aload 0 /* this */
            new org.glassfish.grizzly.http2.hpack.Huffman$Reader
            dup
            invokespecial org.glassfish.grizzly.http2.hpack.Huffman$Reader.<init>:()V
            putfield org.glassfish.grizzly.http2.hpack.StringReader.huffmanReader:Lorg/glassfish/grizzly/http2/hpack/Huffman$Reader;
         3: .line 40
            aload 0 /* this */
            new org.glassfish.grizzly.http2.hpack.ISO_8859_1$Reader
            dup
            invokespecial org.glassfish.grizzly.http2.hpack.ISO_8859_1$Reader.<init>:()V
            putfield org.glassfish.grizzly.http2.hpack.StringReader.plainReader:Lorg/glassfish/grizzly/http2/hpack/ISO_8859_1$Reader;
         4: .line 42
            aload 0 /* this */
            iconst_0
            putfield org.glassfish.grizzly.http2.hpack.StringReader.state:B
         5: .line 31
            return
        end local 0 // org.glassfish.grizzly.http2.hpack.StringReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/glassfish/grizzly/http2/hpack/StringReader;

  boolean read(org.glassfish.grizzly.Buffer, java.lang.Appendable);
    descriptor: (Lorg/glassfish/grizzly/Buffer;Ljava/lang/Appendable;)Z
    flags: (0x0000) 
    Code:
      stack=6, locals=5, args_size=3
        start local 0 // org.glassfish.grizzly.http2.hpack.StringReader this
        start local 1 // org.glassfish.grizzly.Buffer input
        start local 2 // java.lang.Appendable output
         0: .line 48
            aload 0 /* this */
            getfield org.glassfish.grizzly.http2.hpack.StringReader.state:B
            iconst_4
            if_icmpne 2
         1: .line 49
            iconst_1
            ireturn
         2: .line 51
      StackMap locals:
      StackMap stack:
            aload 1 /* input */
            invokeinterface org.glassfish.grizzly.Buffer.hasRemaining:()Z
            ifne 4
         3: .line 52
            iconst_0
            ireturn
         4: .line 54
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.glassfish.grizzly.http2.hpack.StringReader.state:B
            ifne 11
         5: .line 55
            aload 1 /* input */
            invokeinterface org.glassfish.grizzly.Buffer.position:()I
            istore 3 /* p */
        start local 3 // int p
         6: .line 56
            aload 0 /* this */
            aload 1 /* input */
            iload 3 /* p */
            invokeinterface org.glassfish.grizzly.Buffer.get:(I)B
            sipush 128
            iand
            ifeq 7
            iconst_1
            goto 8
      StackMap locals: org.glassfish.grizzly.http2.hpack.StringReader org.glassfish.grizzly.Buffer java.lang.Appendable int
      StackMap stack: org.glassfish.grizzly.http2.hpack.StringReader
         7: iconst_0
      StackMap locals: org.glassfish.grizzly.http2.hpack.StringReader org.glassfish.grizzly.Buffer java.lang.Appendable int
      StackMap stack: org.glassfish.grizzly.http2.hpack.StringReader int
         8: putfield org.glassfish.grizzly.http2.hpack.StringReader.huffman:Z
         9: .line 57
            aload 0 /* this */
            iconst_1
            putfield org.glassfish.grizzly.http2.hpack.StringReader.state:B
        10: .line 58
            aload 0 /* this */
            getfield org.glassfish.grizzly.http2.hpack.StringReader.intReader:Lorg/glassfish/grizzly/http2/hpack/IntegerReader;
            bipush 7
            invokevirtual org.glassfish.grizzly.http2.hpack.IntegerReader.configure:(I)Lorg/glassfish/grizzly/http2/hpack/IntegerReader;
            pop
        end local 3 // int p
        11: .line 60
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.glassfish.grizzly.http2.hpack.StringReader.state:B
            iconst_1
            if_icmpne 17
        12: .line 61
            aload 0 /* this */
            getfield org.glassfish.grizzly.http2.hpack.StringReader.intReader:Lorg/glassfish/grizzly/http2/hpack/IntegerReader;
            aload 1 /* input */
            invokevirtual org.glassfish.grizzly.http2.hpack.IntegerReader.read:(Lorg/glassfish/grizzly/Buffer;)Z
            istore 3 /* lengthRead */
        start local 3 // boolean lengthRead
        13: .line 62
            iload 3 /* lengthRead */
            ifne 15
        14: .line 63
            iconst_0
            ireturn
        15: .line 65
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.glassfish.grizzly.http2.hpack.StringReader.intReader:Lorg/glassfish/grizzly/http2/hpack/IntegerReader;
            invokevirtual org.glassfish.grizzly.http2.hpack.IntegerReader.get:()I
            putfield org.glassfish.grizzly.http2.hpack.StringReader.remainingLength:I
        16: .line 66
            aload 0 /* this */
            iconst_2
            putfield org.glassfish.grizzly.http2.hpack.StringReader.state:B
        end local 3 // boolean lengthRead
        17: .line 68
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.glassfish.grizzly.http2.hpack.StringReader.state:B
            iconst_2
            if_icmpne 33
        18: .line 69
            aload 1 /* input */
            invokeinterface org.glassfish.grizzly.Buffer.remaining:()I
            aload 0 /* this */
            getfield org.glassfish.grizzly.http2.hpack.StringReader.remainingLength:I
            if_icmplt 19
            iconst_1
            goto 20
      StackMap locals:
      StackMap stack:
        19: iconst_0
      StackMap locals:
      StackMap stack: int
        20: istore 3 /* isLast */
        start local 3 // boolean isLast
        21: .line 70
            aload 1 /* input */
            invokeinterface org.glassfish.grizzly.Buffer.limit:()I
            istore 4 /* oldLimit */
        start local 4 // int oldLimit
        22: .line 71
            iload 3 /* isLast */
            ifeq 24
        23: .line 72
            aload 1 /* input */
            aload 1 /* input */
            invokeinterface org.glassfish.grizzly.Buffer.position:()I
            aload 0 /* this */
            getfield org.glassfish.grizzly.http2.hpack.StringReader.remainingLength:I
            iadd
            invokeinterface org.glassfish.grizzly.Buffer.limit:(I)Lorg/glassfish/grizzly/Buffer;
            pop
        24: .line 74
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            dup
            getfield org.glassfish.grizzly.http2.hpack.StringReader.remainingLength:I
            aload 1 /* input */
            invokeinterface org.glassfish.grizzly.Buffer.remaining:()I
            aload 0 /* this */
            getfield org.glassfish.grizzly.http2.hpack.StringReader.remainingLength:I
            invokestatic java.lang.Math.min:(II)I
            isub
            putfield org.glassfish.grizzly.http2.hpack.StringReader.remainingLength:I
        25: .line 75
            aload 0 /* this */
            getfield org.glassfish.grizzly.http2.hpack.StringReader.huffman:Z
            ifeq 28
        26: .line 76
            aload 0 /* this */
            getfield org.glassfish.grizzly.http2.hpack.StringReader.huffmanReader:Lorg/glassfish/grizzly/http2/hpack/Huffman$Reader;
            aload 1 /* input */
            aload 2 /* output */
            iload 3 /* isLast */
            invokevirtual org.glassfish.grizzly.http2.hpack.Huffman$Reader.read:(Lorg/glassfish/grizzly/Buffer;Ljava/lang/Appendable;Z)V
        27: .line 77
            goto 29
        28: .line 78
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.glassfish.grizzly.http2.hpack.StringReader.plainReader:Lorg/glassfish/grizzly/http2/hpack/ISO_8859_1$Reader;
            aload 1 /* input */
            aload 2 /* output */
            invokevirtual org.glassfish.grizzly.http2.hpack.ISO_8859_1$Reader.read:(Lorg/glassfish/grizzly/Buffer;Ljava/lang/Appendable;)V
        29: .line 80
      StackMap locals:
      StackMap stack:
            iload 3 /* isLast */
            ifeq 32
        30: .line 81
            aload 1 /* input */
            iload 4 /* oldLimit */
            invokeinterface org.glassfish.grizzly.Buffer.limit:(I)Lorg/glassfish/grizzly/Buffer;
            pop
        31: .line 82
            aload 0 /* this */
            iconst_4
            putfield org.glassfish.grizzly.http2.hpack.StringReader.state:B
        32: .line 84
      StackMap locals:
      StackMap stack:
            iload 3 /* isLast */
            ireturn
        end local 4 // int oldLimit
        end local 3 // boolean isLast
        33: .line 86
      StackMap locals:
      StackMap stack:
            new java.lang.InternalError
            dup
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            getfield org.glassfish.grizzly.http2.hpack.StringReader.state:B
            invokestatic java.lang.Byte.valueOf:(B)Ljava/lang/Byte;
            aastore
            dup
            iconst_1
            aload 0 /* this */
            getfield org.glassfish.grizzly.http2.hpack.StringReader.huffman:Z
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            aastore
            dup
            iconst_2
            aload 0 /* this */
            getfield org.glassfish.grizzly.http2.hpack.StringReader.remainingLength:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokestatic java.util.Arrays.toString:([Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.lang.Appendable output
        end local 1 // org.glassfish.grizzly.Buffer input
        end local 0 // org.glassfish.grizzly.http2.hpack.StringReader this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   34     0        this  Lorg/glassfish/grizzly/http2/hpack/StringReader;
            0   34     1       input  Lorg/glassfish/grizzly/Buffer;
            0   34     2      output  Ljava/lang/Appendable;
            6   11     3           p  I
           13   17     3  lengthRead  Z
           21   33     3      isLast  Z
           22   33     4    oldLimit  I
    MethodParameters:
        Name  Flags
      input   
      output  

  boolean isHuffmanEncoded();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.glassfish.grizzly.http2.hpack.StringReader this
         0: .line 90
            aload 0 /* this */
            getfield org.glassfish.grizzly.http2.hpack.StringReader.state:B
            iconst_1
            if_icmpge 2
         1: .line 91
            new java.lang.IllegalStateException
            dup
            ldc "Has not been fully read yet"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 93
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.glassfish.grizzly.http2.hpack.StringReader.huffman:Z
            ireturn
        end local 0 // org.glassfish.grizzly.http2.hpack.StringReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/glassfish/grizzly/http2/hpack/StringReader;

  void reset();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.glassfish.grizzly.http2.hpack.StringReader this
         0: .line 97
            aload 0 /* this */
            getfield org.glassfish.grizzly.http2.hpack.StringReader.huffman:Z
            ifeq 3
         1: .line 98
            aload 0 /* this */
            getfield org.glassfish.grizzly.http2.hpack.StringReader.huffmanReader:Lorg/glassfish/grizzly/http2/hpack/Huffman$Reader;
            invokevirtual org.glassfish.grizzly.http2.hpack.Huffman$Reader.reset:()V
         2: .line 99
            goto 4
         3: .line 100
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.glassfish.grizzly.http2.hpack.StringReader.plainReader:Lorg/glassfish/grizzly/http2/hpack/ISO_8859_1$Reader;
            invokevirtual org.glassfish.grizzly.http2.hpack.ISO_8859_1$Reader.reset:()Lorg/glassfish/grizzly/http2/hpack/ISO_8859_1$Reader;
            pop
         4: .line 102
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.glassfish.grizzly.http2.hpack.StringReader.intReader:Lorg/glassfish/grizzly/http2/hpack/IntegerReader;
            invokevirtual org.glassfish.grizzly.http2.hpack.IntegerReader.reset:()Lorg/glassfish/grizzly/http2/hpack/IntegerReader;
            pop
         5: .line 103
            aload 0 /* this */
            iconst_0
            putfield org.glassfish.grizzly.http2.hpack.StringReader.state:B
         6: .line 104
            return
        end local 0 // org.glassfish.grizzly.http2.hpack.StringReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/glassfish/grizzly/http2/hpack/StringReader;
}
SourceFile: "StringReader.java"
InnerClasses:
  final Reader = org.glassfish.grizzly.http2.hpack.Huffman$Reader of org.glassfish.grizzly.http2.hpack.Huffman
  public final Reader = org.glassfish.grizzly.http2.hpack.ISO_8859_1$Reader of org.glassfish.grizzly.http2.hpack.ISO_8859_1