public abstract class javax.imageio.metadata.IIOMetadata
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: javax.imageio.metadata.IIOMetadata
  super_class: java.lang.Object
{
  protected boolean standardFormatSupported;
    descriptor: Z
    flags: (0x0004) ACC_PROTECTED

  protected java.lang.String nativeMetadataFormatName;
    descriptor: Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED

  protected java.lang.String nativeMetadataFormatClassName;
    descriptor: Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED

  protected java.lang.String[] extraMetadataFormatNames;
    descriptor: [Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED

  protected java.lang.String[] extraMetadataFormatClassNames;
    descriptor: [Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED

  protected javax.imageio.metadata.IIOMetadataController defaultController;
    descriptor: Ljavax/imageio/metadata/IIOMetadataController;
    flags: (0x0004) ACC_PROTECTED

  protected javax.imageio.metadata.IIOMetadataController controller;
    descriptor: Ljavax/imageio/metadata/IIOMetadataController;
    flags: (0x0004) ACC_PROTECTED

  protected void <init>();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // javax.imageio.metadata.IIOMetadata this
         0: .line 141
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 81
            aload 0 /* this */
            aconst_null
            putfield javax.imageio.metadata.IIOMetadata.nativeMetadataFormatName:Ljava/lang/String;
         2: .line 88
            aload 0 /* this */
            aconst_null
            putfield javax.imageio.metadata.IIOMetadata.nativeMetadataFormatClassName:Ljava/lang/String;
         3: .line 95
            aload 0 /* this */
            aconst_null
            putfield javax.imageio.metadata.IIOMetadata.extraMetadataFormatNames:[Ljava/lang/String;
         4: .line 103
            aload 0 /* this */
            aconst_null
            putfield javax.imageio.metadata.IIOMetadata.extraMetadataFormatClassNames:[Ljava/lang/String;
         5: .line 118
            aload 0 /* this */
            aconst_null
            putfield javax.imageio.metadata.IIOMetadata.defaultController:Ljavax/imageio/metadata/IIOMetadataController;
         6: .line 132
            aload 0 /* this */
            aconst_null
            putfield javax.imageio.metadata.IIOMetadata.controller:Ljavax/imageio/metadata/IIOMetadataController;
         7: .line 141
            return
        end local 0 // javax.imageio.metadata.IIOMetadata this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Ljavax/imageio/metadata/IIOMetadata;

  protected void <init>(boolean, java.lang.String, java.lang.String, java.lang.String[], java.lang.String[]);
    descriptor: (ZLjava/lang/String;Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=6, args_size=6
        start local 0 // javax.imageio.metadata.IIOMetadata this
        start local 1 // boolean standardMetadataFormatSupported
        start local 2 // java.lang.String nativeMetadataFormatName
        start local 3 // java.lang.String nativeMetadataFormatClassName
        start local 4 // java.lang.String[] extraMetadataFormatNames
        start local 5 // java.lang.String[] extraMetadataFormatClassNames
         0: .line 175
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 81
            aload 0 /* this */
            aconst_null
            putfield javax.imageio.metadata.IIOMetadata.nativeMetadataFormatName:Ljava/lang/String;
         2: .line 88
            aload 0 /* this */
            aconst_null
            putfield javax.imageio.metadata.IIOMetadata.nativeMetadataFormatClassName:Ljava/lang/String;
         3: .line 95
            aload 0 /* this */
            aconst_null
            putfield javax.imageio.metadata.IIOMetadata.extraMetadataFormatNames:[Ljava/lang/String;
         4: .line 103
            aload 0 /* this */
            aconst_null
            putfield javax.imageio.metadata.IIOMetadata.extraMetadataFormatClassNames:[Ljava/lang/String;
         5: .line 118
            aload 0 /* this */
            aconst_null
            putfield javax.imageio.metadata.IIOMetadata.defaultController:Ljavax/imageio/metadata/IIOMetadataController;
         6: .line 132
            aload 0 /* this */
            aconst_null
            putfield javax.imageio.metadata.IIOMetadata.controller:Ljavax/imageio/metadata/IIOMetadataController;
         7: .line 180
            aload 0 /* this */
            iload 1 /* standardMetadataFormatSupported */
            putfield javax.imageio.metadata.IIOMetadata.standardFormatSupported:Z
         8: .line 181
            aload 0 /* this */
            aload 2 /* nativeMetadataFormatName */
            putfield javax.imageio.metadata.IIOMetadata.nativeMetadataFormatName:Ljava/lang/String;
         9: .line 182
            aload 0 /* this */
            aload 3 /* nativeMetadataFormatClassName */
            putfield javax.imageio.metadata.IIOMetadata.nativeMetadataFormatClassName:Ljava/lang/String;
        10: .line 183
            aload 4 /* extraMetadataFormatNames */
            ifnull 28
        11: .line 184
            aload 4 /* extraMetadataFormatNames */
            arraylength
            ifne 15
        12: .line 185
            new java.lang.IllegalArgumentException
            dup
        13: .line 186
            ldc "extraMetadataFormatNames.length == 0!"
        14: .line 185
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        15: .line 188
      StackMap locals: javax.imageio.metadata.IIOMetadata int java.lang.String java.lang.String java.lang.String[] java.lang.String[]
      StackMap stack:
            aload 5 /* extraMetadataFormatClassNames */
            ifnonnull 19
        16: .line 189
            new java.lang.IllegalArgumentException
            dup
        17: .line 190
            ldc "extraMetadataFormatNames != null && extraMetadataFormatClassNames == null!"
        18: .line 189
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        19: .line 192
      StackMap locals:
      StackMap stack:
            aload 5 /* extraMetadataFormatClassNames */
            arraylength
        20: .line 193
            aload 4 /* extraMetadataFormatNames */
            arraylength
        21: .line 192
            if_icmpeq 25
        22: .line 194
            new java.lang.IllegalArgumentException
            dup
        23: .line 195
            ldc "extraMetadataFormatClassNames.length != extraMetadataFormatNames.length!"
        24: .line 194
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        25: .line 197
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 4 /* extraMetadataFormatNames */
            invokevirtual java.lang.String[].clone:()Ljava/lang/Object;
            checkcast java.lang.String[]
            putfield javax.imageio.metadata.IIOMetadata.extraMetadataFormatNames:[Ljava/lang/String;
        26: .line 198
            aload 0 /* this */
            aload 5 /* extraMetadataFormatClassNames */
            invokevirtual java.lang.String[].clone:()Ljava/lang/Object;
            checkcast java.lang.String[]
            putfield javax.imageio.metadata.IIOMetadata.extraMetadataFormatClassNames:[Ljava/lang/String;
        27: .line 199
            goto 32
        28: .line 200
      StackMap locals:
      StackMap stack:
            aload 5 /* extraMetadataFormatClassNames */
            ifnull 32
        29: .line 201
            new java.lang.IllegalArgumentException
            dup
        30: .line 202
            ldc "extraMetadataFormatNames == null && extraMetadataFormatClassNames != null!"
        31: .line 201
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        32: .line 205
      StackMap locals:
      StackMap stack:
            return
        end local 5 // java.lang.String[] extraMetadataFormatClassNames
        end local 4 // java.lang.String[] extraMetadataFormatNames
        end local 3 // java.lang.String nativeMetadataFormatClassName
        end local 2 // java.lang.String nativeMetadataFormatName
        end local 1 // boolean standardMetadataFormatSupported
        end local 0 // javax.imageio.metadata.IIOMetadata this
      LocalVariableTable:
        Start  End  Slot                             Name  Signature
            0   33     0                             this  Ljavax/imageio/metadata/IIOMetadata;
            0   33     1  standardMetadataFormatSupported  Z
            0   33     2         nativeMetadataFormatName  Ljava/lang/String;
            0   33     3    nativeMetadataFormatClassName  Ljava/lang/String;
            0   33     4         extraMetadataFormatNames  [Ljava/lang/String;
            0   33     5    extraMetadataFormatClassNames  [Ljava/lang/String;
    MethodParameters:
                                 Name  Flags
      standardMetadataFormatSupported  
      nativeMetadataFormatName         
      nativeMetadataFormatClassName    
      extraMetadataFormatNames         
      extraMetadataFormatClassNames    

  public boolean isStandardMetadataFormatSupported();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.imageio.metadata.IIOMetadata this
         0: .line 225
            aload 0 /* this */
            getfield javax.imageio.metadata.IIOMetadata.standardFormatSupported:Z
            ireturn
        end local 0 // javax.imageio.metadata.IIOMetadata this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/imageio/metadata/IIOMetadata;

  public abstract boolean isReadOnly();
    descriptor: ()Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public java.lang.String getNativeMetadataFormatName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.imageio.metadata.IIOMetadata this
         0: .line 262
            aload 0 /* this */
            getfield javax.imageio.metadata.IIOMetadata.nativeMetadataFormatName:Ljava/lang/String;
            areturn
        end local 0 // javax.imageio.metadata.IIOMetadata this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/imageio/metadata/IIOMetadata;

  public java.lang.String[] getExtraMetadataFormatNames();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.imageio.metadata.IIOMetadata this
         0: .line 286
            aload 0 /* this */
            getfield javax.imageio.metadata.IIOMetadata.extraMetadataFormatNames:[Ljava/lang/String;
            ifnonnull 2
         1: .line 287
            aconst_null
            areturn
         2: .line 289
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield javax.imageio.metadata.IIOMetadata.extraMetadataFormatNames:[Ljava/lang/String;
            invokevirtual java.lang.String[].clone:()Ljava/lang/Object;
            checkcast java.lang.String[]
            areturn
        end local 0 // javax.imageio.metadata.IIOMetadata this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljavax/imageio/metadata/IIOMetadata;

  public java.lang.String[] getMetadataFormatNames();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=8, args_size=1
        start local 0 // javax.imageio.metadata.IIOMetadata this
         0: .line 312
            aload 0 /* this */
            invokevirtual javax.imageio.metadata.IIOMetadata.getNativeMetadataFormatName:()Ljava/lang/String;
            astore 1 /* nativeName */
        start local 1 // java.lang.String nativeName
         1: .line 313
            aload 0 /* this */
            invokevirtual javax.imageio.metadata.IIOMetadata.isStandardMetadataFormatSupported:()Z
            ifeq 3
         2: .line 314
            ldc "javax_imageio_1.0"
            goto 4
      StackMap locals: java.lang.String
      StackMap stack:
         3: aconst_null
         4: .line 313
      StackMap locals:
      StackMap stack: java.lang.String
            astore 2 /* standardName */
        start local 2 // java.lang.String standardName
         5: .line 315
            aload 0 /* this */
            invokevirtual javax.imageio.metadata.IIOMetadata.getExtraMetadataFormatNames:()[Ljava/lang/String;
            astore 3 /* extraNames */
        start local 3 // java.lang.String[] extraNames
         6: .line 317
            iconst_0
            istore 4 /* numFormats */
        start local 4 // int numFormats
         7: .line 318
            aload 1 /* nativeName */
            ifnull 9
         8: .line 319
            iinc 4 /* numFormats */ 1
         9: .line 321
      StackMap locals: java.lang.String java.lang.String[] int
      StackMap stack:
            aload 2 /* standardName */
            ifnull 11
        10: .line 322
            iinc 4 /* numFormats */ 1
        11: .line 324
      StackMap locals:
      StackMap stack:
            aload 3 /* extraNames */
            ifnull 13
        12: .line 325
            iload 4 /* numFormats */
            aload 3 /* extraNames */
            arraylength
            iadd
            istore 4 /* numFormats */
        13: .line 327
      StackMap locals:
      StackMap stack:
            iload 4 /* numFormats */
            ifne 15
        14: .line 328
            aconst_null
            areturn
        15: .line 331
      StackMap locals:
      StackMap stack:
            iload 4 /* numFormats */
            anewarray java.lang.String
            astore 5 /* formats */
        start local 5 // java.lang.String[] formats
        16: .line 332
            iconst_0
            istore 6 /* index */
        start local 6 // int index
        17: .line 333
            aload 1 /* nativeName */
            ifnull 19
        18: .line 334
            aload 5 /* formats */
            iload 6 /* index */
            iinc 6 /* index */ 1
            aload 1 /* nativeName */
            aastore
        19: .line 336
      StackMap locals: java.lang.String[] int
      StackMap stack:
            aload 2 /* standardName */
            ifnull 21
        20: .line 337
            aload 5 /* formats */
            iload 6 /* index */
            iinc 6 /* index */ 1
            aload 2 /* standardName */
            aastore
        21: .line 339
      StackMap locals:
      StackMap stack:
            aload 3 /* extraNames */
            ifnull 27
        22: .line 340
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        23: goto 26
        24: .line 341
      StackMap locals: int
      StackMap stack:
            aload 5 /* formats */
            iload 6 /* index */
            iinc 6 /* index */ 1
            aload 3 /* extraNames */
            iload 7 /* i */
            aaload
            aastore
        25: .line 340
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        26: iload 7 /* i */
            aload 3 /* extraNames */
            arraylength
            if_icmplt 24
        end local 7 // int i
        27: .line 345
      StackMap locals:
      StackMap stack:
            aload 5 /* formats */
            areturn
        end local 6 // int index
        end local 5 // java.lang.String[] formats
        end local 4 // int numFormats
        end local 3 // java.lang.String[] extraNames
        end local 2 // java.lang.String standardName
        end local 1 // java.lang.String nativeName
        end local 0 // javax.imageio.metadata.IIOMetadata this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   28     0          this  Ljavax/imageio/metadata/IIOMetadata;
            1   28     1    nativeName  Ljava/lang/String;
            5   28     2  standardName  Ljava/lang/String;
            6   28     3    extraNames  [Ljava/lang/String;
            7   28     4    numFormats  I
           16   28     5       formats  [Ljava/lang/String;
           17   28     6         index  I
           23   27     7             i  I

  public javax.imageio.metadata.IIOMetadataFormat getMetadataFormat(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljavax/imageio/metadata/IIOMetadataFormat;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=7, args_size=2
        start local 0 // javax.imageio.metadata.IIOMetadata this
        start local 1 // java.lang.String formatName
         0: .line 378
            aload 1 /* formatName */
            ifnonnull 2
         1: .line 379
            new java.lang.IllegalArgumentException
            dup
            ldc "formatName == null!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 381
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield javax.imageio.metadata.IIOMetadata.standardFormatSupported:Z
            ifeq 8
         3: .line 382
            aload 1 /* formatName */
         4: .line 383
            ldc "javax_imageio_1.0"
         5: .line 382
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
         6: .line 383
            ifeq 8
         7: .line 384
            invokestatic javax.imageio.metadata.IIOMetadataFormatImpl.getStandardFormatInstance:()Ljavax/imageio/metadata/IIOMetadataFormat;
            areturn
         8: .line 386
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 2 /* formatClassName */
        start local 2 // java.lang.String formatClassName
         9: .line 387
            aload 1 /* formatName */
            aload 0 /* this */
            getfield javax.imageio.metadata.IIOMetadata.nativeMetadataFormatName:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 12
        10: .line 388
            aload 0 /* this */
            getfield javax.imageio.metadata.IIOMetadata.nativeMetadataFormatClassName:Ljava/lang/String;
            astore 2 /* formatClassName */
        11: .line 389
            goto 20
      StackMap locals: java.lang.String
      StackMap stack:
        12: aload 0 /* this */
            getfield javax.imageio.metadata.IIOMetadata.extraMetadataFormatNames:[Ljava/lang/String;
            ifnull 20
        13: .line 390
            iconst_0
            istore 3 /* i */
        start local 3 // int i
        14: goto 19
        15: .line 391
      StackMap locals: int
      StackMap stack:
            aload 1 /* formatName */
            aload 0 /* this */
            getfield javax.imageio.metadata.IIOMetadata.extraMetadataFormatNames:[Ljava/lang/String;
            iload 3 /* i */
            aaload
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 18
        16: .line 392
            aload 0 /* this */
            getfield javax.imageio.metadata.IIOMetadata.extraMetadataFormatClassNames:[Ljava/lang/String;
            iload 3 /* i */
            aaload
            astore 2 /* formatClassName */
        17: .line 393
            goto 20
        18: .line 390
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        19: iload 3 /* i */
            aload 0 /* this */
            getfield javax.imageio.metadata.IIOMetadata.extraMetadataFormatNames:[Ljava/lang/String;
            arraylength
            if_icmplt 15
        end local 3 // int i
        20: .line 397
      StackMap locals:
      StackMap stack:
            aload 2 /* formatClassName */
            ifnonnull 22
        21: .line 398
            new java.lang.IllegalArgumentException
            dup
            ldc "Unsupported format name"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        22: .line 401
      StackMap locals:
      StackMap stack:
            aload 2 /* formatClassName */
            astore 3 /* className */
        start local 3 // java.lang.String className
        23: .line 404
            aload 0 /* this */
            aload 3 /* className */
            invokedynamic run(Ljavax/imageio/metadata/IIOMetadata;Ljava/lang/String;)Ljava/security/PrivilegedAction;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  javax/imageio/metadata/IIOMetadata.lambda$0(Ljava/lang/String;)Ljava/lang/Class; (7)
                  ()Ljava/lang/Class;
            astore 4 /* pa */
        start local 4 // java.security.PrivilegedAction pa
        24: .line 405
            aload 4 /* pa */
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            checkcast java.lang.Class
            astore 5 /* cls */
        start local 5 // java.lang.Class cls
        25: .line 406
            aload 5 /* cls */
            ldc "getInstance"
            iconst_0
            anewarray java.lang.Class
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            astore 6 /* meth */
        start local 6 // java.lang.reflect.Method meth
        26: .line 407
            aload 6 /* meth */
            aconst_null
            iconst_0
            anewarray java.lang.Object
            invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            checkcast javax.imageio.metadata.IIOMetadataFormat
        27: areturn
        end local 6 // java.lang.reflect.Method meth
        end local 5 // java.lang.Class cls
        end local 4 // java.security.PrivilegedAction pa
        end local 3 // java.lang.String className
        28: .line 408
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 3 /* e */
        start local 3 // java.lang.Exception e
        29: .line 410
            new java.lang.IllegalStateException
            dup
            ldc "Can't obtain format"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
        30: .line 409
            astore 4 /* ex */
        start local 4 // java.lang.RuntimeException ex
        31: .line 411
            aload 4 /* ex */
            aload 3 /* e */
            invokevirtual java.lang.RuntimeException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            pop
        32: .line 412
            aload 4 /* ex */
            athrow
        end local 4 // java.lang.RuntimeException ex
        end local 3 // java.lang.Exception e
        end local 2 // java.lang.String formatClassName
        end local 1 // java.lang.String formatName
        end local 0 // javax.imageio.metadata.IIOMetadata this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   33     0             this  Ljavax/imageio/metadata/IIOMetadata;
            0   33     1       formatName  Ljava/lang/String;
            9   33     2  formatClassName  Ljava/lang/String;
           14   20     3                i  I
           23   28     3        className  Ljava/lang/String;
           24   28     4               pa  Ljava/security/PrivilegedAction<Ljava/lang/Class<*>;>;
           25   28     5              cls  Ljava/lang/Class<*>;
           26   28     6             meth  Ljava/lang/reflect/Method;
           29   33     3                e  Ljava/lang/Exception;
           31   33     4               ex  Ljava/lang/RuntimeException;
      Exception table:
        from    to  target  type
          22    27      28  Class java.lang.Exception
    MethodParameters:
            Name  Flags
      formatName  

  private java.lang.Class<?> getMetadataFormatClass(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/Class;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=7, args_size=2
        start local 0 // javax.imageio.metadata.IIOMetadata this
        start local 1 // java.lang.String formatClassName
         0: .line 418
            ldc Ljavax/imageio/metadata/IIOMetadata;
            invokevirtual java.lang.Class.getModule:()Ljava/lang/Module;
            astore 2 /* thisModule */
        start local 2 // java.lang.Module thisModule
         1: .line 419
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getModule:()Ljava/lang/Module;
            astore 3 /* targetModule */
        start local 3 // java.lang.Module targetModule
         2: .line 420
            aconst_null
            astore 4 /* c */
        start local 4 // java.lang.Class c
         3: .line 422
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            astore 5 /* cl */
        start local 5 // java.lang.ClassLoader cl
         4: .line 423
            aload 1 /* formatClassName */
            iconst_0
            aload 5 /* cl */
            invokestatic java.lang.Class.forName:(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
            astore 4 /* c */
         5: .line 424
            ldc Ljavax/imageio/metadata/IIOMetadataFormat;
            aload 4 /* c */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifne 8
         6: .line 425
            aconst_null
            areturn
        end local 5 // java.lang.ClassLoader cl
         7: .line 427
      StackMap locals: javax.imageio.metadata.IIOMetadata java.lang.String java.lang.Module java.lang.Module java.lang.Class
      StackMap stack: java.lang.ClassNotFoundException
            pop
         8: .line 429
      StackMap locals:
      StackMap stack:
            aload 2 /* thisModule */
            aload 3 /* targetModule */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 9
            aload 4 /* c */
            ifnonnull 10
         9: .line 430
      StackMap locals:
      StackMap stack:
            aload 4 /* c */
            areturn
        10: .line 432
      StackMap locals:
      StackMap stack:
            aload 3 /* targetModule */
            invokevirtual java.lang.Module.isNamed:()Z
            ifeq 19
        11: .line 433
            aload 1 /* formatClassName */
            ldc "."
            invokevirtual java.lang.String.lastIndexOf:(Ljava/lang/String;)I
            istore 5 /* i */
        start local 5 // int i
        12: .line 434
            iload 5 /* i */
            ifle 13
            aload 1 /* formatClassName */
            iconst_0
            iload 5 /* i */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            goto 14
      StackMap locals: int
      StackMap stack:
        13: ldc ""
      StackMap locals:
      StackMap stack: java.lang.String
        14: astore 6 /* pn */
        start local 6 // java.lang.String pn
        15: .line 435
            aload 3 /* targetModule */
            aload 6 /* pn */
            aload 2 /* thisModule */
            invokevirtual java.lang.Module.isExported:(Ljava/lang/String;Ljava/lang/Module;)Z
            ifne 19
        16: .line 436
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Class "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* formatClassName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        17: .line 437
            ldc " in named module must be exported to java.desktop module."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        18: .line 436
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        end local 6 // java.lang.String pn
        end local 5 // int i
        19: .line 440
      StackMap locals:
      StackMap stack:
            aload 4 /* c */
            areturn
        end local 4 // java.lang.Class c
        end local 3 // java.lang.Module targetModule
        end local 2 // java.lang.Module thisModule
        end local 1 // java.lang.String formatClassName
        end local 0 // javax.imageio.metadata.IIOMetadata this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   20     0             this  Ljavax/imageio/metadata/IIOMetadata;
            0   20     1  formatClassName  Ljava/lang/String;
            1   20     2       thisModule  Ljava/lang/Module;
            2   20     3     targetModule  Ljava/lang/Module;
            3   20     4                c  Ljava/lang/Class<*>;
            4    7     5               cl  Ljava/lang/ClassLoader;
           12   19     5                i  I
           15   19     6               pn  Ljava/lang/String;
      Exception table:
        from    to  target  type
           3     6       7  Class java.lang.ClassNotFoundException
    Signature: (Ljava/lang/String;)Ljava/lang/Class<*>;
    MethodParameters:
                 Name  Flags
      formatClassName  

  public abstract org.w3c.dom.Node getAsTree(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/w3c/dom/Node;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
            Name  Flags
      formatName  

  public abstract void mergeTree(java.lang.String, org.w3c.dom.Node);
    descriptor: (Ljava/lang/String;Lorg/w3c/dom/Node;)V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws javax.imageio.metadata.IIOInvalidTreeException
    MethodParameters:
            Name  Flags
      formatName  
      root        

  protected javax.imageio.metadata.IIOMetadataNode getStandardChromaNode();
    descriptor: ()Ljavax/imageio/metadata/IIOMetadataNode;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.imageio.metadata.IIOMetadata this
         0: .line 520
            aconst_null
            areturn
        end local 0 // javax.imageio.metadata.IIOMetadata this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/imageio/metadata/IIOMetadata;

  protected javax.imageio.metadata.IIOMetadataNode getStandardCompressionNode();
    descriptor: ()Ljavax/imageio/metadata/IIOMetadataNode;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.imageio.metadata.IIOMetadata this
         0: .line 542
            aconst_null
            areturn
        end local 0 // javax.imageio.metadata.IIOMetadata this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/imageio/metadata/IIOMetadata;

  protected javax.imageio.metadata.IIOMetadataNode getStandardDataNode();
    descriptor: ()Ljavax/imageio/metadata/IIOMetadataNode;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.imageio.metadata.IIOMetadata this
         0: .line 564
            aconst_null
            areturn
        end local 0 // javax.imageio.metadata.IIOMetadata this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/imageio/metadata/IIOMetadata;

  protected javax.imageio.metadata.IIOMetadataNode getStandardDimensionNode();
    descriptor: ()Ljavax/imageio/metadata/IIOMetadataNode;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.imageio.metadata.IIOMetadata this
         0: .line 586
            aconst_null
            areturn
        end local 0 // javax.imageio.metadata.IIOMetadata this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/imageio/metadata/IIOMetadata;

  protected javax.imageio.metadata.IIOMetadataNode getStandardDocumentNode();
    descriptor: ()Ljavax/imageio/metadata/IIOMetadataNode;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.imageio.metadata.IIOMetadata this
         0: .line 607
            aconst_null
            areturn
        end local 0 // javax.imageio.metadata.IIOMetadata this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/imageio/metadata/IIOMetadata;

  protected javax.imageio.metadata.IIOMetadataNode getStandardTextNode();
    descriptor: ()Ljavax/imageio/metadata/IIOMetadataNode;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.imageio.metadata.IIOMetadata this
         0: .line 628
            aconst_null
            areturn
        end local 0 // javax.imageio.metadata.IIOMetadata this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/imageio/metadata/IIOMetadata;

  protected javax.imageio.metadata.IIOMetadataNode getStandardTileNode();
    descriptor: ()Ljavax/imageio/metadata/IIOMetadataNode;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.imageio.metadata.IIOMetadata this
         0: .line 649
            aconst_null
            areturn
        end local 0 // javax.imageio.metadata.IIOMetadata this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/imageio/metadata/IIOMetadata;

  protected javax.imageio.metadata.IIOMetadataNode getStandardTransparencyNode();
    descriptor: ()Ljavax/imageio/metadata/IIOMetadataNode;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.imageio.metadata.IIOMetadata this
         0: .line 669
            aconst_null
            areturn
        end local 0 // javax.imageio.metadata.IIOMetadata this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/imageio/metadata/IIOMetadata;

  private void append(javax.imageio.metadata.IIOMetadataNode, javax.imageio.metadata.IIOMetadataNode);
    descriptor: (Ljavax/imageio/metadata/IIOMetadataNode;Ljavax/imageio/metadata/IIOMetadataNode;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // javax.imageio.metadata.IIOMetadata this
        start local 1 // javax.imageio.metadata.IIOMetadataNode root
        start local 2 // javax.imageio.metadata.IIOMetadataNode node
         0: .line 677
            aload 2 /* node */
            ifnull 2
         1: .line 678
            aload 1 /* root */
            aload 2 /* node */
            invokevirtual javax.imageio.metadata.IIOMetadataNode.appendChild:(Lorg/w3c/dom/Node;)Lorg/w3c/dom/Node;
            pop
         2: .line 680
      StackMap locals:
      StackMap stack:
            return
        end local 2 // javax.imageio.metadata.IIOMetadataNode node
        end local 1 // javax.imageio.metadata.IIOMetadataNode root
        end local 0 // javax.imageio.metadata.IIOMetadata this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljavax/imageio/metadata/IIOMetadata;
            0    3     1  root  Ljavax/imageio/metadata/IIOMetadataNode;
            0    3     2  node  Ljavax/imageio/metadata/IIOMetadataNode;
    MethodParameters:
      Name  Flags
      root  
      node  

  protected final javax.imageio.metadata.IIOMetadataNode getStandardTree();
    descriptor: ()Ljavax/imageio/metadata/IIOMetadataNode;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // javax.imageio.metadata.IIOMetadata this
         0: .line 709
            new javax.imageio.metadata.IIOMetadataNode
            dup
         1: .line 710
            ldc "javax_imageio_1.0"
         2: .line 709
            invokespecial javax.imageio.metadata.IIOMetadataNode.<init>:(Ljava/lang/String;)V
            astore 1 /* root */
        start local 1 // javax.imageio.metadata.IIOMetadataNode root
         3: .line 711
            aload 0 /* this */
            aload 1 /* root */
            aload 0 /* this */
            invokevirtual javax.imageio.metadata.IIOMetadata.getStandardChromaNode:()Ljavax/imageio/metadata/IIOMetadataNode;
            invokevirtual javax.imageio.metadata.IIOMetadata.append:(Ljavax/imageio/metadata/IIOMetadataNode;Ljavax/imageio/metadata/IIOMetadataNode;)V
         4: .line 712
            aload 0 /* this */
            aload 1 /* root */
            aload 0 /* this */
            invokevirtual javax.imageio.metadata.IIOMetadata.getStandardCompressionNode:()Ljavax/imageio/metadata/IIOMetadataNode;
            invokevirtual javax.imageio.metadata.IIOMetadata.append:(Ljavax/imageio/metadata/IIOMetadataNode;Ljavax/imageio/metadata/IIOMetadataNode;)V
         5: .line 713
            aload 0 /* this */
            aload 1 /* root */
            aload 0 /* this */
            invokevirtual javax.imageio.metadata.IIOMetadata.getStandardDataNode:()Ljavax/imageio/metadata/IIOMetadataNode;
            invokevirtual javax.imageio.metadata.IIOMetadata.append:(Ljavax/imageio/metadata/IIOMetadataNode;Ljavax/imageio/metadata/IIOMetadataNode;)V
         6: .line 714
            aload 0 /* this */
            aload 1 /* root */
            aload 0 /* this */
            invokevirtual javax.imageio.metadata.IIOMetadata.getStandardDimensionNode:()Ljavax/imageio/metadata/IIOMetadataNode;
            invokevirtual javax.imageio.metadata.IIOMetadata.append:(Ljavax/imageio/metadata/IIOMetadataNode;Ljavax/imageio/metadata/IIOMetadataNode;)V
         7: .line 715
            aload 0 /* this */
            aload 1 /* root */
            aload 0 /* this */
            invokevirtual javax.imageio.metadata.IIOMetadata.getStandardDocumentNode:()Ljavax/imageio/metadata/IIOMetadataNode;
            invokevirtual javax.imageio.metadata.IIOMetadata.append:(Ljavax/imageio/metadata/IIOMetadataNode;Ljavax/imageio/metadata/IIOMetadataNode;)V
         8: .line 716
            aload 0 /* this */
            aload 1 /* root */
            aload 0 /* this */
            invokevirtual javax.imageio.metadata.IIOMetadata.getStandardTextNode:()Ljavax/imageio/metadata/IIOMetadataNode;
            invokevirtual javax.imageio.metadata.IIOMetadata.append:(Ljavax/imageio/metadata/IIOMetadataNode;Ljavax/imageio/metadata/IIOMetadataNode;)V
         9: .line 717
            aload 0 /* this */
            aload 1 /* root */
            aload 0 /* this */
            invokevirtual javax.imageio.metadata.IIOMetadata.getStandardTileNode:()Ljavax/imageio/metadata/IIOMetadataNode;
            invokevirtual javax.imageio.metadata.IIOMetadata.append:(Ljavax/imageio/metadata/IIOMetadataNode;Ljavax/imageio/metadata/IIOMetadataNode;)V
        10: .line 718
            aload 0 /* this */
            aload 1 /* root */
            aload 0 /* this */
            invokevirtual javax.imageio.metadata.IIOMetadata.getStandardTransparencyNode:()Ljavax/imageio/metadata/IIOMetadataNode;
            invokevirtual javax.imageio.metadata.IIOMetadata.append:(Ljavax/imageio/metadata/IIOMetadataNode;Ljavax/imageio/metadata/IIOMetadataNode;)V
        11: .line 719
            aload 1 /* root */
            areturn
        end local 1 // javax.imageio.metadata.IIOMetadataNode root
        end local 0 // javax.imageio.metadata.IIOMetadata this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Ljavax/imageio/metadata/IIOMetadata;
            3   12     1  root  Ljavax/imageio/metadata/IIOMetadataNode;

  public void setFromTree(java.lang.String, org.w3c.dom.Node);
    descriptor: (Ljava/lang/String;Lorg/w3c/dom/Node;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // javax.imageio.metadata.IIOMetadata this
        start local 1 // java.lang.String formatName
        start local 2 // org.w3c.dom.Node root
         0: .line 751
            aload 0 /* this */
            invokevirtual javax.imageio.metadata.IIOMetadata.reset:()V
         1: .line 752
            aload 0 /* this */
            aload 1 /* formatName */
            aload 2 /* root */
            invokevirtual javax.imageio.metadata.IIOMetadata.mergeTree:(Ljava/lang/String;Lorg/w3c/dom/Node;)V
         2: .line 753
            return
        end local 2 // org.w3c.dom.Node root
        end local 1 // java.lang.String formatName
        end local 0 // javax.imageio.metadata.IIOMetadata this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Ljavax/imageio/metadata/IIOMetadata;
            0    3     1  formatName  Ljava/lang/String;
            0    3     2        root  Lorg/w3c/dom/Node;
    Exceptions:
      throws javax.imageio.metadata.IIOInvalidTreeException
    MethodParameters:
            Name  Flags
      formatName  
      root        

  public abstract void reset();
    descriptor: ()V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public void setController(javax.imageio.metadata.IIOMetadataController);
    descriptor: (Ljavax/imageio/metadata/IIOMetadataController;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // javax.imageio.metadata.IIOMetadata this
        start local 1 // javax.imageio.metadata.IIOMetadataController controller
         0: .line 793
            aload 0 /* this */
            aload 1 /* controller */
            putfield javax.imageio.metadata.IIOMetadata.controller:Ljavax/imageio/metadata/IIOMetadataController;
         1: .line 794
            return
        end local 1 // javax.imageio.metadata.IIOMetadataController controller
        end local 0 // javax.imageio.metadata.IIOMetadata this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Ljavax/imageio/metadata/IIOMetadata;
            0    2     1  controller  Ljavax/imageio/metadata/IIOMetadataController;
    MethodParameters:
            Name  Flags
      controller  

  public javax.imageio.metadata.IIOMetadataController getController();
    descriptor: ()Ljavax/imageio/metadata/IIOMetadataController;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.imageio.metadata.IIOMetadata this
         0: .line 815
            aload 0 /* this */
            getfield javax.imageio.metadata.IIOMetadata.controller:Ljavax/imageio/metadata/IIOMetadataController;
            areturn
        end local 0 // javax.imageio.metadata.IIOMetadata this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/imageio/metadata/IIOMetadata;

  public javax.imageio.metadata.IIOMetadataController getDefaultController();
    descriptor: ()Ljavax/imageio/metadata/IIOMetadataController;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.imageio.metadata.IIOMetadata this
         0: .line 836
            aload 0 /* this */
            getfield javax.imageio.metadata.IIOMetadata.defaultController:Ljavax/imageio/metadata/IIOMetadataController;
            areturn
        end local 0 // javax.imageio.metadata.IIOMetadata this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/imageio/metadata/IIOMetadata;

  public boolean hasController();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.imageio.metadata.IIOMetadata this
         0: .line 856
            aload 0 /* this */
            invokevirtual javax.imageio.metadata.IIOMetadata.getController:()Ljavax/imageio/metadata/IIOMetadataController;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // javax.imageio.metadata.IIOMetadata this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljavax/imageio/metadata/IIOMetadata;

  public boolean activateController();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // javax.imageio.metadata.IIOMetadata this
         0: .line 888
            aload 0 /* this */
            invokevirtual javax.imageio.metadata.IIOMetadata.hasController:()Z
            ifne 2
         1: .line 889
            new java.lang.IllegalStateException
            dup
            ldc "hasController() == false!"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 891
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual javax.imageio.metadata.IIOMetadata.getController:()Ljavax/imageio/metadata/IIOMetadataController;
            aload 0 /* this */
            invokeinterface javax.imageio.metadata.IIOMetadataController.activate:(Ljavax/imageio/metadata/IIOMetadata;)Z
            ireturn
        end local 0 // javax.imageio.metadata.IIOMetadata this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljavax/imageio/metadata/IIOMetadata;

  private java.lang.Class lambda$0(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/Class;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // javax.imageio.metadata.IIOMetadata this
         0: .line 404
            aload 0 /* this */
            aload 1
            invokevirtual javax.imageio.metadata.IIOMetadata.getMetadataFormatClass:(Ljava/lang/String;)Ljava/lang/Class;
            areturn
        end local 0 // javax.imageio.metadata.IIOMetadata this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/imageio/metadata/IIOMetadata;
}
SourceFile: "IIOMetadata.java"
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles