public abstract class javax.imageio.spi.ImageWriterSpi extends javax.imageio.spi.ImageReaderWriterSpi
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: javax.imageio.spi.ImageWriterSpi
  super_class: javax.imageio.spi.ImageReaderWriterSpi
{
  public static final java.lang.Class[] STANDARD_OUTPUT_TYPE;
    descriptor: [Ljava/lang/Class;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

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

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

  private java.lang.Class writerClass;
    descriptor: Ljava/lang/Class;
    flags: (0x0002) ACC_PRIVATE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 87
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljavax/imageio/stream/ImageOutputStream;
            aastore
         1: .line 86
            putstatic javax.imageio.spi.ImageWriterSpi.STANDARD_OUTPUT_TYPE:[Ljava/lang/Class;
         2: .line 87
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected void <init>();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // javax.imageio.spi.ImageWriterSpi this
         0: .line 114
            aload 0 /* this */
            invokespecial javax.imageio.spi.ImageReaderWriterSpi.<init>:()V
         1: .line 93
            aload 0 /* this */
            aconst_null
            putfield javax.imageio.spi.ImageWriterSpi.outputTypes:[Ljava/lang/Class;
         2: .line 100
            aload 0 /* this */
            aconst_null
            putfield javax.imageio.spi.ImageWriterSpi.readerSpiNames:[Ljava/lang/String;
         3: .line 106
            aload 0 /* this */
            aconst_null
            putfield javax.imageio.spi.ImageWriterSpi.writerClass:Ljava/lang/Class;
         4: .line 115
            return
        end local 0 // javax.imageio.spi.ImageWriterSpi this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljavax/imageio/spi/ImageWriterSpi;

  public void <init>(java.lang.String, java.lang.String, java.lang.String[], java.lang.String[], java.lang.String[], java.lang.String, java.lang.Class[], 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;[Ljava/lang/Class;[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=17, locals=19, args_size=19
        start local 0 // javax.imageio.spi.ImageWriterSpi 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 writerClassName
        start local 7 // java.lang.Class[] outputTypes
        start local 8 // java.lang.String[] readerSpiNames
        start local 9 // boolean supportsStandardStreamMetadataFormat
        start local 10 // java.lang.String nativeStreamMetadataFormatName
        start local 11 // java.lang.String nativeStreamMetadataFormatClassName
        start local 12 // java.lang.String[] extraStreamMetadataFormatNames
        start local 13 // java.lang.String[] extraStreamMetadataFormatClassNames
        start local 14 // boolean supportsStandardImageMetadataFormat
        start local 15 // java.lang.String nativeImageMetadataFormatName
        start local 16 // java.lang.String nativeImageMetadataFormatClassName
        start local 17 // java.lang.String[] extraImageMetadataFormatNames
        start local 18 // java.lang.String[] extraImageMetadataFormatClassNames
         0: .line 213
            aload 0 /* this */
            aload 1 /* vendorName */
            aload 2 /* version */
         1: .line 214
            aload 3 /* names */
            aload 4 /* suffixes */
            aload 5 /* MIMETypes */
            aload 6 /* writerClassName */
         2: .line 215
            iload 9 /* supportsStandardStreamMetadataFormat */
         3: .line 216
            aload 10 /* nativeStreamMetadataFormatName */
         4: .line 217
            aload 11 /* nativeStreamMetadataFormatClassName */
         5: .line 218
            aload 12 /* extraStreamMetadataFormatNames */
         6: .line 219
            aload 13 /* extraStreamMetadataFormatClassNames */
         7: .line 220
            iload 14 /* supportsStandardImageMetadataFormat */
         8: .line 221
            aload 15 /* nativeImageMetadataFormatName */
         9: .line 222
            aload 16 /* nativeImageMetadataFormatClassName */
        10: .line 223
            aload 17 /* extraImageMetadataFormatNames */
        11: .line 224
            aload 18 /* extraImageMetadataFormatClassNames */
            invokespecial javax.imageio.spi.ImageReaderWriterSpi.<init>:(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
        12: .line 93
            aload 0 /* this */
            aconst_null
            putfield javax.imageio.spi.ImageWriterSpi.outputTypes:[Ljava/lang/Class;
        13: .line 100
            aload 0 /* this */
            aconst_null
            putfield javax.imageio.spi.ImageWriterSpi.readerSpiNames:[Ljava/lang/String;
        14: .line 106
            aload 0 /* this */
            aconst_null
            putfield javax.imageio.spi.ImageWriterSpi.writerClass:Ljava/lang/Class;
        15: .line 226
            aload 7 /* outputTypes */
            ifnonnull 19
        16: .line 227
            new java.lang.IllegalArgumentException
            dup
        17: .line 228
            ldc "outputTypes == null!"
        18: .line 227
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        19: .line 230
      StackMap locals: javax.imageio.spi.ImageWriterSpi java.lang.String java.lang.String java.lang.String[] java.lang.String[] java.lang.String[] java.lang.String java.lang.Class[] 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 7 /* outputTypes */
            arraylength
            ifne 23
        20: .line 231
            new java.lang.IllegalArgumentException
            dup
        21: .line 232
            ldc "outputTypes.length == 0!"
        22: .line 231
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        23: .line 235
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 7 /* outputTypes */
            getstatic javax.imageio.spi.ImageWriterSpi.STANDARD_OUTPUT_TYPE:[Ljava/lang/Class;
            if_acmpne 25
        24: .line 236
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljavax/imageio/stream/ImageOutputStream;
            aastore
            goto 26
        25: .line 237
      StackMap locals:
      StackMap stack: javax.imageio.spi.ImageWriterSpi
            aload 7 /* outputTypes */
            invokevirtual java.lang.Class[].clone:()Ljava/lang/Object;
            checkcast java.lang.Class[]
        26: .line 235
      StackMap locals: javax.imageio.spi.ImageWriterSpi java.lang.String java.lang.String java.lang.String[] java.lang.String[] java.lang.String[] java.lang.String java.lang.Class[] 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: javax.imageio.spi.ImageWriterSpi java.lang.Class[]
            putfield javax.imageio.spi.ImageWriterSpi.outputTypes:[Ljava/lang/Class;
        27: .line 240
            aload 8 /* readerSpiNames */
            ifnull 29
            aload 8 /* readerSpiNames */
            arraylength
            ifle 29
        28: .line 241
            aload 0 /* this */
            aload 8 /* readerSpiNames */
            invokevirtual java.lang.String[].clone:()Ljava/lang/Object;
            checkcast java.lang.String[]
            putfield javax.imageio.spi.ImageWriterSpi.readerSpiNames:[Ljava/lang/String;
        29: .line 243
      StackMap locals:
      StackMap stack:
            return
        end local 18 // java.lang.String[] extraImageMetadataFormatClassNames
        end local 17 // java.lang.String[] extraImageMetadataFormatNames
        end local 16 // java.lang.String nativeImageMetadataFormatClassName
        end local 15 // java.lang.String nativeImageMetadataFormatName
        end local 14 // boolean supportsStandardImageMetadataFormat
        end local 13 // java.lang.String[] extraStreamMetadataFormatClassNames
        end local 12 // java.lang.String[] extraStreamMetadataFormatNames
        end local 11 // java.lang.String nativeStreamMetadataFormatClassName
        end local 10 // java.lang.String nativeStreamMetadataFormatName
        end local 9 // boolean supportsStandardStreamMetadataFormat
        end local 8 // java.lang.String[] readerSpiNames
        end local 7 // java.lang.Class[] outputTypes
        end local 6 // java.lang.String writerClassName
        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.ImageWriterSpi this
      LocalVariableTable:
        Start  End  Slot                                  Name  Signature
            0   30     0                                  this  Ljavax/imageio/spi/ImageWriterSpi;
            0   30     1                            vendorName  Ljava/lang/String;
            0   30     2                               version  Ljava/lang/String;
            0   30     3                                 names  [Ljava/lang/String;
            0   30     4                              suffixes  [Ljava/lang/String;
            0   30     5                             MIMETypes  [Ljava/lang/String;
            0   30     6                       writerClassName  Ljava/lang/String;
            0   30     7                           outputTypes  [Ljava/lang/Class;
            0   30     8                        readerSpiNames  [Ljava/lang/String;
            0   30     9  supportsStandardStreamMetadataFormat  Z
            0   30    10        nativeStreamMetadataFormatName  Ljava/lang/String;
            0   30    11   nativeStreamMetadataFormatClassName  Ljava/lang/String;
            0   30    12        extraStreamMetadataFormatNames  [Ljava/lang/String;
            0   30    13   extraStreamMetadataFormatClassNames  [Ljava/lang/String;
            0   30    14   supportsStandardImageMetadataFormat  Z
            0   30    15         nativeImageMetadataFormatName  Ljava/lang/String;
            0   30    16    nativeImageMetadataFormatClassName  Ljava/lang/String;
            0   30    17         extraImageMetadataFormatNames  [Ljava/lang/String;
            0   30    18    extraImageMetadataFormatClassNames  [Ljava/lang/String;
    MethodParameters:
                                      Name  Flags
      vendorName                            
      version                               
      names                                 
      suffixes                              
      MIMETypes                             
      writerClassName                       
      outputTypes                           
      readerSpiNames                        
      supportsStandardStreamMetadataFormat  
      nativeStreamMetadataFormatName        
      nativeStreamMetadataFormatClassName   
      extraStreamMetadataFormatNames        
      extraStreamMetadataFormatClassNames   
      supportsStandardImageMetadataFormat   
      nativeImageMetadataFormatName         
      nativeImageMetadataFormatClassName    
      extraImageMetadataFormatNames         
      extraImageMetadataFormatClassNames    

  public boolean isFormatLossless();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.imageio.spi.ImageWriterSpi this
         0: .line 254
            iconst_1
            ireturn
        end local 0 // javax.imageio.spi.ImageWriterSpi this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/imageio/spi/ImageWriterSpi;

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

  public abstract boolean canEncodeImage(javax.imageio.ImageTypeSpecifier);
    descriptor: (Ljavax/imageio/ImageTypeSpecifier;)Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      type  

  public boolean canEncodeImage(java.awt.image.RenderedImage);
    descriptor: (Ljava/awt/image/RenderedImage;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // javax.imageio.spi.ImageWriterSpi this
        start local 1 // java.awt.image.RenderedImage im
         0: .line 332
            aload 0 /* this */
            aload 1 /* im */
            invokestatic javax.imageio.ImageTypeSpecifier.createFromRenderedImage:(Ljava/awt/image/RenderedImage;)Ljavax/imageio/ImageTypeSpecifier;
            invokevirtual javax.imageio.spi.ImageWriterSpi.canEncodeImage:(Ljavax/imageio/ImageTypeSpecifier;)Z
            ireturn
        end local 1 // java.awt.image.RenderedImage im
        end local 0 // javax.imageio.spi.ImageWriterSpi this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/imageio/spi/ImageWriterSpi;
            0    1     1    im  Ljava/awt/image/RenderedImage;
    MethodParameters:
      Name  Flags
      im    

  public javax.imageio.ImageWriter createWriterInstance();
    descriptor: ()Ljavax/imageio/ImageWriter;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // javax.imageio.spi.ImageWriterSpi this
         0: .line 351
            aload 0 /* this */
            aconst_null
            invokevirtual javax.imageio.spi.ImageWriterSpi.createWriterInstance:(Ljava/lang/Object;)Ljavax/imageio/ImageWriter;
            areturn
        end local 0 // javax.imageio.spi.ImageWriterSpi this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/imageio/spi/ImageWriterSpi;
    Exceptions:
      throws java.io.IOException

  public abstract javax.imageio.ImageWriter createWriterInstance(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljavax/imageio/ImageWriter;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.io.IOException
    MethodParameters:
           Name  Flags
      extension  

  public boolean isOwnWriter(javax.imageio.ImageWriter);
    descriptor: (Ljavax/imageio/ImageWriter;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // javax.imageio.spi.ImageWriterSpi this
        start local 1 // javax.imageio.ImageWriter writer
         0: .line 395
            aload 1 /* writer */
            ifnonnull 2
         1: .line 396
            new java.lang.IllegalArgumentException
            dup
            ldc "writer == null!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 398
      StackMap locals:
      StackMap stack:
            aload 1 /* writer */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            astore 2 /* name */
        start local 2 // java.lang.String name
         3: .line 399
            aload 2 /* name */
            aload 0 /* this */
            getfield javax.imageio.spi.ImageWriterSpi.pluginClassName:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ireturn
        end local 2 // java.lang.String name
        end local 1 // javax.imageio.ImageWriter writer
        end local 0 // javax.imageio.spi.ImageWriterSpi this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Ljavax/imageio/spi/ImageWriterSpi;
            0    4     1  writer  Ljavax/imageio/ImageWriter;
            3    4     2    name  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      writer  

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