final class jdk.jfr.consumer.ParserFactory
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: jdk.jfr.consumer.ParserFactory
  super_class: java.lang.Object
{
  private final jdk.jfr.consumer.LongMap<jdk.jfr.consumer.Parser> parsers;
    descriptor: Ljdk/jfr/consumer/LongMap;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljdk/jfr/consumer/LongMap<Ljdk/jfr/consumer/Parser;>;

  private final jdk.jfr.consumer.TimeConverter timeConverter;
    descriptor: Ljdk/jfr/consumer/TimeConverter;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final jdk.jfr.consumer.LongMap<jdk.jfr.internal.Type> types;
    descriptor: Ljdk/jfr/consumer/LongMap;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljdk/jfr/consumer/LongMap<Ljdk/jfr/internal/Type;>;

  private final jdk.jfr.consumer.LongMap<jdk.jfr.consumer.ConstantMap> constantPools;
    descriptor: Ljdk/jfr/consumer/LongMap;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljdk/jfr/consumer/LongMap<Ljdk/jfr/consumer/ConstantMap;>;

  public void <init>(jdk.jfr.internal.MetadataDescriptor, jdk.jfr.consumer.TimeConverter);
    descriptor: (Ljdk/jfr/internal/MetadataDescriptor;Ljdk/jfr/consumer/TimeConverter;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=3
        start local 0 // jdk.jfr.consumer.ParserFactory this
        start local 1 // jdk.jfr.internal.MetadataDescriptor metadata
        start local 2 // jdk.jfr.consumer.TimeConverter timeConverter
         0: .line 49
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 44
            aload 0 /* this */
            new jdk.jfr.consumer.LongMap
            dup
            invokespecial jdk.jfr.consumer.LongMap.<init>:()V
            putfield jdk.jfr.consumer.ParserFactory.parsers:Ljdk/jfr/consumer/LongMap;
         2: .line 46
            aload 0 /* this */
            new jdk.jfr.consumer.LongMap
            dup
            invokespecial jdk.jfr.consumer.LongMap.<init>:()V
            putfield jdk.jfr.consumer.ParserFactory.types:Ljdk/jfr/consumer/LongMap;
         3: .line 50
            aload 0 /* this */
            new jdk.jfr.consumer.LongMap
            dup
            invokespecial jdk.jfr.consumer.LongMap.<init>:()V
            putfield jdk.jfr.consumer.ParserFactory.constantPools:Ljdk/jfr/consumer/LongMap;
         4: .line 51
            aload 0 /* this */
            aload 2 /* timeConverter */
            putfield jdk.jfr.consumer.ParserFactory.timeConverter:Ljdk/jfr/consumer/TimeConverter;
         5: .line 52
            aload 1 /* metadata */
            invokevirtual jdk.jfr.internal.MetadataDescriptor.getTypes:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 4
            goto 8
      StackMap locals: jdk.jfr.consumer.ParserFactory jdk.jfr.internal.MetadataDescriptor jdk.jfr.consumer.TimeConverter top java.util.Iterator
      StackMap stack:
         6: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast jdk.jfr.internal.Type
            astore 3 /* t */
        start local 3 // jdk.jfr.internal.Type t
         7: .line 53
            aload 0 /* this */
            getfield jdk.jfr.consumer.ParserFactory.types:Ljdk/jfr/consumer/LongMap;
            aload 3 /* t */
            invokevirtual jdk.jfr.internal.Type.getId:()J
            aload 3 /* t */
            invokevirtual jdk.jfr.consumer.LongMap.put:(JLjava/lang/Object;)V
        end local 3 // jdk.jfr.internal.Type t
         8: .line 52
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
         9: .line 55
            aload 0 /* this */
            getfield jdk.jfr.consumer.ParserFactory.types:Ljdk/jfr/consumer/LongMap;
            invokevirtual jdk.jfr.consumer.LongMap.iterator:()Ljava/util/Iterator;
            astore 4
            goto 15
      StackMap locals:
      StackMap stack:
        10: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast jdk.jfr.internal.Type
            astore 3 /* t */
        start local 3 // jdk.jfr.internal.Type t
        11: .line 56
            aload 3 /* t */
            invokevirtual jdk.jfr.internal.Type.getFields:()Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            ifne 15
        12: .line 57
            aload 0 /* this */
            aload 3 /* t */
            invokevirtual jdk.jfr.consumer.ParserFactory.createCompositeParser:(Ljdk/jfr/internal/Type;)Ljdk/jfr/consumer/ParserFactory$CompositeParser;
            astore 5 /* cp */
        start local 5 // jdk.jfr.consumer.ParserFactory$CompositeParser cp
        13: .line 58
            aload 3 /* t */
            invokevirtual jdk.jfr.internal.Type.isSimpleType:()Z
            ifeq 15
        14: .line 59
            aload 0 /* this */
            getfield jdk.jfr.consumer.ParserFactory.parsers:Ljdk/jfr/consumer/LongMap;
            aload 3 /* t */
            invokevirtual jdk.jfr.internal.Type.getId:()J
            aload 5 /* cp */
            getfield jdk.jfr.consumer.ParserFactory$CompositeParser.parsers:[Ljdk/jfr/consumer/Parser;
            iconst_0
            aaload
            invokevirtual jdk.jfr.consumer.LongMap.put:(JLjava/lang/Object;)V
        end local 5 // jdk.jfr.consumer.ParserFactory$CompositeParser cp
        end local 3 // jdk.jfr.internal.Type t
        15: .line 55
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 10
        16: .line 65
            aload 1 /* metadata */
            invokevirtual jdk.jfr.internal.MetadataDescriptor.getEventTypes:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 19
      StackMap locals:
      StackMap stack:
        17: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast jdk.jfr.EventType
            astore 3 /* t */
        start local 3 // jdk.jfr.EventType t
        18: .line 66
            aload 0 /* this */
            getfield jdk.jfr.consumer.ParserFactory.parsers:Ljdk/jfr/consumer/LongMap;
            aload 3 /* t */
            invokevirtual jdk.jfr.EventType.getId:()J
            aload 0 /* this */
            aload 3 /* t */
            invokevirtual jdk.jfr.consumer.ParserFactory.createEventParser:(Ljdk/jfr/EventType;)Ljdk/jfr/consumer/EventParser;
            invokevirtual jdk.jfr.consumer.LongMap.put:(JLjava/lang/Object;)V
        end local 3 // jdk.jfr.EventType t
        19: .line 65
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 17
        20: .line 68
            return
        end local 2 // jdk.jfr.consumer.TimeConverter timeConverter
        end local 1 // jdk.jfr.internal.MetadataDescriptor metadata
        end local 0 // jdk.jfr.consumer.ParserFactory this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   21     0           this  Ljdk/jfr/consumer/ParserFactory;
            0   21     1       metadata  Ljdk/jfr/internal/MetadataDescriptor;
            0   21     2  timeConverter  Ljdk/jfr/consumer/TimeConverter;
            7    8     3              t  Ljdk/jfr/internal/Type;
           11   15     3              t  Ljdk/jfr/internal/Type;
           13   15     5             cp  Ljdk/jfr/consumer/ParserFactory$CompositeParser;
           18   19     3              t  Ljdk/jfr/EventType;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
               Name  Flags
      metadata       
      timeConverter  

  public jdk.jfr.consumer.LongMap<jdk.jfr.consumer.Parser> getParsers();
    descriptor: ()Ljdk/jfr/consumer/LongMap;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.jfr.consumer.ParserFactory this
         0: .line 71
            aload 0 /* this */
            getfield jdk.jfr.consumer.ParserFactory.parsers:Ljdk/jfr/consumer/LongMap;
            areturn
        end local 0 // jdk.jfr.consumer.ParserFactory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/jfr/consumer/ParserFactory;
    Signature: ()Ljdk/jfr/consumer/LongMap<Ljdk/jfr/consumer/Parser;>;

  public jdk.jfr.consumer.LongMap<jdk.jfr.consumer.ConstantMap> getConstantPools();
    descriptor: ()Ljdk/jfr/consumer/LongMap;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.jfr.consumer.ParserFactory this
         0: .line 75
            aload 0 /* this */
            getfield jdk.jfr.consumer.ParserFactory.constantPools:Ljdk/jfr/consumer/LongMap;
            areturn
        end local 0 // jdk.jfr.consumer.ParserFactory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/jfr/consumer/ParserFactory;
    Signature: ()Ljdk/jfr/consumer/LongMap<Ljdk/jfr/consumer/ConstantMap;>;

  public jdk.jfr.consumer.LongMap<jdk.jfr.internal.Type> getTypeMap();
    descriptor: ()Ljdk/jfr/consumer/LongMap;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.jfr.consumer.ParserFactory this
         0: .line 79
            aload 0 /* this */
            getfield jdk.jfr.consumer.ParserFactory.types:Ljdk/jfr/consumer/LongMap;
            areturn
        end local 0 // jdk.jfr.consumer.ParserFactory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/jfr/consumer/ParserFactory;
    Signature: ()Ljdk/jfr/consumer/LongMap<Ljdk/jfr/internal/Type;>;

  private jdk.jfr.consumer.EventParser createEventParser(jdk.jfr.EventType);
    descriptor: (Ljdk/jfr/EventType;)Ljdk/jfr/consumer/EventParser;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=5, args_size=2
        start local 0 // jdk.jfr.consumer.ParserFactory this
        start local 1 // jdk.jfr.EventType eventType
         0: .line 83
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* parsers */
        start local 2 // java.util.List parsers
         1: .line 84
            aload 1 /* eventType */
            invokevirtual jdk.jfr.EventType.getFields:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 4
      StackMap locals: jdk.jfr.consumer.ParserFactory jdk.jfr.EventType java.util.List top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast jdk.jfr.ValueDescriptor
            astore 3 /* f */
        start local 3 // jdk.jfr.ValueDescriptor f
         3: .line 85
            aload 2 /* parsers */
            aload 0 /* this */
            aload 3 /* f */
            invokevirtual jdk.jfr.consumer.ParserFactory.createParser:(Ljdk/jfr/ValueDescriptor;)Ljdk/jfr/consumer/Parser;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 3 // jdk.jfr.ValueDescriptor f
         4: .line 84
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 87
            new jdk.jfr.consumer.EventParser
            dup
            aload 0 /* this */
            getfield jdk.jfr.consumer.ParserFactory.timeConverter:Ljdk/jfr/consumer/TimeConverter;
            aload 1 /* eventType */
            aload 2 /* parsers */
            iconst_0
            anewarray jdk.jfr.consumer.Parser
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast jdk.jfr.consumer.Parser[]
            invokespecial jdk.jfr.consumer.EventParser.<init>:(Ljdk/jfr/consumer/TimeConverter;Ljdk/jfr/EventType;[Ljdk/jfr/consumer/Parser;)V
            areturn
        end local 2 // java.util.List parsers
        end local 1 // jdk.jfr.EventType eventType
        end local 0 // jdk.jfr.consumer.ParserFactory this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0       this  Ljdk/jfr/consumer/ParserFactory;
            0    6     1  eventType  Ljdk/jfr/EventType;
            1    6     2    parsers  Ljava/util/List<Ljdk/jfr/consumer/Parser;>;
            3    4     3          f  Ljdk/jfr/ValueDescriptor;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
           Name  Flags
      eventType  

  private jdk.jfr.consumer.Parser createParser(jdk.jfr.ValueDescriptor);
    descriptor: (Ljdk/jfr/ValueDescriptor;)Ljdk/jfr/consumer/Parser;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=7, args_size=2
        start local 0 // jdk.jfr.consumer.ParserFactory this
        start local 1 // jdk.jfr.ValueDescriptor v
         0: .line 91
            invokestatic jdk.jfr.internal.PrivateAccess.getInstance:()Ljdk/jfr/internal/PrivateAccess;
            aload 1 /* v */
            invokevirtual jdk.jfr.internal.PrivateAccess.isConstantPool:(Ljdk/jfr/ValueDescriptor;)Z
            istore 2 /* constantPool */
        start local 2 // boolean constantPool
         1: .line 92
            aload 1 /* v */
            invokevirtual jdk.jfr.ValueDescriptor.isArray:()Z
            ifeq 5
         2: .line 93
            invokestatic jdk.jfr.internal.PrivateAccess.getInstance:()Ljdk/jfr/internal/PrivateAccess;
            aload 1 /* v */
            invokevirtual jdk.jfr.internal.PrivateAccess.getType:(Ljava/lang/Object;)Ljdk/jfr/internal/Type;
            astore 3 /* valueType */
        start local 3 // jdk.jfr.internal.Type valueType
         3: .line 94
            invokestatic jdk.jfr.internal.PrivateAccess.getInstance:()Ljdk/jfr/internal/PrivateAccess;
            aload 1 /* v */
            invokevirtual jdk.jfr.ValueDescriptor.getName:()Ljava/lang/String;
            aload 3 /* valueType */
            aload 1 /* v */
            invokevirtual jdk.jfr.ValueDescriptor.getAnnotationElements:()Ljava/util/List;
            iconst_0
            iload 2 /* constantPool */
            aconst_null
            invokevirtual jdk.jfr.internal.PrivateAccess.newValueDescriptor:(Ljava/lang/String;Ljdk/jfr/internal/Type;Ljava/util/List;IZLjava/lang/String;)Ljdk/jfr/ValueDescriptor;
            astore 4 /* element */
        start local 4 // jdk.jfr.ValueDescriptor element
         4: .line 95
            new jdk.jfr.consumer.ParserFactory$ArrayParser
            dup
            aload 0 /* this */
            aload 4 /* element */
            invokevirtual jdk.jfr.consumer.ParserFactory.createParser:(Ljdk/jfr/ValueDescriptor;)Ljdk/jfr/consumer/Parser;
            invokespecial jdk.jfr.consumer.ParserFactory$ArrayParser.<init>:(Ljdk/jfr/consumer/Parser;)V
            areturn
        end local 4 // jdk.jfr.ValueDescriptor element
        end local 3 // jdk.jfr.internal.Type valueType
         5: .line 97
      StackMap locals: int
      StackMap stack:
            aload 1 /* v */
            invokevirtual jdk.jfr.ValueDescriptor.getTypeId:()J
            lstore 3 /* id */
        start local 3 // long id
         6: .line 98
            aload 0 /* this */
            getfield jdk.jfr.consumer.ParserFactory.types:Ljdk/jfr/consumer/LongMap;
            lload 3 /* id */
            invokevirtual jdk.jfr.consumer.LongMap.get:(J)Ljava/lang/Object;
            checkcast jdk.jfr.internal.Type
            astore 5 /* type */
        start local 5 // jdk.jfr.internal.Type type
         7: .line 99
            aload 5 /* type */
            ifnonnull 9
         8: .line 100
            new java.io.IOException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Type '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* v */
            invokevirtual jdk.jfr.ValueDescriptor.getTypeName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "' is not defined"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 102
      StackMap locals: long jdk.jfr.internal.Type
      StackMap stack:
            iload 2 /* constantPool */
            ifeq 15
        10: .line 103
            aload 0 /* this */
            getfield jdk.jfr.consumer.ParserFactory.constantPools:Ljdk/jfr/consumer/LongMap;
            lload 3 /* id */
            invokevirtual jdk.jfr.consumer.LongMap.get:(J)Ljava/lang/Object;
            checkcast jdk.jfr.consumer.ConstantMap
            astore 6 /* pool */
        start local 6 // jdk.jfr.consumer.ConstantMap pool
        11: .line 104
            aload 6 /* pool */
            ifnonnull 14
        12: .line 105
            new jdk.jfr.consumer.ConstantMap
            dup
            aload 5 /* type */
            aload 0 /* this */
            getfield jdk.jfr.consumer.ParserFactory.timeConverter:Ljdk/jfr/consumer/TimeConverter;
            invokestatic jdk.jfr.consumer.ObjectFactory.create:(Ljdk/jfr/internal/Type;Ljdk/jfr/consumer/TimeConverter;)Ljdk/jfr/consumer/ObjectFactory;
            aload 5 /* type */
            invokevirtual jdk.jfr.internal.Type.getName:()Ljava/lang/String;
            invokespecial jdk.jfr.consumer.ConstantMap.<init>:(Ljdk/jfr/consumer/ObjectFactory;Ljava/lang/String;)V
            astore 6 /* pool */
        13: .line 106
            aload 0 /* this */
            getfield jdk.jfr.consumer.ParserFactory.constantPools:Ljdk/jfr/consumer/LongMap;
            lload 3 /* id */
            aload 6 /* pool */
            invokevirtual jdk.jfr.consumer.LongMap.put:(JLjava/lang/Object;)V
        14: .line 108
      StackMap locals: jdk.jfr.consumer.ConstantMap
      StackMap stack:
            new jdk.jfr.consumer.ParserFactory$ConstantMapValueParser
            dup
            aload 6 /* pool */
            invokespecial jdk.jfr.consumer.ParserFactory$ConstantMapValueParser.<init>:(Ljdk/jfr/consumer/ConstantMap;)V
            areturn
        end local 6 // jdk.jfr.consumer.ConstantMap pool
        15: .line 110
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.jfr.consumer.ParserFactory.parsers:Ljdk/jfr/consumer/LongMap;
            lload 3 /* id */
            invokevirtual jdk.jfr.consumer.LongMap.get:(J)Ljava/lang/Object;
            checkcast jdk.jfr.consumer.Parser
            astore 6 /* parser */
        start local 6 // jdk.jfr.consumer.Parser parser
        16: .line 111
            aload 6 /* parser */
            ifnonnull 20
        17: .line 112
            aload 1 /* v */
            invokevirtual jdk.jfr.ValueDescriptor.getFields:()Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            ifne 19
        18: .line 113
            aload 0 /* this */
            aload 5 /* type */
            invokevirtual jdk.jfr.consumer.ParserFactory.createCompositeParser:(Ljdk/jfr/internal/Type;)Ljdk/jfr/consumer/ParserFactory$CompositeParser;
            areturn
        19: .line 115
      StackMap locals: jdk.jfr.consumer.Parser
      StackMap stack:
            aload 0 /* this */
            aload 5 /* type */
            aload 0 /* this */
            aload 5 /* type */
            invokevirtual jdk.jfr.consumer.ParserFactory.createPrimitiveParser:(Ljdk/jfr/internal/Type;)Ljdk/jfr/consumer/Parser;
            invokevirtual jdk.jfr.consumer.ParserFactory.registerParserType:(Ljdk/jfr/internal/Type;Ljdk/jfr/consumer/Parser;)Ljdk/jfr/consumer/Parser;
            areturn
        20: .line 118
      StackMap locals:
      StackMap stack:
            aload 6 /* parser */
            areturn
        end local 6 // jdk.jfr.consumer.Parser parser
        end local 5 // jdk.jfr.internal.Type type
        end local 3 // long id
        end local 2 // boolean constantPool
        end local 1 // jdk.jfr.ValueDescriptor v
        end local 0 // jdk.jfr.consumer.ParserFactory this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   21     0          this  Ljdk/jfr/consumer/ParserFactory;
            0   21     1             v  Ljdk/jfr/ValueDescriptor;
            1   21     2  constantPool  Z
            3    5     3     valueType  Ljdk/jfr/internal/Type;
            4    5     4       element  Ljdk/jfr/ValueDescriptor;
            6   21     3            id  J
            7   21     5          type  Ljdk/jfr/internal/Type;
           11   15     6          pool  Ljdk/jfr/consumer/ConstantMap;
           16   21     6        parser  Ljdk/jfr/consumer/Parser;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      v     

  private jdk.jfr.consumer.Parser createPrimitiveParser(jdk.jfr.internal.Type);
    descriptor: (Ljdk/jfr/internal/Type;)Ljdk/jfr/consumer/Parser;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // jdk.jfr.consumer.ParserFactory this
        start local 1 // jdk.jfr.internal.Type type
         0: .line 122
            aload 1 /* type */
            invokevirtual jdk.jfr.internal.Type.getName:()Ljava/lang/String;
            dup
            astore 2
            invokevirtual java.lang.String.hashCode:()I
            lookupswitch { // 9
          -1325958191: 1
               104431: 2
              3039496: 3
              3052374: 4
              3327612: 5
             64711720: 6
             97526364: 7
            109413500: 8
           1195259493: 9
              default: 21
          }
      StackMap locals: java.lang.String
      StackMap stack:
         1: aload 2
            ldc "double"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 13
            goto 21
      StackMap locals:
      StackMap stack:
         2: aload 2
            ldc "int"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 10
            goto 21
      StackMap locals:
      StackMap stack:
         3: aload 2
            ldc "byte"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 17
            goto 21
      StackMap locals:
      StackMap stack:
         4: aload 2
            ldc "char"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 14
            goto 21
      StackMap locals:
      StackMap stack:
         5: aload 2
            ldc "long"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 11
            goto 21
      StackMap locals:
      StackMap stack:
         6: aload 2
            ldc "boolean"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 15
            goto 21
      StackMap locals:
      StackMap stack:
         7: aload 2
            ldc "float"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 12
            goto 21
      StackMap locals:
      StackMap stack:
         8: aload 2
            ldc "short"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 16
            goto 21
      StackMap locals:
      StackMap stack:
         9: aload 2
            ldc "java.lang.String"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 18
            goto 21
        10: .line 124
      StackMap locals:
      StackMap stack:
            new jdk.jfr.consumer.ParserFactory$IntegerParser
            dup
            invokespecial jdk.jfr.consumer.ParserFactory$IntegerParser.<init>:()V
            areturn
        11: .line 126
      StackMap locals:
      StackMap stack:
            new jdk.jfr.consumer.ParserFactory$LongParser
            dup
            invokespecial jdk.jfr.consumer.ParserFactory$LongParser.<init>:()V
            areturn
        12: .line 128
      StackMap locals:
      StackMap stack:
            new jdk.jfr.consumer.ParserFactory$FloatParser
            dup
            invokespecial jdk.jfr.consumer.ParserFactory$FloatParser.<init>:()V
            areturn
        13: .line 130
      StackMap locals:
      StackMap stack:
            new jdk.jfr.consumer.ParserFactory$DoubleParser
            dup
            invokespecial jdk.jfr.consumer.ParserFactory$DoubleParser.<init>:()V
            areturn
        14: .line 132
      StackMap locals:
      StackMap stack:
            new jdk.jfr.consumer.ParserFactory$CharacterParser
            dup
            invokespecial jdk.jfr.consumer.ParserFactory$CharacterParser.<init>:()V
            areturn
        15: .line 134
      StackMap locals:
      StackMap stack:
            new jdk.jfr.consumer.ParserFactory$BooleanParser
            dup
            invokespecial jdk.jfr.consumer.ParserFactory$BooleanParser.<init>:()V
            areturn
        16: .line 136
      StackMap locals:
      StackMap stack:
            new jdk.jfr.consumer.ParserFactory$ShortParser
            dup
            invokespecial jdk.jfr.consumer.ParserFactory$ShortParser.<init>:()V
            areturn
        17: .line 138
      StackMap locals:
      StackMap stack:
            new jdk.jfr.consumer.ParserFactory$ByteParser
            dup
            invokespecial jdk.jfr.consumer.ParserFactory$ByteParser.<init>:()V
            areturn
        18: .line 140
      StackMap locals:
      StackMap stack:
            new jdk.jfr.consumer.ConstantMap
            dup
            aload 1 /* type */
            aload 0 /* this */
            getfield jdk.jfr.consumer.ParserFactory.timeConverter:Ljdk/jfr/consumer/TimeConverter;
            invokestatic jdk.jfr.consumer.ObjectFactory.create:(Ljdk/jfr/internal/Type;Ljdk/jfr/consumer/TimeConverter;)Ljdk/jfr/consumer/ObjectFactory;
            aload 1 /* type */
            invokevirtual jdk.jfr.internal.Type.getName:()Ljava/lang/String;
            invokespecial jdk.jfr.consumer.ConstantMap.<init>:(Ljdk/jfr/consumer/ObjectFactory;Ljava/lang/String;)V
            astore 3 /* pool */
        start local 3 // jdk.jfr.consumer.ConstantMap pool
        19: .line 141
            aload 0 /* this */
            getfield jdk.jfr.consumer.ParserFactory.constantPools:Ljdk/jfr/consumer/LongMap;
            aload 1 /* type */
            invokevirtual jdk.jfr.internal.Type.getId:()J
            aload 3 /* pool */
            invokevirtual jdk.jfr.consumer.LongMap.put:(JLjava/lang/Object;)V
        20: .line 142
            new jdk.jfr.consumer.ParserFactory$StringParser
            dup
            aload 3 /* pool */
            invokespecial jdk.jfr.consumer.ParserFactory$StringParser.<init>:(Ljdk/jfr/consumer/ConstantMap;)V
            areturn
        end local 3 // jdk.jfr.consumer.ConstantMap pool
        21: .line 144
      StackMap locals:
      StackMap stack:
            new java.io.IOException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unknown primitive type "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* type */
            invokevirtual jdk.jfr.internal.Type.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // jdk.jfr.internal.Type type
        end local 0 // jdk.jfr.consumer.ParserFactory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   22     0  this  Ljdk/jfr/consumer/ParserFactory;
            0   22     1  type  Ljdk/jfr/internal/Type;
           19   21     3  pool  Ljdk/jfr/consumer/ConstantMap;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      type  

  private jdk.jfr.consumer.Parser registerParserType(jdk.jfr.internal.Type, jdk.jfr.consumer.Parser);
    descriptor: (Ljdk/jfr/internal/Type;Ljdk/jfr/consumer/Parser;)Ljdk/jfr/consumer/Parser;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // jdk.jfr.consumer.ParserFactory this
        start local 1 // jdk.jfr.internal.Type t
        start local 2 // jdk.jfr.consumer.Parser parser
         0: .line 149
            aload 0 /* this */
            getfield jdk.jfr.consumer.ParserFactory.parsers:Ljdk/jfr/consumer/LongMap;
            aload 1 /* t */
            invokevirtual jdk.jfr.internal.Type.getId:()J
            invokevirtual jdk.jfr.consumer.LongMap.get:(J)Ljava/lang/Object;
            checkcast jdk.jfr.consumer.Parser
            astore 3 /* p */
        start local 3 // jdk.jfr.consumer.Parser p
         1: .line 151
            aload 3 /* p */
            ifnull 3
         2: .line 152
            aload 3 /* p */
            areturn
         3: .line 154
      StackMap locals: jdk.jfr.consumer.Parser
      StackMap stack:
            aload 0 /* this */
            getfield jdk.jfr.consumer.ParserFactory.parsers:Ljdk/jfr/consumer/LongMap;
            aload 1 /* t */
            invokevirtual jdk.jfr.internal.Type.getId:()J
            aload 2 /* parser */
            invokevirtual jdk.jfr.consumer.LongMap.put:(JLjava/lang/Object;)V
         4: .line 155
            aload 2 /* parser */
            areturn
        end local 3 // jdk.jfr.consumer.Parser p
        end local 2 // jdk.jfr.consumer.Parser parser
        end local 1 // jdk.jfr.internal.Type t
        end local 0 // jdk.jfr.consumer.ParserFactory this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Ljdk/jfr/consumer/ParserFactory;
            0    5     1       t  Ljdk/jfr/internal/Type;
            0    5     2  parser  Ljdk/jfr/consumer/Parser;
            1    5     3       p  Ljdk/jfr/consumer/Parser;
    MethodParameters:
        Name  Flags
      t       
      parser  

  private jdk.jfr.consumer.ParserFactory$CompositeParser createCompositeParser(jdk.jfr.internal.Type);
    descriptor: (Ljdk/jfr/internal/Type;)Ljdk/jfr/consumer/ParserFactory$CompositeParser;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=8, args_size=2
        start local 0 // jdk.jfr.consumer.ParserFactory this
        start local 1 // jdk.jfr.internal.Type type
         0: .line 159
            aload 1 /* type */
            invokevirtual jdk.jfr.internal.Type.getFields:()Ljava/util/List;
            astore 2 /* vds */
        start local 2 // java.util.List vds
         1: .line 160
            aload 2 /* vds */
            invokeinterface java.util.List.size:()I
            anewarray jdk.jfr.consumer.Parser
            astore 3 /* parsers */
        start local 3 // jdk.jfr.consumer.Parser[] parsers
         2: .line 161
            new jdk.jfr.consumer.ParserFactory$CompositeParser
            dup
            aload 3 /* parsers */
            invokespecial jdk.jfr.consumer.ParserFactory$CompositeParser.<init>:([Ljdk/jfr/consumer/Parser;)V
            astore 4 /* composite */
        start local 4 // jdk.jfr.consumer.ParserFactory$CompositeParser composite
         3: .line 163
            aload 0 /* this */
            aload 1 /* type */
            aload 4 /* composite */
            invokevirtual jdk.jfr.consumer.ParserFactory.registerParserType:(Ljdk/jfr/internal/Type;Ljdk/jfr/consumer/Parser;)Ljdk/jfr/consumer/Parser;
            pop
         4: .line 165
            iconst_0
            istore 5 /* index */
        start local 5 // int index
         5: .line 166
            aload 2 /* vds */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 7
            goto 8
      StackMap locals: jdk.jfr.consumer.ParserFactory jdk.jfr.internal.Type java.util.List jdk.jfr.consumer.Parser[] jdk.jfr.consumer.ParserFactory$CompositeParser int top java.util.Iterator
      StackMap stack:
         6: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast jdk.jfr.ValueDescriptor
            astore 6 /* vd */
        start local 6 // jdk.jfr.ValueDescriptor vd
         7: .line 167
            aload 3 /* parsers */
            iload 5 /* index */
            iinc 5 /* index */ 1
            aload 0 /* this */
            aload 6 /* vd */
            invokevirtual jdk.jfr.consumer.ParserFactory.createParser:(Ljdk/jfr/ValueDescriptor;)Ljdk/jfr/consumer/Parser;
            aastore
        end local 6 // jdk.jfr.ValueDescriptor vd
         8: .line 166
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
         9: .line 169
            aload 4 /* composite */
            areturn
        end local 5 // int index
        end local 4 // jdk.jfr.consumer.ParserFactory$CompositeParser composite
        end local 3 // jdk.jfr.consumer.Parser[] parsers
        end local 2 // java.util.List vds
        end local 1 // jdk.jfr.internal.Type type
        end local 0 // jdk.jfr.consumer.ParserFactory this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   10     0       this  Ljdk/jfr/consumer/ParserFactory;
            0   10     1       type  Ljdk/jfr/internal/Type;
            1   10     2        vds  Ljava/util/List<Ljdk/jfr/ValueDescriptor;>;
            2   10     3    parsers  [Ljdk/jfr/consumer/Parser;
            3   10     4  composite  Ljdk/jfr/consumer/ParserFactory$CompositeParser;
            5   10     5      index  I
            7    8     6         vd  Ljdk/jfr/ValueDescriptor;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      type  
}
SourceFile: "ParserFactory.java"
NestMembers:
  jdk.jfr.consumer.ParserFactory$ArrayParser  jdk.jfr.consumer.ParserFactory$BooleanParser  jdk.jfr.consumer.ParserFactory$ByteParser  jdk.jfr.consumer.ParserFactory$CharacterParser  jdk.jfr.consumer.ParserFactory$CompositeParser  jdk.jfr.consumer.ParserFactory$ConstantMapValueParser  jdk.jfr.consumer.ParserFactory$DoubleParser  jdk.jfr.consumer.ParserFactory$FloatParser  jdk.jfr.consumer.ParserFactory$IntegerParser  jdk.jfr.consumer.ParserFactory$LongParser  jdk.jfr.consumer.ParserFactory$ShortParser  jdk.jfr.consumer.ParserFactory$StringParser
InnerClasses:
  private final ArrayParser = jdk.jfr.consumer.ParserFactory$ArrayParser of jdk.jfr.consumer.ParserFactory
  private final BooleanParser = jdk.jfr.consumer.ParserFactory$BooleanParser of jdk.jfr.consumer.ParserFactory
  private final ByteParser = jdk.jfr.consumer.ParserFactory$ByteParser of jdk.jfr.consumer.ParserFactory
  private final CharacterParser = jdk.jfr.consumer.ParserFactory$CharacterParser of jdk.jfr.consumer.ParserFactory
  private final CompositeParser = jdk.jfr.consumer.ParserFactory$CompositeParser of jdk.jfr.consumer.ParserFactory
  private final ConstantMapValueParser = jdk.jfr.consumer.ParserFactory$ConstantMapValueParser of jdk.jfr.consumer.ParserFactory
  private final DoubleParser = jdk.jfr.consumer.ParserFactory$DoubleParser of jdk.jfr.consumer.ParserFactory
  private final FloatParser = jdk.jfr.consumer.ParserFactory$FloatParser of jdk.jfr.consumer.ParserFactory
  private final IntegerParser = jdk.jfr.consumer.ParserFactory$IntegerParser of jdk.jfr.consumer.ParserFactory
  private final LongParser = jdk.jfr.consumer.ParserFactory$LongParser of jdk.jfr.consumer.ParserFactory
  private final ShortParser = jdk.jfr.consumer.ParserFactory$ShortParser of jdk.jfr.consumer.ParserFactory
  private final StringParser = jdk.jfr.consumer.ParserFactory$StringParser of jdk.jfr.consumer.ParserFactory