public abstract class org.glassfish.grizzly.AbstractTransformer<K, L> implements org.glassfish.grizzly.Transformer<K, L>
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.glassfish.grizzly.AbstractTransformer
  super_class: java.lang.Object
{
  protected final org.glassfish.grizzly.attributes.AttributeBuilder attributeBuilder;
    descriptor: Lorg/glassfish/grizzly/attributes/AttributeBuilder;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected final org.glassfish.grizzly.attributes.Attribute<org.glassfish.grizzly.AbstractTransformer$LastResultAwareState<K, L>> stateAttr;
    descriptor: Lorg/glassfish/grizzly/attributes/Attribute;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Signature: Lorg/glassfish/grizzly/attributes/Attribute<Lorg/glassfish/grizzly/AbstractTransformer$LastResultAwareState<TK;TL;>;>;

  private org.glassfish.grizzly.memory.MemoryManager memoryManager;
    descriptor: Lorg/glassfish/grizzly/memory/MemoryManager;
    flags: (0x0002) ACC_PRIVATE

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // org.glassfish.grizzly.AbstractTransformer this
         0: .line 35
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 29
            aload 0 /* this */
            getstatic org.glassfish.grizzly.Grizzly.DEFAULT_ATTRIBUTE_BUILDER:Lorg/glassfish/grizzly/attributes/AttributeBuilder;
            putfield org.glassfish.grizzly.AbstractTransformer.attributeBuilder:Lorg/glassfish/grizzly/attributes/AttributeBuilder;
         2: .line 36
            aload 0 /* this */
            invokevirtual org.glassfish.grizzly.AbstractTransformer.getNamePrefix:()Ljava/lang/String;
            astore 1 /* namePrefix */
        start local 1 // java.lang.String namePrefix
         3: .line 38
            aload 0 /* this */
            aload 0 /* this */
            getfield org.glassfish.grizzly.AbstractTransformer.attributeBuilder:Lorg/glassfish/grizzly/attributes/AttributeBuilder;
            new java.lang.StringBuilder
            dup
            aload 1 /* namePrefix */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ".state"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface org.glassfish.grizzly.attributes.AttributeBuilder.createAttribute:(Ljava/lang/String;)Lorg/glassfish/grizzly/attributes/Attribute;
            putfield org.glassfish.grizzly.AbstractTransformer.stateAttr:Lorg/glassfish/grizzly/attributes/Attribute;
         4: .line 39
            return
        end local 1 // java.lang.String namePrefix
        end local 0 // org.glassfish.grizzly.AbstractTransformer this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Lorg/glassfish/grizzly/AbstractTransformer<TK;TL;>;
            3    5     1  namePrefix  Ljava/lang/String;

  protected java.lang.String getNamePrefix();
    descriptor: ()Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.glassfish.grizzly.AbstractTransformer this
         0: .line 42
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            areturn
        end local 0 // org.glassfish.grizzly.AbstractTransformer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/glassfish/grizzly/AbstractTransformer<TK;TL;>;

  public final org.glassfish.grizzly.TransformationResult<K, L> transform(org.glassfish.grizzly.attributes.AttributeStorage, K);
    descriptor: (Lorg/glassfish/grizzly/attributes/AttributeStorage;Ljava/lang/Object;)Lorg/glassfish/grizzly/TransformationResult;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.glassfish.grizzly.AbstractTransformer this
        start local 1 // org.glassfish.grizzly.attributes.AttributeStorage storage
        start local 2 // java.lang.Object input
         0: .line 47
            aload 0 /* this */
            aload 1 /* storage */
            aload 0 /* this */
            aload 1 /* storage */
            aload 2 /* input */
            invokevirtual org.glassfish.grizzly.AbstractTransformer.transformImpl:(Lorg/glassfish/grizzly/attributes/AttributeStorage;Ljava/lang/Object;)Lorg/glassfish/grizzly/TransformationResult;
            invokevirtual org.glassfish.grizzly.AbstractTransformer.saveLastResult:(Lorg/glassfish/grizzly/attributes/AttributeStorage;Lorg/glassfish/grizzly/TransformationResult;)Lorg/glassfish/grizzly/TransformationResult;
            areturn
        end local 2 // java.lang.Object input
        end local 1 // org.glassfish.grizzly.attributes.AttributeStorage storage
        end local 0 // org.glassfish.grizzly.AbstractTransformer this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/glassfish/grizzly/AbstractTransformer<TK;TL;>;
            0    1     1  storage  Lorg/glassfish/grizzly/attributes/AttributeStorage;
            0    1     2    input  TK;
    Exceptions:
      throws org.glassfish.grizzly.TransformationException
    Signature: (Lorg/glassfish/grizzly/attributes/AttributeStorage;TK;)Lorg/glassfish/grizzly/TransformationResult<TK;TL;>;
    MethodParameters:
         Name  Flags
      storage  
      input    

  protected abstract org.glassfish.grizzly.TransformationResult<K, L> transformImpl(org.glassfish.grizzly.attributes.AttributeStorage, K);
    descriptor: (Lorg/glassfish/grizzly/attributes/AttributeStorage;Ljava/lang/Object;)Lorg/glassfish/grizzly/TransformationResult;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    Exceptions:
      throws org.glassfish.grizzly.TransformationException
    Signature: (Lorg/glassfish/grizzly/attributes/AttributeStorage;TK;)Lorg/glassfish/grizzly/TransformationResult<TK;TL;>;
    MethodParameters:
         Name  Flags
      storage  
      input    

  public final org.glassfish.grizzly.TransformationResult<K, L> getLastResult(org.glassfish.grizzly.attributes.AttributeStorage);
    descriptor: (Lorg/glassfish/grizzly/attributes/AttributeStorage;)Lorg/glassfish/grizzly/TransformationResult;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.glassfish.grizzly.AbstractTransformer this
        start local 1 // org.glassfish.grizzly.attributes.AttributeStorage storage
         0: .line 54
            aload 0 /* this */
            getfield org.glassfish.grizzly.AbstractTransformer.stateAttr:Lorg/glassfish/grizzly/attributes/Attribute;
            aload 1 /* storage */
            invokevirtual org.glassfish.grizzly.attributes.Attribute.get:(Lorg/glassfish/grizzly/attributes/AttributeStorage;)Ljava/lang/Object;
            checkcast org.glassfish.grizzly.AbstractTransformer$LastResultAwareState
            astore 2 /* state */
        start local 2 // org.glassfish.grizzly.AbstractTransformer$LastResultAwareState state
         1: .line 55
            aload 2 /* state */
            ifnull 3
         2: .line 56
            aload 2 /* state */
            invokevirtual org.glassfish.grizzly.AbstractTransformer$LastResultAwareState.getLastResult:()Lorg/glassfish/grizzly/TransformationResult;
            areturn
         3: .line 59
      StackMap locals: org.glassfish.grizzly.AbstractTransformer$LastResultAwareState
      StackMap stack:
            aconst_null
            areturn
        end local 2 // org.glassfish.grizzly.AbstractTransformer$LastResultAwareState state
        end local 1 // org.glassfish.grizzly.attributes.AttributeStorage storage
        end local 0 // org.glassfish.grizzly.AbstractTransformer this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lorg/glassfish/grizzly/AbstractTransformer<TK;TL;>;
            0    4     1  storage  Lorg/glassfish/grizzly/attributes/AttributeStorage;
            1    4     2    state  Lorg/glassfish/grizzly/AbstractTransformer$LastResultAwareState<TK;TL;>;
    Signature: (Lorg/glassfish/grizzly/attributes/AttributeStorage;)Lorg/glassfish/grizzly/TransformationResult<TK;TL;>;
    MethodParameters:
         Name  Flags
      storage  final

  protected final org.glassfish.grizzly.TransformationResult<K, L> saveLastResult(org.glassfish.grizzly.attributes.AttributeStorage, org.glassfish.grizzly.TransformationResult<K, L>);
    descriptor: (Lorg/glassfish/grizzly/attributes/AttributeStorage;Lorg/glassfish/grizzly/TransformationResult;)Lorg/glassfish/grizzly/TransformationResult;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.glassfish.grizzly.AbstractTransformer this
        start local 1 // org.glassfish.grizzly.attributes.AttributeStorage storage
        start local 2 // org.glassfish.grizzly.TransformationResult result
         0: .line 63
            aload 0 /* this */
            aload 1 /* storage */
            invokevirtual org.glassfish.grizzly.AbstractTransformer.obtainStateObject:(Lorg/glassfish/grizzly/attributes/AttributeStorage;)Lorg/glassfish/grizzly/AbstractTransformer$LastResultAwareState;
            aload 2 /* result */
            invokevirtual org.glassfish.grizzly.AbstractTransformer$LastResultAwareState.setLastResult:(Lorg/glassfish/grizzly/TransformationResult;)V
         1: .line 64
            aload 2 /* result */
            areturn
        end local 2 // org.glassfish.grizzly.TransformationResult result
        end local 1 // org.glassfish.grizzly.attributes.AttributeStorage storage
        end local 0 // org.glassfish.grizzly.AbstractTransformer this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/glassfish/grizzly/AbstractTransformer<TK;TL;>;
            0    2     1  storage  Lorg/glassfish/grizzly/attributes/AttributeStorage;
            0    2     2   result  Lorg/glassfish/grizzly/TransformationResult<TK;TL;>;
    Signature: (Lorg/glassfish/grizzly/attributes/AttributeStorage;Lorg/glassfish/grizzly/TransformationResult<TK;TL;>;)Lorg/glassfish/grizzly/TransformationResult<TK;TL;>;
    MethodParameters:
         Name  Flags
      storage  final
      result   final

  public void release(org.glassfish.grizzly.attributes.AttributeStorage);
    descriptor: (Lorg/glassfish/grizzly/attributes/AttributeStorage;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.glassfish.grizzly.AbstractTransformer this
        start local 1 // org.glassfish.grizzly.attributes.AttributeStorage storage
         0: .line 69
            aload 0 /* this */
            getfield org.glassfish.grizzly.AbstractTransformer.stateAttr:Lorg/glassfish/grizzly/attributes/Attribute;
            aload 1 /* storage */
            invokevirtual org.glassfish.grizzly.attributes.Attribute.remove:(Lorg/glassfish/grizzly/attributes/AttributeStorage;)Ljava/lang/Object;
            pop
         1: .line 70
            return
        end local 1 // org.glassfish.grizzly.attributes.AttributeStorage storage
        end local 0 // org.glassfish.grizzly.AbstractTransformer this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/glassfish/grizzly/AbstractTransformer<TK;TL;>;
            0    2     1  storage  Lorg/glassfish/grizzly/attributes/AttributeStorage;
    MethodParameters:
         Name  Flags
      storage  

  protected org.glassfish.grizzly.memory.MemoryManager obtainMemoryManager(org.glassfish.grizzly.attributes.AttributeStorage);
    descriptor: (Lorg/glassfish/grizzly/attributes/AttributeStorage;)Lorg/glassfish/grizzly/memory/MemoryManager;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=3, args_size=2
        start local 0 // org.glassfish.grizzly.AbstractTransformer this
        start local 1 // org.glassfish.grizzly.attributes.AttributeStorage storage
         0: .line 73
            aload 0 /* this */
            getfield org.glassfish.grizzly.AbstractTransformer.memoryManager:Lorg/glassfish/grizzly/memory/MemoryManager;
            ifnull 2
         1: .line 74
            aload 0 /* this */
            getfield org.glassfish.grizzly.AbstractTransformer.memoryManager:Lorg/glassfish/grizzly/memory/MemoryManager;
            areturn
         2: .line 77
      StackMap locals:
      StackMap stack:
            aload 1 /* storage */
            instanceof org.glassfish.grizzly.Connection
            ifeq 5
         3: .line 78
            aload 1 /* storage */
            checkcast org.glassfish.grizzly.Connection
            astore 2 /* connection */
        start local 2 // org.glassfish.grizzly.Connection connection
         4: .line 79
            aload 2 /* connection */
            invokeinterface org.glassfish.grizzly.Connection.getMemoryManager:()Lorg/glassfish/grizzly/memory/MemoryManager;
            areturn
        end local 2 // org.glassfish.grizzly.Connection connection
         5: .line 82
      StackMap locals:
      StackMap stack:
            getstatic org.glassfish.grizzly.memory.MemoryManager.DEFAULT_MEMORY_MANAGER:Lorg/glassfish/grizzly/memory/MemoryManager;
            areturn
        end local 1 // org.glassfish.grizzly.attributes.AttributeStorage storage
        end local 0 // org.glassfish.grizzly.AbstractTransformer this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lorg/glassfish/grizzly/AbstractTransformer<TK;TL;>;
            0    6     1     storage  Lorg/glassfish/grizzly/attributes/AttributeStorage;
            4    5     2  connection  Lorg/glassfish/grizzly/Connection;
    MethodParameters:
         Name  Flags
      storage  

  public org.glassfish.grizzly.memory.MemoryManager getMemoryManager();
    descriptor: ()Lorg/glassfish/grizzly/memory/MemoryManager;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.glassfish.grizzly.AbstractTransformer this
         0: .line 86
            aload 0 /* this */
            getfield org.glassfish.grizzly.AbstractTransformer.memoryManager:Lorg/glassfish/grizzly/memory/MemoryManager;
            areturn
        end local 0 // org.glassfish.grizzly.AbstractTransformer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/glassfish/grizzly/AbstractTransformer<TK;TL;>;

  public void setMemoryManager(org.glassfish.grizzly.memory.MemoryManager);
    descriptor: (Lorg/glassfish/grizzly/memory/MemoryManager;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.glassfish.grizzly.AbstractTransformer this
        start local 1 // org.glassfish.grizzly.memory.MemoryManager memoryManager
         0: .line 90
            aload 0 /* this */
            aload 1 /* memoryManager */
            putfield org.glassfish.grizzly.AbstractTransformer.memoryManager:Lorg/glassfish/grizzly/memory/MemoryManager;
         1: .line 91
            return
        end local 1 // org.glassfish.grizzly.memory.MemoryManager memoryManager
        end local 0 // org.glassfish.grizzly.AbstractTransformer this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lorg/glassfish/grizzly/AbstractTransformer<TK;TL;>;
            0    2     1  memoryManager  Lorg/glassfish/grizzly/memory/MemoryManager;
    MethodParameters:
               Name  Flags
      memoryManager  

  public static <T> T getValue(org.glassfish.grizzly.attributes.AttributeStorage, org.glassfish.grizzly.attributes.Attribute<T>, );
    descriptor: (Lorg/glassfish/grizzly/attributes/AttributeStorage;Lorg/glassfish/grizzly/attributes/Attribute;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // org.glassfish.grizzly.attributes.AttributeStorage storage
        start local 1 // org.glassfish.grizzly.attributes.Attribute attribute
        start local 2 // java.lang.Object defaultValue
         0: .line 94
            aload 1 /* attribute */
            aload 0 /* storage */
            invokevirtual org.glassfish.grizzly.attributes.Attribute.get:(Lorg/glassfish/grizzly/attributes/AttributeStorage;)Ljava/lang/Object;
            astore 3 /* value */
        start local 3 // java.lang.Object value
         1: .line 95
            aload 3 /* value */
            ifnull 3
         2: .line 96
            aload 3 /* value */
            areturn
         3: .line 99
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 2 /* defaultValue */
            areturn
        end local 3 // java.lang.Object value
        end local 2 // java.lang.Object defaultValue
        end local 1 // org.glassfish.grizzly.attributes.Attribute attribute
        end local 0 // org.glassfish.grizzly.attributes.AttributeStorage storage
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    4     0       storage  Lorg/glassfish/grizzly/attributes/AttributeStorage;
            0    4     1     attribute  Lorg/glassfish/grizzly/attributes/Attribute<TT;>;
            0    4     2  defaultValue  TT;
            1    4     3         value  TT;
    Signature: <T:Ljava/lang/Object;>(Lorg/glassfish/grizzly/attributes/AttributeStorage;Lorg/glassfish/grizzly/attributes/Attribute<TT;>;TT;)TT;
    MethodParameters:
              Name  Flags
      storage       final
      attribute     final
      defaultValue  final

  protected final org.glassfish.grizzly.AbstractTransformer$LastResultAwareState<K, L> obtainStateObject(org.glassfish.grizzly.attributes.AttributeStorage);
    descriptor: (Lorg/glassfish/grizzly/attributes/AttributeStorage;)Lorg/glassfish/grizzly/AbstractTransformer$LastResultAwareState;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.glassfish.grizzly.AbstractTransformer this
        start local 1 // org.glassfish.grizzly.attributes.AttributeStorage storage
         0: .line 104
            aload 0 /* this */
            getfield org.glassfish.grizzly.AbstractTransformer.stateAttr:Lorg/glassfish/grizzly/attributes/Attribute;
            aload 1 /* storage */
            invokevirtual org.glassfish.grizzly.attributes.Attribute.get:(Lorg/glassfish/grizzly/attributes/AttributeStorage;)Ljava/lang/Object;
            checkcast org.glassfish.grizzly.AbstractTransformer$LastResultAwareState
            astore 2 /* value */
        start local 2 // org.glassfish.grizzly.AbstractTransformer$LastResultAwareState value
         1: .line 105
            aload 2 /* value */
            ifnonnull 4
         2: .line 106
            aload 0 /* this */
            invokevirtual org.glassfish.grizzly.AbstractTransformer.createStateObject:()Lorg/glassfish/grizzly/AbstractTransformer$LastResultAwareState;
            astore 2 /* value */
         3: .line 107
            aload 0 /* this */
            getfield org.glassfish.grizzly.AbstractTransformer.stateAttr:Lorg/glassfish/grizzly/attributes/Attribute;
            aload 1 /* storage */
            aload 2 /* value */
            invokevirtual org.glassfish.grizzly.attributes.Attribute.set:(Lorg/glassfish/grizzly/attributes/AttributeStorage;Ljava/lang/Object;)V
         4: .line 110
      StackMap locals: org.glassfish.grizzly.AbstractTransformer$LastResultAwareState
      StackMap stack:
            aload 2 /* value */
            areturn
        end local 2 // org.glassfish.grizzly.AbstractTransformer$LastResultAwareState value
        end local 1 // org.glassfish.grizzly.attributes.AttributeStorage storage
        end local 0 // org.glassfish.grizzly.AbstractTransformer this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Lorg/glassfish/grizzly/AbstractTransformer<TK;TL;>;
            0    5     1  storage  Lorg/glassfish/grizzly/attributes/AttributeStorage;
            1    5     2    value  Lorg/glassfish/grizzly/AbstractTransformer$LastResultAwareState<TK;TL;>;
    Signature: (Lorg/glassfish/grizzly/attributes/AttributeStorage;)Lorg/glassfish/grizzly/AbstractTransformer$LastResultAwareState<TK;TL;>;
    MethodParameters:
         Name  Flags
      storage  final

  protected org.glassfish.grizzly.AbstractTransformer$LastResultAwareState<K, L> createStateObject();
    descriptor: ()Lorg/glassfish/grizzly/AbstractTransformer$LastResultAwareState;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.glassfish.grizzly.AbstractTransformer this
         0: .line 114
            new org.glassfish.grizzly.AbstractTransformer$LastResultAwareState
            dup
            invokespecial org.glassfish.grizzly.AbstractTransformer$LastResultAwareState.<init>:()V
            areturn
        end local 0 // org.glassfish.grizzly.AbstractTransformer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/glassfish/grizzly/AbstractTransformer<TK;TL;>;
    Signature: ()Lorg/glassfish/grizzly/AbstractTransformer$LastResultAwareState<TK;TL;>;
}
Signature: <K:Ljava/lang/Object;L:Ljava/lang/Object;>Ljava/lang/Object;Lorg/glassfish/grizzly/Transformer<TK;TL;>;
SourceFile: "AbstractTransformer.java"
NestMembers:
  org.glassfish.grizzly.AbstractTransformer$LastResultAwareState
InnerClasses:
  public LastResultAwareState = org.glassfish.grizzly.AbstractTransformer$LastResultAwareState of org.glassfish.grizzly.AbstractTransformer