final class jdk.jfr.internal.tool.Metadata extends jdk.jfr.internal.tool.Command
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: jdk.jfr.internal.tool.Metadata
  super_class: jdk.jfr.internal.tool.Command
{
  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.jfr.internal.tool.Metadata this
         0: .line 40
            aload 0 /* this */
            invokespecial jdk.jfr.internal.tool.Command.<init>:()V
            return
        end local 0 // jdk.jfr.internal.tool.Metadata this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/jfr/internal/tool/Metadata;

  public java.lang.String getName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.jfr.internal.tool.Metadata this
         0: .line 94
            ldc "metadata"
            areturn
        end local 0 // jdk.jfr.internal.tool.Metadata this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/jfr/internal/tool/Metadata;

  public java.util.List<java.lang.String> getOptionSyntax();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.jfr.internal.tool.Metadata this
         0: .line 99
            ldc "<file>"
            invokestatic java.util.Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;
            areturn
        end local 0 // jdk.jfr.internal.tool.Metadata this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/jfr/internal/tool/Metadata;
    Signature: ()Ljava/util/List<Ljava/lang/String;>;

  public java.lang.String getDescription();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.jfr.internal.tool.Metadata this
         0: .line 104
            ldc "Display event metadata, such as labels, descriptions and field layout"
            areturn
        end local 0 // jdk.jfr.internal.tool.Metadata this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/jfr/internal/tool/Metadata;

  public void execute(java.util.Deque<java.lang.String>);
    descriptor: (Ljava/util/Deque;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=15, args_size=2
        start local 0 // jdk.jfr.internal.tool.Metadata this
        start local 1 // java.util.Deque options
         0: .line 109
            aload 0 /* this */
            aload 1 /* options */
            invokevirtual jdk.jfr.internal.tool.Metadata.getJFRInputFile:(Ljava/util/Deque;)Ljava/nio/file/Path;
            astore 2 /* file */
        start local 2 // java.nio.file.Path file
         1: .line 111
            iconst_0
            istore 3 /* showIds */
        start local 3 // boolean showIds
         2: .line 112
            aload 1 /* options */
            invokeinterface java.util.Deque.size:()I
            istore 4 /* optionCount */
        start local 4 // int optionCount
         3: .line 113
            goto 9
         4: .line 114
      StackMap locals: java.nio.file.Path int int
      StackMap stack:
            aload 0 /* this */
            aload 1 /* options */
            ldc "--ids"
            invokevirtual jdk.jfr.internal.tool.Metadata.acceptOption:(Ljava/util/Deque;Ljava/lang/String;)Z
            ifeq 6
         5: .line 115
            iconst_1
            istore 3 /* showIds */
         6: .line 117
      StackMap locals:
      StackMap stack:
            iload 4 /* optionCount */
            aload 1 /* options */
            invokeinterface java.util.Deque.size:()I
            if_icmpne 8
         7: .line 119
            new jdk.jfr.internal.tool.UserSyntaxException
            dup
            new java.lang.StringBuilder
            dup
            ldc "unknown option "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* options */
            invokeinterface java.util.Deque.peek:()Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial jdk.jfr.internal.tool.UserSyntaxException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 121
      StackMap locals:
      StackMap stack:
            aload 1 /* options */
            invokeinterface java.util.Deque.size:()I
            istore 4 /* optionCount */
         9: .line 113
      StackMap locals:
      StackMap stack:
            iload 4 /* optionCount */
            ifgt 4
        10: .line 124
            aconst_null
            astore 5
            aconst_null
            astore 6
        11: new java.io.PrintWriter
            dup
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokespecial java.io.PrintWriter.<init>:(Ljava/io/OutputStream;)V
            astore 7 /* pw */
        start local 7 // java.io.PrintWriter pw
        12: .line 125
            new jdk.jfr.internal.tool.PrettyWriter
            dup
            aload 7 /* pw */
            invokespecial jdk.jfr.internal.tool.PrettyWriter.<init>:(Ljava/io/PrintWriter;)V
            astore 8 /* prettyWriter */
        start local 8 // jdk.jfr.internal.tool.PrettyWriter prettyWriter
        13: .line 126
            aload 8 /* prettyWriter */
            iload 3 /* showIds */
            invokevirtual jdk.jfr.internal.tool.PrettyWriter.setShowIds:(Z)V
        14: .line 127
            aconst_null
            astore 9
            aconst_null
            astore 10
        15: new jdk.jfr.consumer.RecordingFile
            dup
            aload 2 /* file */
            invokespecial jdk.jfr.consumer.RecordingFile.<init>:(Ljava/nio/file/Path;)V
            astore 11 /* rf */
        start local 11 // jdk.jfr.consumer.RecordingFile rf
        16: .line 128
            getstatic jdk.jfr.internal.consumer.RecordingInternals.INSTANCE:Ljdk/jfr/internal/consumer/RecordingInternals;
            aload 11 /* rf */
            invokevirtual jdk.jfr.internal.consumer.RecordingInternals.readTypes:(Ljdk/jfr/consumer/RecordingFile;)Ljava/util/List;
            astore 12 /* types */
        start local 12 // java.util.List types
        17: .line 129
            aload 12 /* types */
            new jdk.jfr.internal.tool.Metadata$TypeComparator
            dup
            invokespecial jdk.jfr.internal.tool.Metadata$TypeComparator.<init>:()V
            invokestatic java.util.Collections.sort:(Ljava/util/List;Ljava/util/Comparator;)V
        18: .line 130
            aload 12 /* types */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 14
            goto 21
      StackMap locals: jdk.jfr.internal.tool.Metadata java.util.Deque java.nio.file.Path int int java.lang.Throwable java.lang.Throwable java.io.PrintWriter jdk.jfr.internal.tool.PrettyWriter java.lang.Throwable java.lang.Throwable jdk.jfr.consumer.RecordingFile java.util.List top java.util.Iterator
      StackMap stack:
        19: aload 14
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast jdk.jfr.internal.Type
            astore 13 /* type */
        start local 13 // jdk.jfr.internal.Type type
        20: .line 131
            aload 8 /* prettyWriter */
            aload 13 /* type */
            invokevirtual jdk.jfr.internal.tool.PrettyWriter.printType:(Ljdk/jfr/internal/Type;)V
        end local 13 // jdk.jfr.internal.Type type
        21: .line 130
      StackMap locals:
      StackMap stack:
            aload 14
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 19
        22: .line 133
            aload 8 /* prettyWriter */
            iconst_1
            invokevirtual jdk.jfr.internal.tool.PrettyWriter.flush:(Z)V
        end local 12 // java.util.List types
        23: .line 134
            aload 11 /* rf */
            ifnull 31
            aload 11 /* rf */
            invokevirtual jdk.jfr.consumer.RecordingFile.close:()V
            goto 31
      StackMap locals: jdk.jfr.internal.tool.Metadata java.util.Deque java.nio.file.Path int int java.lang.Throwable java.lang.Throwable java.io.PrintWriter jdk.jfr.internal.tool.PrettyWriter java.lang.Throwable java.lang.Throwable jdk.jfr.consumer.RecordingFile
      StackMap stack: java.lang.Throwable
        24: astore 9
            aload 11 /* rf */
            ifnull 25
            aload 11 /* rf */
            invokevirtual jdk.jfr.consumer.RecordingFile.close:()V
        end local 11 // jdk.jfr.consumer.RecordingFile rf
      StackMap locals:
      StackMap stack:
        25: aload 9
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        26: astore 10
            aload 9
            ifnonnull 27
            aload 10
            astore 9
            goto 28
      StackMap locals:
      StackMap stack:
        27: aload 9
            aload 10
            if_acmpeq 28
            aload 9
            aload 10
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        28: aload 9
            athrow
      StackMap locals: jdk.jfr.internal.tool.Metadata java.util.Deque java.nio.file.Path int int java.lang.Throwable java.lang.Throwable java.io.PrintWriter jdk.jfr.internal.tool.PrettyWriter
      StackMap stack: java.io.IOException
        29: astore 9 /* ioe */
        start local 9 // java.io.IOException ioe
        30: .line 135
            aload 0 /* this */
            aload 2 /* file */
            aload 9 /* ioe */
            invokevirtual jdk.jfr.internal.tool.Metadata.couldNotReadError:(Ljava/nio/file/Path;Ljava/io/IOException;)V
        end local 9 // java.io.IOException ioe
        end local 8 // jdk.jfr.internal.tool.PrettyWriter prettyWriter
        31: .line 137
      StackMap locals:
      StackMap stack:
            aload 7 /* pw */
            ifnull 37
            aload 7 /* pw */
            invokevirtual java.io.PrintWriter.close:()V
            goto 37
      StackMap locals:
      StackMap stack: java.lang.Throwable
        32: astore 5
            aload 7 /* pw */
            ifnull 33
            aload 7 /* pw */
            invokevirtual java.io.PrintWriter.close:()V
        end local 7 // java.io.PrintWriter pw
      StackMap locals:
      StackMap stack:
        33: aload 5
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        34: astore 6
            aload 5
            ifnonnull 35
            aload 6
            astore 5
            goto 36
      StackMap locals:
      StackMap stack:
        35: aload 5
            aload 6
            if_acmpeq 36
            aload 5
            aload 6
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        36: aload 5
            athrow
        37: .line 138
      StackMap locals:
      StackMap stack:
            return
        end local 4 // int optionCount
        end local 3 // boolean showIds
        end local 2 // java.nio.file.Path file
        end local 1 // java.util.Deque options
        end local 0 // jdk.jfr.internal.tool.Metadata this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   38     0          this  Ljdk/jfr/internal/tool/Metadata;
            0   38     1       options  Ljava/util/Deque<Ljava/lang/String;>;
            1   38     2          file  Ljava/nio/file/Path;
            2   38     3       showIds  Z
            3   38     4   optionCount  I
           12   33     7            pw  Ljava/io/PrintWriter;
           13   31     8  prettyWriter  Ljdk/jfr/internal/tool/PrettyWriter;
           16   25    11            rf  Ljdk/jfr/consumer/RecordingFile;
           17   23    12         types  Ljava/util/List<Ljdk/jfr/internal/Type;>;
           20   21    13          type  Ljdk/jfr/internal/Type;
           30   31     9           ioe  Ljava/io/IOException;
      Exception table:
        from    to  target  type
          16    23      24  any
          15    26      26  any
          14    29      29  Class java.io.IOException
          12    31      32  any
          11    34      34  any
    Exceptions:
      throws jdk.jfr.internal.tool.UserSyntaxException, jdk.jfr.internal.tool.UserDataException
    Signature: (Ljava/util/Deque<Ljava/lang/String;>;)V
    MethodParameters:
         Name  Flags
      options  
}
SourceFile: "Metadata.java"
NestMembers:
  jdk.jfr.internal.tool.Metadata$TypeComparator
InnerClasses:
  private TypeComparator = jdk.jfr.internal.tool.Metadata$TypeComparator of jdk.jfr.internal.tool.Metadata