public final class jdk.jfr.internal.MetadataDescriptor
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: jdk.jfr.internal.MetadataDescriptor
  super_class: java.lang.Object
{
  static final java.lang.String ATTRIBUTE_ID;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "id"

  static final java.lang.String ATTRIBUTE_SIMPLE_TYPE;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "simpleType"

  static final java.lang.String ATTRIBUTE_GMT_OFFSET;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "gmtOffset"

  static final java.lang.String ATTRIBUTE_LOCALE;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "locale"

  static final java.lang.String ELEMENT_TYPE;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "class"

  static final java.lang.String ELEMENT_SETTING;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "setting"

  static final java.lang.String ELEMENT_ANNOTATION;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "annotation"

  static final java.lang.String ELEMENT_FIELD;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "field"

  static final java.lang.String ATTRIBUTE_SUPER_TYPE;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "superType"

  static final java.lang.String ATTRIBUTE_TYPE_ID;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "class"

  static final java.lang.String ATTRIBUTE_DIMENSION;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "dimension"

  static final java.lang.String ATTRIBUTE_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "name"

  static final java.lang.String ATTRIBUTE_CONSTANT_POOL;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "constantPool"

  static final java.lang.String ATTRIBUTE_DEFAULT_VALUE;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "defaultValue"

  final java.util.List<jdk.jfr.EventType> eventTypes;
    descriptor: Ljava/util/List;
    flags: (0x0010) ACC_FINAL
    Signature: Ljava/util/List<Ljdk/jfr/EventType;>;

  final java.util.Collection<jdk.jfr.internal.Type> types;
    descriptor: Ljava/util/Collection;
    flags: (0x0010) ACC_FINAL
    Signature: Ljava/util/Collection<Ljdk/jfr/internal/Type;>;

  long gmtOffset;
    descriptor: J
    flags: (0x0000) 

  java.lang.String locale;
    descriptor: Ljava/lang/String;
    flags: (0x0000) 

  jdk.jfr.internal.MetadataDescriptor$Element root;
    descriptor: Ljdk/jfr/internal/MetadataDescriptor$Element;
    flags: (0x0000) 

  public long metadataId;
    descriptor: J
    flags: (0x0001) ACC_PUBLIC

  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // jdk.jfr.internal.MetadataDescriptor this
         0: .line 220
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 212
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield jdk.jfr.internal.MetadataDescriptor.eventTypes:Ljava/util/List;
         2: .line 213
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield jdk.jfr.internal.MetadataDescriptor.types:Ljava/util/Collection;
         3: .line 221
            return
        end local 0 // jdk.jfr.internal.MetadataDescriptor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljdk/jfr/internal/MetadataDescriptor;

  private static void prettyPrintXML(java.lang.Appendable, java.lang.String, jdk.jfr.internal.MetadataDescriptor$Element);
    descriptor: (Ljava/lang/Appendable;Ljava/lang/String;Ljdk/jfr/internal/MetadataDescriptor$Element;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // java.lang.Appendable sb
        start local 1 // java.lang.String indent
        start local 2 // jdk.jfr.internal.MetadataDescriptor$Element e
         0: .line 224
            aload 0 /* sb */
            new java.lang.StringBuilder
            dup
            aload 1 /* indent */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "<"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* e */
            getfield jdk.jfr.internal.MetadataDescriptor$Element.name:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface java.lang.Appendable.append:(Ljava/lang/CharSequence;)Ljava/lang/Appendable;
            pop
         1: .line 225
            aload 2 /* e */
            getfield jdk.jfr.internal.MetadataDescriptor$Element.attributes:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 4
      StackMap locals: java.lang.Appendable java.lang.String jdk.jfr.internal.MetadataDescriptor$Element top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast jdk.jfr.internal.MetadataDescriptor$Attribute
            astore 3 /* a */
        start local 3 // jdk.jfr.internal.MetadataDescriptor$Attribute a
         3: .line 226
            aload 0 /* sb */
            ldc " "
            invokeinterface java.lang.Appendable.append:(Ljava/lang/CharSequence;)Ljava/lang/Appendable;
            aload 3 /* a */
            getfield jdk.jfr.internal.MetadataDescriptor$Attribute.name:Ljava/lang/String;
            invokeinterface java.lang.Appendable.append:(Ljava/lang/CharSequence;)Ljava/lang/Appendable;
            ldc "=\""
            invokeinterface java.lang.Appendable.append:(Ljava/lang/CharSequence;)Ljava/lang/Appendable;
            aload 3 /* a */
            getfield jdk.jfr.internal.MetadataDescriptor$Attribute.value:Ljava/lang/String;
            invokeinterface java.lang.Appendable.append:(Ljava/lang/CharSequence;)Ljava/lang/Appendable;
            ldc "\""
            invokeinterface java.lang.Appendable.append:(Ljava/lang/CharSequence;)Ljava/lang/Appendable;
            pop
        end local 3 // jdk.jfr.internal.MetadataDescriptor$Attribute a
         4: .line 225
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 228
            aload 2 /* e */
            getfield jdk.jfr.internal.MetadataDescriptor$Element.elements:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            ifne 7
         6: .line 229
            aload 0 /* sb */
            ldc "/"
            invokeinterface java.lang.Appendable.append:(Ljava/lang/CharSequence;)Ljava/lang/Appendable;
            pop
         7: .line 231
      StackMap locals: java.lang.Appendable java.lang.String jdk.jfr.internal.MetadataDescriptor$Element
      StackMap stack:
            aload 0 /* sb */
            ldc ">\n"
            invokeinterface java.lang.Appendable.append:(Ljava/lang/CharSequence;)Ljava/lang/Appendable;
            pop
         8: .line 232
            aload 2 /* e */
            getfield jdk.jfr.internal.MetadataDescriptor$Element.elements:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 11
      StackMap locals: java.lang.Appendable java.lang.String jdk.jfr.internal.MetadataDescriptor$Element top java.util.Iterator
      StackMap stack:
         9: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast jdk.jfr.internal.MetadataDescriptor$Element
            astore 3 /* child */
        start local 3 // jdk.jfr.internal.MetadataDescriptor$Element child
        10: .line 233
            aload 0 /* sb */
            new java.lang.StringBuilder
            dup
            aload 1 /* indent */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "  "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 3 /* child */
            invokestatic jdk.jfr.internal.MetadataDescriptor.prettyPrintXML:(Ljava/lang/Appendable;Ljava/lang/String;Ljdk/jfr/internal/MetadataDescriptor$Element;)V
        end local 3 // jdk.jfr.internal.MetadataDescriptor$Element child
        11: .line 232
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 9
        12: .line 235
            aload 2 /* e */
            getfield jdk.jfr.internal.MetadataDescriptor$Element.elements:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            ifeq 14
        13: .line 236
            aload 0 /* sb */
            aload 1 /* indent */
            invokeinterface java.lang.Appendable.append:(Ljava/lang/CharSequence;)Ljava/lang/Appendable;
            ldc "</"
            invokeinterface java.lang.Appendable.append:(Ljava/lang/CharSequence;)Ljava/lang/Appendable;
            aload 2 /* e */
            getfield jdk.jfr.internal.MetadataDescriptor$Element.name:Ljava/lang/String;
            invokeinterface java.lang.Appendable.append:(Ljava/lang/CharSequence;)Ljava/lang/Appendable;
            ldc ">\n"
            invokeinterface java.lang.Appendable.append:(Ljava/lang/CharSequence;)Ljava/lang/Appendable;
            pop
        14: .line 238
      StackMap locals: java.lang.Appendable java.lang.String jdk.jfr.internal.MetadataDescriptor$Element
      StackMap stack:
            return
        end local 2 // jdk.jfr.internal.MetadataDescriptor$Element e
        end local 1 // java.lang.String indent
        end local 0 // java.lang.Appendable sb
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   15     0      sb  Ljava/lang/Appendable;
            0   15     1  indent  Ljava/lang/String;
            0   15     2       e  Ljdk/jfr/internal/MetadataDescriptor$Element;
            3    4     3       a  Ljdk/jfr/internal/MetadataDescriptor$Attribute;
           10   11     3   child  Ljdk/jfr/internal/MetadataDescriptor$Element;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      sb      
      indent  
      e       

  public java.util.Collection<jdk.jfr.internal.Type> getTypes();
    descriptor: ()Ljava/util/Collection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.jfr.internal.MetadataDescriptor this
         0: .line 241
            aload 0 /* this */
            getfield jdk.jfr.internal.MetadataDescriptor.types:Ljava/util/Collection;
            areturn
        end local 0 // jdk.jfr.internal.MetadataDescriptor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/jfr/internal/MetadataDescriptor;
    Signature: ()Ljava/util/Collection<Ljdk/jfr/internal/Type;>;

  public java.util.List<jdk.jfr.EventType> getEventTypes();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.jfr.internal.MetadataDescriptor this
         0: .line 245
            aload 0 /* this */
            getfield jdk.jfr.internal.MetadataDescriptor.eventTypes:Ljava/util/List;
            areturn
        end local 0 // jdk.jfr.internal.MetadataDescriptor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/jfr/internal/MetadataDescriptor;
    Signature: ()Ljava/util/List<Ljdk/jfr/EventType;>;

  public int getGMTOffset();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // jdk.jfr.internal.MetadataDescriptor this
         0: .line 249
            aload 0 /* this */
            getfield jdk.jfr.internal.MetadataDescriptor.gmtOffset:J
            l2i
            ireturn
        end local 0 // jdk.jfr.internal.MetadataDescriptor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/jfr/internal/MetadataDescriptor;

  public java.lang.String getLocale();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.jfr.internal.MetadataDescriptor this
         0: .line 253
            aload 0 /* this */
            getfield jdk.jfr.internal.MetadataDescriptor.locale:Ljava/lang/String;
            areturn
        end local 0 // jdk.jfr.internal.MetadataDescriptor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/jfr/internal/MetadataDescriptor;

  public static jdk.jfr.internal.MetadataDescriptor read(jdk.jfr.internal.consumer.RecordingInput);
    descriptor: (Ljdk/jfr/internal/consumer/RecordingInput;)Ljdk/jfr/internal/MetadataDescriptor;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // jdk.jfr.internal.consumer.RecordingInput input
         0: .line 257
            new jdk.jfr.internal.MetadataReader
            dup
            aload 0 /* input */
            invokespecial jdk.jfr.internal.MetadataReader.<init>:(Ljdk/jfr/internal/consumer/RecordingInput;)V
            astore 1 /* r */
        start local 1 // jdk.jfr.internal.MetadataReader r
         1: .line 258
            aload 1 /* r */
            invokevirtual jdk.jfr.internal.MetadataReader.getDescriptor:()Ljdk/jfr/internal/MetadataDescriptor;
            areturn
        end local 1 // jdk.jfr.internal.MetadataReader r
        end local 0 // jdk.jfr.internal.consumer.RecordingInput input
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0  input  Ljdk/jfr/internal/consumer/RecordingInput;
            1    2     1      r  Ljdk/jfr/internal/MetadataReader;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      input  

  static void write(java.util.List<jdk.jfr.internal.Type>, java.io.DataOutput);
    descriptor: (Ljava/util/List;Ljava/io/DataOutput;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // java.util.List types
        start local 1 // java.io.DataOutput output
         0: .line 262
            new jdk.jfr.internal.MetadataDescriptor
            dup
            invokespecial jdk.jfr.internal.MetadataDescriptor.<init>:()V
            astore 2 /* m */
        start local 2 // jdk.jfr.internal.MetadataDescriptor m
         1: .line 263
            aload 2 /* m */
            invokestatic java.util.Locale.getDefault:()Ljava/util/Locale;
            invokevirtual java.util.Locale.toString:()Ljava/lang/String;
            putfield jdk.jfr.internal.MetadataDescriptor.locale:Ljava/lang/String;
         2: .line 264
            aload 2 /* m */
            invokestatic java.util.TimeZone.getDefault:()Ljava/util/TimeZone;
            invokevirtual java.util.TimeZone.getRawOffset:()I
            i2l
            putfield jdk.jfr.internal.MetadataDescriptor.gmtOffset:J
         3: .line 265
            aload 2 /* m */
            getfield jdk.jfr.internal.MetadataDescriptor.types:Ljava/util/Collection;
            aload 0 /* types */
            invokeinterface java.util.Collection.addAll:(Ljava/util/Collection;)Z
            pop
         4: .line 266
            new jdk.jfr.internal.MetadataWriter
            dup
            aload 2 /* m */
            invokespecial jdk.jfr.internal.MetadataWriter.<init>:(Ljdk/jfr/internal/MetadataDescriptor;)V
            astore 3 /* w */
        start local 3 // jdk.jfr.internal.MetadataWriter w
         5: .line 267
            aload 3 /* w */
            aload 1 /* output */
            invokevirtual jdk.jfr.internal.MetadataWriter.writeBinary:(Ljava/io/DataOutput;)V
         6: .line 268
            return
        end local 3 // jdk.jfr.internal.MetadataWriter w
        end local 2 // jdk.jfr.internal.MetadataDescriptor m
        end local 1 // java.io.DataOutput output
        end local 0 // java.util.List types
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0   types  Ljava/util/List<Ljdk/jfr/internal/Type;>;
            0    7     1  output  Ljava/io/DataOutput;
            1    7     2       m  Ljdk/jfr/internal/MetadataDescriptor;
            5    7     3       w  Ljdk/jfr/internal/MetadataWriter;
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/util/List<Ljdk/jfr/internal/Type;>;Ljava/io/DataOutput;)V
    MethodParameters:
        Name  Flags
      types   
      output  

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.jfr.internal.MetadataDescriptor this
         0: .line 272
            aload 0 /* this */
            getfield jdk.jfr.internal.MetadataDescriptor.root:Ljdk/jfr/internal/MetadataDescriptor$Element;
            invokevirtual jdk.jfr.internal.MetadataDescriptor$Element.toString:()Ljava/lang/String;
            areturn
        end local 0 // jdk.jfr.internal.MetadataDescriptor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/jfr/internal/MetadataDescriptor;
}
SourceFile: "MetadataDescriptor.java"
NestMembers:
  jdk.jfr.internal.MetadataDescriptor$Attribute  jdk.jfr.internal.MetadataDescriptor$Element
InnerClasses:
  final Attribute = jdk.jfr.internal.MetadataDescriptor$Attribute of jdk.jfr.internal.MetadataDescriptor
  final Element = jdk.jfr.internal.MetadataDescriptor$Element of jdk.jfr.internal.MetadataDescriptor