public abstract class javax.imageio.spi.ImageReaderWriterSpi extends javax.imageio.spi.IIOServiceProvider
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: javax.imageio.spi.ImageReaderWriterSpi
  super_class: javax.imageio.spi.IIOServiceProvider
{
  protected java.lang.String[] names;
    descriptor: [Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED

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

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

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

  protected boolean supportsStandardStreamMetadataFormat;
    descriptor: Z
    flags: (0x0004) ACC_PROTECTED

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

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

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

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

  protected boolean supportsStandardImageMetadataFormat;
    descriptor: Z
    flags: (0x0004) ACC_PROTECTED

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

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

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

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

  public void <init>(java.lang.String, java.lang.String, java.lang.String[], java.lang.String[], java.lang.String[], java.lang.String, boolean, java.lang.String, java.lang.String, java.lang.String[], java.lang.String[], boolean, java.lang.String, java.lang.String, java.lang.String[], java.lang.String[]);
    descriptor: (Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;ZLjava/lang/String;Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;ZLjava/lang/String;Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=17, args_size=17
        start local 0 // javax.imageio.spi.ImageReaderWriterSpi this
        start local 1 // java.lang.String vendorName
        start local 2 // java.lang.String version
        start local 3 // java.lang.String[] names
        start local 4 // java.lang.String[] suffixes
        start local 5 // java.lang.String[] MIMETypes
        start local 6 // java.lang.String pluginClassName
        start local 7 // boolean supportsStandardStreamMetadataFormat
        start local 8 // java.lang.String nativeStreamMetadataFormatName
        start local 9 // java.lang.String nativeStreamMetadataFormatClassName
        start local 10 // java.lang.String[] extraStreamMetadataFormatNames
        start local 11 // java.lang.String[] extraStreamMetadataFormatClassNames
        start local 12 // boolean supportsStandardImageMetadataFormat
        start local 13 // java.lang.String nativeImageMetadataFormatName
        start local 14 // java.lang.String nativeImageMetadataFormatClassName
        start local 15 // java.lang.String[] extraImageMetadataFormatNames
        start local 16 // java.lang.String[] extraImageMetadataFormatClassNames
         0: .line 231
            aload 0 /* this */
            aload 1 /* vendorName */
            aload 2 /* version */
            invokespecial javax.imageio.spi.IIOServiceProvider.<init>:(Ljava/lang/String;Ljava/lang/String;)V
         1: .line 55
            aload 0 /* this */
            aconst_null
            putfield javax.imageio.spi.ImageReaderWriterSpi.names:[Ljava/lang/String;
         2: .line 61
            aload 0 /* this */
            aconst_null
            putfield javax.imageio.spi.ImageReaderWriterSpi.suffixes:[Ljava/lang/String;
         3: .line 67
            aload 0 /* this */
            aconst_null
            putfield javax.imageio.spi.ImageReaderWriterSpi.MIMETypes:[Ljava/lang/String;
         4: .line 73
            aload 0 /* this */
            aconst_null
            putfield javax.imageio.spi.ImageReaderWriterSpi.pluginClassName:Ljava/lang/String;
         5: .line 80
            aload 0 /* this */
            iconst_0
            putfield javax.imageio.spi.ImageReaderWriterSpi.supportsStandardStreamMetadataFormat:Z
         6: .line 87
            aload 0 /* this */
            aconst_null
            putfield javax.imageio.spi.ImageReaderWriterSpi.nativeStreamMetadataFormatName:Ljava/lang/String;
         7: .line 94
            aload 0 /* this */
            aconst_null
            putfield javax.imageio.spi.ImageReaderWriterSpi.nativeStreamMetadataFormatClassName:Ljava/lang/String;
         8: .line 101
            aload 0 /* this */
            aconst_null
            putfield javax.imageio.spi.ImageReaderWriterSpi.extraStreamMetadataFormatNames:[Ljava/lang/String;
         9: .line 108
            aload 0 /* this */
            aconst_null
            putfield javax.imageio.spi.ImageReaderWriterSpi.extraStreamMetadataFormatClassNames:[Ljava/lang/String;
        10: .line 115
            aload 0 /* this */
            iconst_0
            putfield javax.imageio.spi.ImageReaderWriterSpi.supportsStandardImageMetadataFormat:Z
        11: .line 122
            aload 0 /* this */
            aconst_null
            putfield javax.imageio.spi.ImageReaderWriterSpi.nativeImageMetadataFormatName:Ljava/lang/String;
        12: .line 129
            aload 0 /* this */
            aconst_null
            putfield javax.imageio.spi.ImageReaderWriterSpi.nativeImageMetadataFormatClassName:Ljava/lang/String;
        13: .line 136
            aload 0 /* this */
            aconst_null
            putfield javax.imageio.spi.ImageReaderWriterSpi.extraImageMetadataFormatNames:[Ljava/lang/String;
        14: .line 143
            aload 0 /* this */
            aconst_null
            putfield javax.imageio.spi.ImageReaderWriterSpi.extraImageMetadataFormatClassNames:[Ljava/lang/String;
        15: .line 232
            aload 3 /* names */
            ifnonnull 17
        16: .line 233
            new java.lang.IllegalArgumentException
            dup
            ldc "names == null!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        17: .line 235
      StackMap locals: javax.imageio.spi.ImageReaderWriterSpi java.lang.String java.lang.String java.lang.String[] java.lang.String[] java.lang.String[] java.lang.String int java.lang.String java.lang.String java.lang.String[] java.lang.String[] int java.lang.String java.lang.String java.lang.String[] java.lang.String[]
      StackMap stack:
            aload 3 /* names */
            arraylength
            ifne 19
        18: .line 236
            new java.lang.IllegalArgumentException
            dup
            ldc "names.length == 0!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        19: .line 238
      StackMap locals:
      StackMap stack:
            aload 6 /* pluginClassName */
            ifnonnull 21
        20: .line 239
            new java.lang.IllegalArgumentException
            dup
            ldc "pluginClassName == null!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        21: .line 242
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* names */
            invokevirtual java.lang.String[].clone:()Ljava/lang/Object;
            checkcast java.lang.String[]
            putfield javax.imageio.spi.ImageReaderWriterSpi.names:[Ljava/lang/String;
        22: .line 244
            aload 4 /* suffixes */
            ifnull 24
            aload 4 /* suffixes */
            arraylength
            ifle 24
        23: .line 245
            aload 0 /* this */
            aload 4 /* suffixes */
            invokevirtual java.lang.String[].clone:()Ljava/lang/Object;
            checkcast java.lang.String[]
            putfield javax.imageio.spi.ImageReaderWriterSpi.suffixes:[Ljava/lang/String;
        24: .line 248
      StackMap locals:
      StackMap stack:
            aload 5 /* MIMETypes */
            ifnull 26
            aload 5 /* MIMETypes */
            arraylength
            ifle 26
        25: .line 249
            aload 0 /* this */
            aload 5 /* MIMETypes */
            invokevirtual java.lang.String[].clone:()Ljava/lang/Object;
            checkcast java.lang.String[]
            putfield javax.imageio.spi.ImageReaderWriterSpi.MIMETypes:[Ljava/lang/String;
        26: .line 251
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 6 /* pluginClassName */
            putfield javax.imageio.spi.ImageReaderWriterSpi.pluginClassName:Ljava/lang/String;
        27: .line 253
            aload 0 /* this */
        28: .line 254
            iload 7 /* supportsStandardStreamMetadataFormat */
        29: .line 253
            putfield javax.imageio.spi.ImageReaderWriterSpi.supportsStandardStreamMetadataFormat:Z
        30: .line 255
            aload 0 /* this */
            aload 8 /* nativeStreamMetadataFormatName */
            putfield javax.imageio.spi.ImageReaderWriterSpi.nativeStreamMetadataFormatName:Ljava/lang/String;
        31: .line 256
            aload 0 /* this */
        32: .line 257
            aload 9 /* nativeStreamMetadataFormatClassName */
        33: .line 256
            putfield javax.imageio.spi.ImageReaderWriterSpi.nativeStreamMetadataFormatClassName:Ljava/lang/String;
        34: .line 259
            aload 10 /* extraStreamMetadataFormatNames */
            ifnull 39
        35: .line 260
            aload 10 /* extraStreamMetadataFormatNames */
            arraylength
            ifle 39
        36: .line 261
            aload 0 /* this */
        37: .line 262
            aload 10 /* extraStreamMetadataFormatNames */
            invokevirtual java.lang.String[].clone:()Ljava/lang/Object;
            checkcast java.lang.String[]
        38: .line 261
            putfield javax.imageio.spi.ImageReaderWriterSpi.extraStreamMetadataFormatNames:[Ljava/lang/String;
        39: .line 265
      StackMap locals:
      StackMap stack:
            aload 11 /* extraStreamMetadataFormatClassNames */
            ifnull 44
        40: .line 266
            aload 11 /* extraStreamMetadataFormatClassNames */
            arraylength
            ifle 44
        41: .line 267
            aload 0 /* this */
        42: .line 268
            aload 11 /* extraStreamMetadataFormatClassNames */
            invokevirtual java.lang.String[].clone:()Ljava/lang/Object;
            checkcast java.lang.String[]
        43: .line 267
            putfield javax.imageio.spi.ImageReaderWriterSpi.extraStreamMetadataFormatClassNames:[Ljava/lang/String;
        44: .line 270
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
        45: .line 271
            iload 12 /* supportsStandardImageMetadataFormat */
        46: .line 270
            putfield javax.imageio.spi.ImageReaderWriterSpi.supportsStandardImageMetadataFormat:Z
        47: .line 272
            aload 0 /* this */
            aload 13 /* nativeImageMetadataFormatName */
            putfield javax.imageio.spi.ImageReaderWriterSpi.nativeImageMetadataFormatName:Ljava/lang/String;
        48: .line 273
            aload 0 /* this */
        49: .line 274
            aload 14 /* nativeImageMetadataFormatClassName */
        50: .line 273
            putfield javax.imageio.spi.ImageReaderWriterSpi.nativeImageMetadataFormatClassName:Ljava/lang/String;
        51: .line 276
            aload 15 /* extraImageMetadataFormatNames */
            ifnull 56
        52: .line 277
            aload 15 /* extraImageMetadataFormatNames */
            arraylength
            ifle 56
        53: .line 278
            aload 0 /* this */
        54: .line 279
            aload 15 /* extraImageMetadataFormatNames */
            invokevirtual java.lang.String[].clone:()Ljava/lang/Object;
            checkcast java.lang.String[]
        55: .line 278
            putfield javax.imageio.spi.ImageReaderWriterSpi.extraImageMetadataFormatNames:[Ljava/lang/String;
        56: .line 282
      StackMap locals:
      StackMap stack:
            aload 16 /* extraImageMetadataFormatClassNames */
            ifnull 61
        57: .line 283
            aload 16 /* extraImageMetadataFormatClassNames */
            arraylength
            ifle 61
        58: .line 284
            aload 0 /* this */
        59: .line 285
            aload 16 /* extraImageMetadataFormatClassNames */
            invokevirtual java.lang.String[].clone:()Ljava/lang/Object;
            checkcast java.lang.String[]
        60: .line 284
            putfield javax.imageio.spi.ImageReaderWriterSpi.extraImageMetadataFormatClassNames:[Ljava/lang/String;
        61: .line 287
      StackMap locals:
      StackMap stack:
            return
        end local 16 // java.lang.String[] extraImageMetadataFormatClassNames
        end local 15 // java.lang.String[] extraImageMetadataFormatNames
        end local 14 // java.lang.String nativeImageMetadataFormatClassName
        end local 13 // java.lang.String nativeImageMetadataFormatName
        end local 12 // boolean supportsStandardImageMetadataFormat
        end local 11 // java.lang.String[] extraStreamMetadataFormatClassNames
        end local 10 // java.lang.String[] extraStreamMetadataFormatNames
        end local 9 // java.lang.String nativeStreamMetadataFormatClassName
        end local 8 // java.lang.String nativeStreamMetadataFormatName
        end local 7 // boolean supportsStandardStreamMetadataFormat
        end local 6 // java.lang.String pluginClassName
        end local 5 // java.lang.String[] MIMETypes
        end local 4 // java.lang.String[] suffixes
        end local 3 // java.lang.String[] names
        end local 2 // java.lang.String version
        end local 1 // java.lang.String vendorName
        end local 0 // javax.imageio.spi.ImageReaderWriterSpi this
      LocalVariableTable:
        Start  End  Slot                                  Name  Signature
            0   62     0                                  this  Ljavax/imageio/spi/ImageReaderWriterSpi;
            0   62     1                            vendorName  Ljava/lang/String;
            0   62     2                               version  Ljava/lang/String;
            0   62     3                                 names  [Ljava/lang/String;
            0   62     4                              suffixes  [Ljava/lang/String;
            0   62     5                             MIMETypes  [Ljava/lang/String;
            0   62     6                       pluginClassName  Ljava/lang/String;
            0   62     7  supportsStandardStreamMetadataFormat  Z
            0   62     8        nativeStreamMetadataFormatName  Ljava/lang/String;
            0   62     9   nativeStreamMetadataFormatClassName  Ljava/lang/String;
            0   62    10        extraStreamMetadataFormatNames  [Ljava/lang/String;
            0   62    11   extraStreamMetadataFormatClassNames  [Ljava/lang/String;
            0   62    12   supportsStandardImageMetadataFormat  Z
            0   62    13         nativeImageMetadataFormatName  Ljava/lang/String;
            0   62    14    nativeImageMetadataFormatClassName  Ljava/lang/String;
            0   62    15         extraImageMetadataFormatNames  [Ljava/lang/String;
            0   62    16    extraImageMetadataFormatClassNames  [Ljava/lang/String;
    MethodParameters:
                                      Name  Flags
      vendorName                            
      version                               
      names                                 
      suffixes                              
      MIMETypes                             
      pluginClassName                       
      supportsStandardStreamMetadataFormat  
      nativeStreamMetadataFormatName        
      nativeStreamMetadataFormatClassName   
      extraStreamMetadataFormatNames        
      extraStreamMetadataFormatClassNames   
      supportsStandardImageMetadataFormat   
      nativeImageMetadataFormatName         
      nativeImageMetadataFormatClassName    
      extraImageMetadataFormatNames         
      extraImageMetadataFormatClassNames    

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // javax.imageio.spi.ImageReaderWriterSpi this
         0: .line 295
            aload 0 /* this */
            invokespecial javax.imageio.spi.IIOServiceProvider.<init>:()V
         1: .line 55
            aload 0 /* this */
            aconst_null
            putfield javax.imageio.spi.ImageReaderWriterSpi.names:[Ljava/lang/String;
         2: .line 61
            aload 0 /* this */
            aconst_null
            putfield javax.imageio.spi.ImageReaderWriterSpi.suffixes:[Ljava/lang/String;
         3: .line 67
            aload 0 /* this */
            aconst_null
            putfield javax.imageio.spi.ImageReaderWriterSpi.MIMETypes:[Ljava/lang/String;
         4: .line 73
            aload 0 /* this */
            aconst_null
            putfield javax.imageio.spi.ImageReaderWriterSpi.pluginClassName:Ljava/lang/String;
         5: .line 80
            aload 0 /* this */
            iconst_0
            putfield javax.imageio.spi.ImageReaderWriterSpi.supportsStandardStreamMetadataFormat:Z
         6: .line 87
            aload 0 /* this */
            aconst_null
            putfield javax.imageio.spi.ImageReaderWriterSpi.nativeStreamMetadataFormatName:Ljava/lang/String;
         7: .line 94
            aload 0 /* this */
            aconst_null
            putfield javax.imageio.spi.ImageReaderWriterSpi.nativeStreamMetadataFormatClassName:Ljava/lang/String;
         8: .line 101
            aload 0 /* this */
            aconst_null
            putfield javax.imageio.spi.ImageReaderWriterSpi.extraStreamMetadataFormatNames:[Ljava/lang/String;
         9: .line 108
            aload 0 /* this */
            aconst_null
            putfield javax.imageio.spi.ImageReaderWriterSpi.extraStreamMetadataFormatClassNames:[Ljava/lang/String;
        10: .line 115
            aload 0 /* this */
            iconst_0
            putfield javax.imageio.spi.ImageReaderWriterSpi.supportsStandardImageMetadataFormat:Z
        11: .line 122
            aload 0 /* this */
            aconst_null
            putfield javax.imageio.spi.ImageReaderWriterSpi.nativeImageMetadataFormatName:Ljava/lang/String;
        12: .line 129
            aload 0 /* this */
            aconst_null
            putfield javax.imageio.spi.ImageReaderWriterSpi.nativeImageMetadataFormatClassName:Ljava/lang/String;
        13: .line 136
            aload 0 /* this */
            aconst_null
            putfield javax.imageio.spi.ImageReaderWriterSpi.extraImageMetadataFormatNames:[Ljava/lang/String;
        14: .line 143
            aload 0 /* this */
            aconst_null
            putfield javax.imageio.spi.ImageReaderWriterSpi.extraImageMetadataFormatClassNames:[Ljava/lang/String;
        15: .line 296
            return
        end local 0 // javax.imageio.spi.ImageReaderWriterSpi this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   16     0  this  Ljavax/imageio/spi/ImageReaderWriterSpi;

  public java.lang.String[] getFormatNames();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.imageio.spi.ImageReaderWriterSpi this
         0: .line 311
            aload 0 /* this */
            getfield javax.imageio.spi.ImageReaderWriterSpi.names:[Ljava/lang/String;
            invokevirtual java.lang.String[].clone:()Ljava/lang/Object;
            checkcast java.lang.String[]
            areturn
        end local 0 // javax.imageio.spi.ImageReaderWriterSpi this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/imageio/spi/ImageReaderWriterSpi;

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

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

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

  public boolean isStandardStreamMetadataFormatSupported();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.imageio.spi.ImageReaderWriterSpi this
         0: .line 396
            aload 0 /* this */
            getfield javax.imageio.spi.ImageReaderWriterSpi.supportsStandardStreamMetadataFormat:Z
            ireturn
        end local 0 // javax.imageio.spi.ImageReaderWriterSpi this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/imageio/spi/ImageReaderWriterSpi;

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

  public java.lang.String[] getExtraStreamMetadataFormatNames();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.imageio.spi.ImageReaderWriterSpi this
         0: .line 445
            aload 0 /* this */
            getfield javax.imageio.spi.ImageReaderWriterSpi.extraStreamMetadataFormatNames:[Ljava/lang/String;
            ifnonnull 2
         1: .line 446
            aconst_null
            goto 3
      StackMap locals:
      StackMap stack:
         2: aload 0 /* this */
            getfield javax.imageio.spi.ImageReaderWriterSpi.extraStreamMetadataFormatNames:[Ljava/lang/String;
            invokevirtual java.lang.String[].clone:()Ljava/lang/Object;
            checkcast java.lang.String[]
         3: .line 445
      StackMap locals:
      StackMap stack: java.lang.String[]
            areturn
        end local 0 // javax.imageio.spi.ImageReaderWriterSpi this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljavax/imageio/spi/ImageReaderWriterSpi;

  public boolean isStandardImageMetadataFormatSupported();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.imageio.spi.ImageReaderWriterSpi this
         0: .line 460
            aload 0 /* this */
            getfield javax.imageio.spi.ImageReaderWriterSpi.supportsStandardImageMetadataFormat:Z
            ireturn
        end local 0 // javax.imageio.spi.ImageReaderWriterSpi this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/imageio/spi/ImageReaderWriterSpi;

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

  public java.lang.String[] getExtraImageMetadataFormatNames();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.imageio.spi.ImageReaderWriterSpi this
         0: .line 509
            aload 0 /* this */
            getfield javax.imageio.spi.ImageReaderWriterSpi.extraImageMetadataFormatNames:[Ljava/lang/String;
            ifnonnull 2
         1: .line 510
            aconst_null
            goto 3
      StackMap locals:
      StackMap stack:
         2: aload 0 /* this */
            getfield javax.imageio.spi.ImageReaderWriterSpi.extraImageMetadataFormatNames:[Ljava/lang/String;
            invokevirtual java.lang.String[].clone:()Ljava/lang/Object;
            checkcast java.lang.String[]
         3: .line 509
      StackMap locals:
      StackMap stack: java.lang.String[]
            areturn
        end local 0 // javax.imageio.spi.ImageReaderWriterSpi this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljavax/imageio/spi/ImageReaderWriterSpi;

  public javax.imageio.metadata.IIOMetadataFormat getStreamMetadataFormat(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljavax/imageio/metadata/IIOMetadataFormat;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=2, args_size=2
        start local 0 // javax.imageio.spi.ImageReaderWriterSpi this
        start local 1 // java.lang.String formatName
         0: .line 529
            aload 0 /* this */
            aload 1 /* formatName */
         1: .line 530
            aload 0 /* this */
            getfield javax.imageio.spi.ImageReaderWriterSpi.supportsStandardStreamMetadataFormat:Z
         2: .line 531
            aload 0 /* this */
            getfield javax.imageio.spi.ImageReaderWriterSpi.nativeStreamMetadataFormatName:Ljava/lang/String;
         3: .line 532
            aload 0 /* this */
            getfield javax.imageio.spi.ImageReaderWriterSpi.nativeStreamMetadataFormatClassName:Ljava/lang/String;
         4: .line 533
            aload 0 /* this */
            getfield javax.imageio.spi.ImageReaderWriterSpi.extraStreamMetadataFormatNames:[Ljava/lang/String;
         5: .line 534
            aload 0 /* this */
            getfield javax.imageio.spi.ImageReaderWriterSpi.extraStreamMetadataFormatClassNames:[Ljava/lang/String;
         6: .line 529
            invokevirtual javax.imageio.spi.ImageReaderWriterSpi.getMetadataFormat:(Ljava/lang/String;ZLjava/lang/String;Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)Ljavax/imageio/metadata/IIOMetadataFormat;
            areturn
        end local 1 // java.lang.String formatName
        end local 0 // javax.imageio.spi.ImageReaderWriterSpi this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0        this  Ljavax/imageio/spi/ImageReaderWriterSpi;
            0    7     1  formatName  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      formatName  

  public javax.imageio.metadata.IIOMetadataFormat getImageMetadataFormat(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljavax/imageio/metadata/IIOMetadataFormat;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=2, args_size=2
        start local 0 // javax.imageio.spi.ImageReaderWriterSpi this
        start local 1 // java.lang.String formatName
         0: .line 553
            aload 0 /* this */
            aload 1 /* formatName */
         1: .line 554
            aload 0 /* this */
            getfield javax.imageio.spi.ImageReaderWriterSpi.supportsStandardImageMetadataFormat:Z
         2: .line 555
            aload 0 /* this */
            getfield javax.imageio.spi.ImageReaderWriterSpi.nativeImageMetadataFormatName:Ljava/lang/String;
         3: .line 556
            aload 0 /* this */
            getfield javax.imageio.spi.ImageReaderWriterSpi.nativeImageMetadataFormatClassName:Ljava/lang/String;
         4: .line 557
            aload 0 /* this */
            getfield javax.imageio.spi.ImageReaderWriterSpi.extraImageMetadataFormatNames:[Ljava/lang/String;
         5: .line 558
            aload 0 /* this */
            getfield javax.imageio.spi.ImageReaderWriterSpi.extraImageMetadataFormatClassNames:[Ljava/lang/String;
         6: .line 553
            invokevirtual javax.imageio.spi.ImageReaderWriterSpi.getMetadataFormat:(Ljava/lang/String;ZLjava/lang/String;Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)Ljavax/imageio/metadata/IIOMetadataFormat;
            areturn
        end local 1 // java.lang.String formatName
        end local 0 // javax.imageio.spi.ImageReaderWriterSpi this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0        this  Ljavax/imageio/spi/ImageReaderWriterSpi;
            0    7     1  formatName  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      formatName  

  private javax.imageio.metadata.IIOMetadataFormat getMetadataFormat(java.lang.String, boolean, java.lang.String, java.lang.String, java.lang.String[], java.lang.String[]);
    descriptor: (Ljava/lang/String;ZLjava/lang/String;Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)Ljavax/imageio/metadata/IIOMetadataFormat;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=10, args_size=7
        start local 0 // javax.imageio.spi.ImageReaderWriterSpi this
        start local 1 // java.lang.String formatName
        start local 2 // boolean supportsStandard
        start local 3 // java.lang.String nativeName
        start local 4 // java.lang.String nativeClassName
        start local 5 // java.lang.String[] extraNames
        start local 6 // java.lang.String[] extraClassNames
         0: .line 567
            aload 1 /* formatName */
            ifnonnull 2
         1: .line 568
            new java.lang.IllegalArgumentException
            dup
            ldc "formatName == null!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 570
      StackMap locals:
      StackMap stack:
            iload 2 /* supportsStandard */
            ifeq 7
            aload 1 /* formatName */
         3: .line 571
            ldc "javax_imageio_1.0"
         4: .line 570
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
         5: .line 571
            ifeq 7
         6: .line 573
            invokestatic javax.imageio.metadata.IIOMetadataFormatImpl.getStandardFormatInstance:()Ljavax/imageio/metadata/IIOMetadataFormat;
            areturn
         7: .line 575
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 7 /* formatClassName */
        start local 7 // java.lang.String formatClassName
         8: .line 576
            aload 1 /* formatName */
            aload 3 /* nativeName */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 11
         9: .line 577
            aload 4 /* nativeClassName */
            astore 7 /* formatClassName */
        10: .line 578
            goto 19
      StackMap locals: java.lang.String
      StackMap stack:
        11: aload 5 /* extraNames */
            ifnull 19
        12: .line 579
            iconst_0
            istore 8 /* i */
        start local 8 // int i
        13: goto 18
        14: .line 580
      StackMap locals: int
      StackMap stack:
            aload 1 /* formatName */
            aload 5 /* extraNames */
            iload 8 /* i */
            aaload
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 17
        15: .line 581
            aload 6 /* extraClassNames */
            iload 8 /* i */
            aaload
            astore 7 /* formatClassName */
        16: .line 582
            goto 19
        17: .line 579
      StackMap locals:
      StackMap stack:
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        18: iload 8 /* i */
            aload 5 /* extraNames */
            arraylength
            if_icmplt 14
        end local 8 // int i
        19: .line 586
      StackMap locals:
      StackMap stack:
            aload 7 /* formatClassName */
            ifnonnull 21
        20: .line 587
            new java.lang.IllegalArgumentException
            dup
            ldc "Unsupported format name"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        21: .line 590
      StackMap locals:
      StackMap stack:
            aload 7 /* formatClassName */
            iconst_1
        22: .line 591
            invokestatic java.lang.ClassLoader.getSystemClassLoader:()Ljava/lang/ClassLoader;
        23: .line 590
            invokestatic java.lang.Class.forName:(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
            astore 8 /* cls */
        start local 8 // java.lang.Class cls
        24: .line 592
            aload 8 /* 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 9 /* meth */
        start local 9 // java.lang.reflect.Method meth
        25: .line 593
            aload 9 /* 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
        26: areturn
        end local 9 // java.lang.reflect.Method meth
        end local 8 // java.lang.Class cls
        27: .line 594
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 8 /* e */
        start local 8 // java.lang.Exception e
        28: .line 596
            new java.lang.IllegalStateException
            dup
            ldc "Can't obtain format"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
        29: .line 595
            astore 9 /* ex */
        start local 9 // java.lang.RuntimeException ex
        30: .line 597
            aload 9 /* ex */
            aload 8 /* e */
            invokevirtual java.lang.RuntimeException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            pop
        31: .line 598
            aload 9 /* ex */
            athrow
        end local 9 // java.lang.RuntimeException ex
        end local 8 // java.lang.Exception e
        end local 7 // java.lang.String formatClassName
        end local 6 // java.lang.String[] extraClassNames
        end local 5 // java.lang.String[] extraNames
        end local 4 // java.lang.String nativeClassName
        end local 3 // java.lang.String nativeName
        end local 2 // boolean supportsStandard
        end local 1 // java.lang.String formatName
        end local 0 // javax.imageio.spi.ImageReaderWriterSpi this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   32     0              this  Ljavax/imageio/spi/ImageReaderWriterSpi;
            0   32     1        formatName  Ljava/lang/String;
            0   32     2  supportsStandard  Z
            0   32     3        nativeName  Ljava/lang/String;
            0   32     4   nativeClassName  Ljava/lang/String;
            0   32     5        extraNames  [Ljava/lang/String;
            0   32     6   extraClassNames  [Ljava/lang/String;
            8   32     7   formatClassName  Ljava/lang/String;
           13   19     8                 i  I
           24   27     8               cls  Ljava/lang/Class;
           25   27     9              meth  Ljava/lang/reflect/Method;
           28   32     8                 e  Ljava/lang/Exception;
           30   32     9                ex  Ljava/lang/RuntimeException;
      Exception table:
        from    to  target  type
          21    26      27  Class java.lang.Exception
    MethodParameters:
                  Name  Flags
      formatName        
      supportsStandard  
      nativeName        
      nativeClassName   
      extraNames        
      extraClassNames   
}
SourceFile: "ImageReaderWriterSpi.java"