public abstract class javax.imageio.metadata.IIOMetadataFormatImpl implements javax.imageio.metadata.IIOMetadataFormat
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: javax.imageio.metadata.IIOMetadataFormatImpl
  super_class: java.lang.Object
{
  public static final java.lang.String standardMetadataFormatName;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "javax_imageio_1.0"

  private static javax.imageio.metadata.IIOMetadataFormat standardFormat;
    descriptor: Ljavax/imageio/metadata/IIOMetadataFormat;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private java.lang.String resourceBaseName;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String rootName;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.util.HashMap<java.lang.String, javax.imageio.metadata.IIOMetadataFormatImpl$Element> elementMap;
    descriptor: Ljava/util/HashMap;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/HashMap<Ljava/lang/String;Ljavax/imageio/metadata/IIOMetadataFormatImpl$Element;>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 86
            aconst_null
            putstatic javax.imageio.metadata.IIOMetadataFormatImpl.standardFormat:Ljavax/imageio/metadata/IIOMetadataFormat;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(java.lang.String, int);
    descriptor: (Ljava/lang/String;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
        start local 1 // java.lang.String rootName
        start local 2 // int childPolicy
         0: .line 170
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 88
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "Resources"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            putfield javax.imageio.metadata.IIOMetadataFormatImpl.resourceBaseName:Ljava/lang/String;
         2: .line 93
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield javax.imageio.metadata.IIOMetadataFormatImpl.elementMap:Ljava/util/HashMap;
         3: .line 172
            aload 1 /* rootName */
            ifnonnull 5
         4: .line 173
            new java.lang.IllegalArgumentException
            dup
            ldc "rootName == null!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 175
      StackMap locals: javax.imageio.metadata.IIOMetadataFormatImpl java.lang.String int
      StackMap stack:
            iload 2 /* childPolicy */
            iflt 8
         6: .line 176
            iload 2 /* childPolicy */
            iconst_5
            if_icmpgt 8
         7: .line 177
            iload 2 /* childPolicy */
            iconst_5
            if_icmpne 9
         8: .line 178
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "Invalid value for childPolicy!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 181
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* rootName */
            putfield javax.imageio.metadata.IIOMetadataFormatImpl.rootName:Ljava/lang/String;
        10: .line 183
            new javax.imageio.metadata.IIOMetadataFormatImpl$Element
            dup
            aload 0 /* this */
            invokespecial javax.imageio.metadata.IIOMetadataFormatImpl$Element.<init>:(Ljavax/imageio/metadata/IIOMetadataFormatImpl;)V
            astore 3 /* root */
        start local 3 // javax.imageio.metadata.IIOMetadataFormatImpl$Element root
        11: .line 184
            aload 3 /* root */
            aload 1 /* rootName */
            putfield javax.imageio.metadata.IIOMetadataFormatImpl$Element.elementName:Ljava/lang/String;
        12: .line 185
            aload 3 /* root */
            iload 2 /* childPolicy */
            putfield javax.imageio.metadata.IIOMetadataFormatImpl$Element.childPolicy:I
        13: .line 187
            aload 0 /* this */
            getfield javax.imageio.metadata.IIOMetadataFormatImpl.elementMap:Ljava/util/HashMap;
            aload 1 /* rootName */
            aload 3 /* root */
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        14: .line 188
            return
        end local 3 // javax.imageio.metadata.IIOMetadataFormatImpl$Element root
        end local 2 // int childPolicy
        end local 1 // java.lang.String rootName
        end local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   15     0         this  Ljavax/imageio/metadata/IIOMetadataFormatImpl;
            0   15     1     rootName  Ljava/lang/String;
            0   15     2  childPolicy  I
           11   15     3         root  Ljavax/imageio/metadata/IIOMetadataFormatImpl$Element;
    MethodParameters:
             Name  Flags
      rootName     
      childPolicy  

  public void <init>(java.lang.String, int, int);
    descriptor: (Ljava/lang/String;II)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
        start local 1 // java.lang.String rootName
        start local 2 // int minChildren
        start local 3 // int maxChildren
         0: .line 206
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 88
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "Resources"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            putfield javax.imageio.metadata.IIOMetadataFormatImpl.resourceBaseName:Ljava/lang/String;
         2: .line 93
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield javax.imageio.metadata.IIOMetadataFormatImpl.elementMap:Ljava/util/HashMap;
         3: .line 209
            aload 1 /* rootName */
            ifnonnull 5
         4: .line 210
            new java.lang.IllegalArgumentException
            dup
            ldc "rootName == null!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 212
      StackMap locals: javax.imageio.metadata.IIOMetadataFormatImpl java.lang.String int int
      StackMap stack:
            iload 2 /* minChildren */
            ifge 7
         6: .line 213
            new java.lang.IllegalArgumentException
            dup
            ldc "minChildren < 0!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 215
      StackMap locals:
      StackMap stack:
            iload 2 /* minChildren */
            iload 3 /* maxChildren */
            if_icmple 9
         8: .line 216
            new java.lang.IllegalArgumentException
            dup
            ldc "minChildren > maxChildren!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 219
      StackMap locals:
      StackMap stack:
            new javax.imageio.metadata.IIOMetadataFormatImpl$Element
            dup
            aload 0 /* this */
            invokespecial javax.imageio.metadata.IIOMetadataFormatImpl$Element.<init>:(Ljavax/imageio/metadata/IIOMetadataFormatImpl;)V
            astore 4 /* root */
        start local 4 // javax.imageio.metadata.IIOMetadataFormatImpl$Element root
        10: .line 220
            aload 4 /* root */
            aload 1 /* rootName */
            putfield javax.imageio.metadata.IIOMetadataFormatImpl$Element.elementName:Ljava/lang/String;
        11: .line 221
            aload 4 /* root */
            iconst_5
            putfield javax.imageio.metadata.IIOMetadataFormatImpl$Element.childPolicy:I
        12: .line 222
            aload 4 /* root */
            iload 2 /* minChildren */
            putfield javax.imageio.metadata.IIOMetadataFormatImpl$Element.minChildren:I
        13: .line 223
            aload 4 /* root */
            iload 3 /* maxChildren */
            putfield javax.imageio.metadata.IIOMetadataFormatImpl$Element.maxChildren:I
        14: .line 225
            aload 0 /* this */
            aload 1 /* rootName */
            putfield javax.imageio.metadata.IIOMetadataFormatImpl.rootName:Ljava/lang/String;
        15: .line 226
            aload 0 /* this */
            getfield javax.imageio.metadata.IIOMetadataFormatImpl.elementMap:Ljava/util/HashMap;
            aload 1 /* rootName */
            aload 4 /* root */
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        16: .line 227
            return
        end local 4 // javax.imageio.metadata.IIOMetadataFormatImpl$Element root
        end local 3 // int maxChildren
        end local 2 // int minChildren
        end local 1 // java.lang.String rootName
        end local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   17     0         this  Ljavax/imageio/metadata/IIOMetadataFormatImpl;
            0   17     1     rootName  Ljava/lang/String;
            0   17     2  minChildren  I
            0   17     3  maxChildren  I
           10   17     4         root  Ljavax/imageio/metadata/IIOMetadataFormatImpl$Element;
    MethodParameters:
             Name  Flags
      rootName     
      minChildren  
      maxChildren  

  protected void setResourceBaseName(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
        start local 1 // java.lang.String resourceBaseName
         0: .line 247
            aload 1 /* resourceBaseName */
            ifnonnull 2
         1: .line 248
            new java.lang.IllegalArgumentException
            dup
            ldc "resourceBaseName == null!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 250
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* resourceBaseName */
            putfield javax.imageio.metadata.IIOMetadataFormatImpl.resourceBaseName:Ljava/lang/String;
         3: .line 251
            return
        end local 1 // java.lang.String resourceBaseName
        end local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    4     0              this  Ljavax/imageio/metadata/IIOMetadataFormatImpl;
            0    4     1  resourceBaseName  Ljava/lang/String;
    MethodParameters:
                  Name  Flags
      resourceBaseName  

  protected java.lang.String getResourceBaseName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
         0: .line 262
            aload 0 /* this */
            getfield javax.imageio.metadata.IIOMetadataFormatImpl.resourceBaseName:Ljava/lang/String;
            areturn
        end local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/imageio/metadata/IIOMetadataFormatImpl;

  private javax.imageio.metadata.IIOMetadataFormatImpl$Element getElement(java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Z)Ljavax/imageio/metadata/IIOMetadataFormatImpl$Element;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
        start local 1 // java.lang.String elementName
        start local 2 // boolean mustAppear
         0: .line 273
            iload 2 /* mustAppear */
            ifeq 2
            aload 1 /* elementName */
            ifnonnull 2
         1: .line 274
            new java.lang.IllegalArgumentException
            dup
            ldc "element name is null!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 276
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield javax.imageio.metadata.IIOMetadataFormatImpl.elementMap:Ljava/util/HashMap;
            aload 1 /* elementName */
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast javax.imageio.metadata.IIOMetadataFormatImpl$Element
            astore 3 /* element */
        start local 3 // javax.imageio.metadata.IIOMetadataFormatImpl$Element element
         3: .line 277
            iload 2 /* mustAppear */
            ifeq 7
            aload 3 /* element */
            ifnonnull 7
         4: .line 278
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "No such element: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         5: .line 279
            aload 1 /* elementName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         6: .line 278
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 281
      StackMap locals: javax.imageio.metadata.IIOMetadataFormatImpl$Element
      StackMap stack:
            aload 3 /* element */
            areturn
        end local 3 // javax.imageio.metadata.IIOMetadataFormatImpl$Element element
        end local 2 // boolean mustAppear
        end local 1 // java.lang.String elementName
        end local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    8     0         this  Ljavax/imageio/metadata/IIOMetadataFormatImpl;
            0    8     1  elementName  Ljava/lang/String;
            0    8     2   mustAppear  Z
            3    8     3      element  Ljavax/imageio/metadata/IIOMetadataFormatImpl$Element;
    MethodParameters:
             Name  Flags
      elementName  
      mustAppear   

  private javax.imageio.metadata.IIOMetadataFormatImpl$Element getElement(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljavax/imageio/metadata/IIOMetadataFormatImpl$Element;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
        start local 1 // java.lang.String elementName
         0: .line 285
            aload 0 /* this */
            aload 1 /* elementName */
            iconst_1
            invokevirtual javax.imageio.metadata.IIOMetadataFormatImpl.getElement:(Ljava/lang/String;Z)Ljavax/imageio/metadata/IIOMetadataFormatImpl$Element;
            areturn
        end local 1 // java.lang.String elementName
        end local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Ljavax/imageio/metadata/IIOMetadataFormatImpl;
            0    1     1  elementName  Ljava/lang/String;
    MethodParameters:
             Name  Flags
      elementName  

  private javax.imageio.metadata.IIOMetadataFormatImpl$Attribute getAttribute(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljavax/imageio/metadata/IIOMetadataFormatImpl$Attribute;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
        start local 1 // java.lang.String elementName
        start local 2 // java.lang.String attrName
         0: .line 290
            aload 0 /* this */
            aload 1 /* elementName */
            invokevirtual javax.imageio.metadata.IIOMetadataFormatImpl.getElement:(Ljava/lang/String;)Ljavax/imageio/metadata/IIOMetadataFormatImpl$Element;
            astore 3 /* element */
        start local 3 // javax.imageio.metadata.IIOMetadataFormatImpl$Element element
         1: .line 291
            aload 3 /* element */
            getfield javax.imageio.metadata.IIOMetadataFormatImpl$Element.attrMap:Ljava/util/Map;
            aload 2 /* attrName */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast javax.imageio.metadata.IIOMetadataFormatImpl$Attribute
            astore 4 /* attr */
        start local 4 // javax.imageio.metadata.IIOMetadataFormatImpl$Attribute attr
         2: .line 292
            aload 4 /* attr */
            ifnonnull 6
         3: .line 293
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "No such attribute \""
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         4: .line 294
            aload 2 /* attrName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\"!"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         5: .line 293
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 296
      StackMap locals: javax.imageio.metadata.IIOMetadataFormatImpl$Element javax.imageio.metadata.IIOMetadataFormatImpl$Attribute
      StackMap stack:
            aload 4 /* attr */
            areturn
        end local 4 // javax.imageio.metadata.IIOMetadataFormatImpl$Attribute attr
        end local 3 // javax.imageio.metadata.IIOMetadataFormatImpl$Element element
        end local 2 // java.lang.String attrName
        end local 1 // java.lang.String elementName
        end local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    7     0         this  Ljavax/imageio/metadata/IIOMetadataFormatImpl;
            0    7     1  elementName  Ljava/lang/String;
            0    7     2     attrName  Ljava/lang/String;
            1    7     3      element  Ljavax/imageio/metadata/IIOMetadataFormatImpl$Element;
            2    7     4         attr  Ljavax/imageio/metadata/IIOMetadataFormatImpl$Attribute;
    MethodParameters:
             Name  Flags
      elementName  
      attrName     

  protected void addElement(java.lang.String, java.lang.String, int);
    descriptor: (Ljava/lang/String;Ljava/lang/String;I)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=6, args_size=4
        start local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
        start local 1 // java.lang.String elementName
        start local 2 // java.lang.String parentName
        start local 3 // int childPolicy
         0: .line 321
            aload 0 /* this */
            aload 2 /* parentName */
            invokevirtual javax.imageio.metadata.IIOMetadataFormatImpl.getElement:(Ljava/lang/String;)Ljavax/imageio/metadata/IIOMetadataFormatImpl$Element;
            astore 4 /* parent */
        start local 4 // javax.imageio.metadata.IIOMetadataFormatImpl$Element parent
         1: .line 322
            iload 3 /* childPolicy */
            iflt 4
         2: .line 323
            iload 3 /* childPolicy */
            iconst_5
            if_icmpgt 4
         3: .line 324
            iload 3 /* childPolicy */
            iconst_5
            if_icmpne 7
         4: .line 325
      StackMap locals: javax.imageio.metadata.IIOMetadataFormatImpl$Element
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
         5: .line 326
            ldc "Invalid value for childPolicy!"
         6: .line 325
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 329
      StackMap locals:
      StackMap stack:
            new javax.imageio.metadata.IIOMetadataFormatImpl$Element
            dup
            aload 0 /* this */
            invokespecial javax.imageio.metadata.IIOMetadataFormatImpl$Element.<init>:(Ljavax/imageio/metadata/IIOMetadataFormatImpl;)V
            astore 5 /* element */
        start local 5 // javax.imageio.metadata.IIOMetadataFormatImpl$Element element
         8: .line 330
            aload 5 /* element */
            aload 1 /* elementName */
            putfield javax.imageio.metadata.IIOMetadataFormatImpl$Element.elementName:Ljava/lang/String;
         9: .line 331
            aload 5 /* element */
            iload 3 /* childPolicy */
            putfield javax.imageio.metadata.IIOMetadataFormatImpl$Element.childPolicy:I
        10: .line 333
            aload 4 /* parent */
            getfield javax.imageio.metadata.IIOMetadataFormatImpl$Element.childList:Ljava/util/List;
            aload 1 /* elementName */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        11: .line 334
            aload 5 /* element */
            getfield javax.imageio.metadata.IIOMetadataFormatImpl$Element.parentList:Ljava/util/List;
            aload 2 /* parentName */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        12: .line 336
            aload 0 /* this */
            getfield javax.imageio.metadata.IIOMetadataFormatImpl.elementMap:Ljava/util/HashMap;
            aload 1 /* elementName */
            aload 5 /* element */
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        13: .line 337
            return
        end local 5 // javax.imageio.metadata.IIOMetadataFormatImpl$Element element
        end local 4 // javax.imageio.metadata.IIOMetadataFormatImpl$Element parent
        end local 3 // int childPolicy
        end local 2 // java.lang.String parentName
        end local 1 // java.lang.String elementName
        end local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   14     0         this  Ljavax/imageio/metadata/IIOMetadataFormatImpl;
            0   14     1  elementName  Ljava/lang/String;
            0   14     2   parentName  Ljava/lang/String;
            0   14     3  childPolicy  I
            1   14     4       parent  Ljavax/imageio/metadata/IIOMetadataFormatImpl$Element;
            8   14     5      element  Ljavax/imageio/metadata/IIOMetadataFormatImpl$Element;
    MethodParameters:
             Name  Flags
      elementName  
      parentName   
      childPolicy  

  protected void addElement(java.lang.String, java.lang.String, int, int);
    descriptor: (Ljava/lang/String;Ljava/lang/String;II)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=7, args_size=5
        start local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
        start local 1 // java.lang.String elementName
        start local 2 // java.lang.String parentName
        start local 3 // int minChildren
        start local 4 // int maxChildren
         0: .line 359
            aload 0 /* this */
            aload 2 /* parentName */
            invokevirtual javax.imageio.metadata.IIOMetadataFormatImpl.getElement:(Ljava/lang/String;)Ljavax/imageio/metadata/IIOMetadataFormatImpl$Element;
            astore 5 /* parent */
        start local 5 // javax.imageio.metadata.IIOMetadataFormatImpl$Element parent
         1: .line 360
            iload 3 /* minChildren */
            ifge 3
         2: .line 361
            new java.lang.IllegalArgumentException
            dup
            ldc "minChildren < 0!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 363
      StackMap locals: javax.imageio.metadata.IIOMetadataFormatImpl$Element
      StackMap stack:
            iload 3 /* minChildren */
            iload 4 /* maxChildren */
            if_icmple 5
         4: .line 364
            new java.lang.IllegalArgumentException
            dup
            ldc "minChildren > maxChildren!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 367
      StackMap locals:
      StackMap stack:
            new javax.imageio.metadata.IIOMetadataFormatImpl$Element
            dup
            aload 0 /* this */
            invokespecial javax.imageio.metadata.IIOMetadataFormatImpl$Element.<init>:(Ljavax/imageio/metadata/IIOMetadataFormatImpl;)V
            astore 6 /* element */
        start local 6 // javax.imageio.metadata.IIOMetadataFormatImpl$Element element
         6: .line 368
            aload 6 /* element */
            aload 1 /* elementName */
            putfield javax.imageio.metadata.IIOMetadataFormatImpl$Element.elementName:Ljava/lang/String;
         7: .line 369
            aload 6 /* element */
            iconst_5
            putfield javax.imageio.metadata.IIOMetadataFormatImpl$Element.childPolicy:I
         8: .line 370
            aload 6 /* element */
            iload 3 /* minChildren */
            putfield javax.imageio.metadata.IIOMetadataFormatImpl$Element.minChildren:I
         9: .line 371
            aload 6 /* element */
            iload 4 /* maxChildren */
            putfield javax.imageio.metadata.IIOMetadataFormatImpl$Element.maxChildren:I
        10: .line 373
            aload 5 /* parent */
            getfield javax.imageio.metadata.IIOMetadataFormatImpl$Element.childList:Ljava/util/List;
            aload 1 /* elementName */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        11: .line 374
            aload 6 /* element */
            getfield javax.imageio.metadata.IIOMetadataFormatImpl$Element.parentList:Ljava/util/List;
            aload 2 /* parentName */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        12: .line 376
            aload 0 /* this */
            getfield javax.imageio.metadata.IIOMetadataFormatImpl.elementMap:Ljava/util/HashMap;
            aload 1 /* elementName */
            aload 6 /* element */
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        13: .line 377
            return
        end local 6 // javax.imageio.metadata.IIOMetadataFormatImpl$Element element
        end local 5 // javax.imageio.metadata.IIOMetadataFormatImpl$Element parent
        end local 4 // int maxChildren
        end local 3 // int minChildren
        end local 2 // java.lang.String parentName
        end local 1 // java.lang.String elementName
        end local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   14     0         this  Ljavax/imageio/metadata/IIOMetadataFormatImpl;
            0   14     1  elementName  Ljava/lang/String;
            0   14     2   parentName  Ljava/lang/String;
            0   14     3  minChildren  I
            0   14     4  maxChildren  I
            1   14     5       parent  Ljavax/imageio/metadata/IIOMetadataFormatImpl$Element;
            6   14     6      element  Ljavax/imageio/metadata/IIOMetadataFormatImpl$Element;
    MethodParameters:
             Name  Flags
      elementName  
      parentName   
      minChildren  
      maxChildren  

  protected void addChildElement(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=5, args_size=3
        start local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
        start local 1 // java.lang.String elementName
        start local 2 // java.lang.String parentName
         0: .line 396
            aload 0 /* this */
            aload 2 /* parentName */
            invokevirtual javax.imageio.metadata.IIOMetadataFormatImpl.getElement:(Ljava/lang/String;)Ljavax/imageio/metadata/IIOMetadataFormatImpl$Element;
            astore 3 /* parent */
        start local 3 // javax.imageio.metadata.IIOMetadataFormatImpl$Element parent
         1: .line 397
            aload 0 /* this */
            aload 1 /* elementName */
            invokevirtual javax.imageio.metadata.IIOMetadataFormatImpl.getElement:(Ljava/lang/String;)Ljavax/imageio/metadata/IIOMetadataFormatImpl$Element;
            astore 4 /* element */
        start local 4 // javax.imageio.metadata.IIOMetadataFormatImpl$Element element
         2: .line 398
            aload 3 /* parent */
            getfield javax.imageio.metadata.IIOMetadataFormatImpl$Element.childList:Ljava/util/List;
            aload 1 /* elementName */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         3: .line 399
            aload 4 /* element */
            getfield javax.imageio.metadata.IIOMetadataFormatImpl$Element.parentList:Ljava/util/List;
            aload 2 /* parentName */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         4: .line 400
            return
        end local 4 // javax.imageio.metadata.IIOMetadataFormatImpl$Element element
        end local 3 // javax.imageio.metadata.IIOMetadataFormatImpl$Element parent
        end local 2 // java.lang.String parentName
        end local 1 // java.lang.String elementName
        end local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    5     0         this  Ljavax/imageio/metadata/IIOMetadataFormatImpl;
            0    5     1  elementName  Ljava/lang/String;
            0    5     2   parentName  Ljava/lang/String;
            1    5     3       parent  Ljavax/imageio/metadata/IIOMetadataFormatImpl$Element;
            2    5     4      element  Ljavax/imageio/metadata/IIOMetadataFormatImpl$Element;
    MethodParameters:
             Name  Flags
      elementName  
      parentName   

  protected void removeElement(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
        start local 1 // java.lang.String elementName
         0: .line 410
            aload 0 /* this */
            aload 1 /* elementName */
            iconst_0
            invokevirtual javax.imageio.metadata.IIOMetadataFormatImpl.getElement:(Ljava/lang/String;Z)Ljavax/imageio/metadata/IIOMetadataFormatImpl$Element;
            astore 2 /* element */
        start local 2 // javax.imageio.metadata.IIOMetadataFormatImpl$Element element
         1: .line 411
            aload 2 /* element */
            ifnull 10
         2: .line 412
            aload 2 /* element */
            getfield javax.imageio.metadata.IIOMetadataFormatImpl$Element.parentList:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3 /* iter */
        start local 3 // java.util.Iterator iter
         3: .line 413
            goto 8
         4: .line 414
      StackMap locals: javax.imageio.metadata.IIOMetadataFormatImpl$Element java.util.Iterator
      StackMap stack:
            aload 3 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 4 /* parentName */
        start local 4 // java.lang.String parentName
         5: .line 415
            aload 0 /* this */
            aload 4 /* parentName */
            iconst_0
            invokevirtual javax.imageio.metadata.IIOMetadataFormatImpl.getElement:(Ljava/lang/String;Z)Ljavax/imageio/metadata/IIOMetadataFormatImpl$Element;
            astore 5 /* parent */
        start local 5 // javax.imageio.metadata.IIOMetadataFormatImpl$Element parent
         6: .line 416
            aload 5 /* parent */
            ifnull 8
         7: .line 417
            aload 5 /* parent */
            getfield javax.imageio.metadata.IIOMetadataFormatImpl$Element.childList:Ljava/util/List;
            aload 1 /* elementName */
            invokeinterface java.util.List.remove:(Ljava/lang/Object;)Z
            pop
        end local 5 // javax.imageio.metadata.IIOMetadataFormatImpl$Element parent
        end local 4 // java.lang.String parentName
         8: .line 413
      StackMap locals:
      StackMap stack:
            aload 3 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
         9: .line 420
            aload 0 /* this */
            getfield javax.imageio.metadata.IIOMetadataFormatImpl.elementMap:Ljava/util/HashMap;
            aload 1 /* elementName */
            invokevirtual java.util.HashMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 3 // java.util.Iterator iter
        10: .line 422
      StackMap locals:
      StackMap stack:
            return
        end local 2 // javax.imageio.metadata.IIOMetadataFormatImpl$Element element
        end local 1 // java.lang.String elementName
        end local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   11     0         this  Ljavax/imageio/metadata/IIOMetadataFormatImpl;
            0   11     1  elementName  Ljava/lang/String;
            1   11     2      element  Ljavax/imageio/metadata/IIOMetadataFormatImpl$Element;
            3   10     3         iter  Ljava/util/Iterator<Ljava/lang/String;>;
            5    8     4   parentName  Ljava/lang/String;
            6    8     5       parent  Ljavax/imageio/metadata/IIOMetadataFormatImpl$Element;
    MethodParameters:
             Name  Flags
      elementName  

  protected void addAttribute(java.lang.String, java.lang.String, int, boolean, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;IZLjava/lang/String;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=8, args_size=6
        start local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
        start local 1 // java.lang.String elementName
        start local 2 // java.lang.String attrName
        start local 3 // int dataType
        start local 4 // boolean required
        start local 5 // java.lang.String defaultValue
         0: .line 449
            aload 0 /* this */
            aload 1 /* elementName */
            invokevirtual javax.imageio.metadata.IIOMetadataFormatImpl.getElement:(Ljava/lang/String;)Ljavax/imageio/metadata/IIOMetadataFormatImpl$Element;
            astore 6 /* element */
        start local 6 // javax.imageio.metadata.IIOMetadataFormatImpl$Element element
         1: .line 450
            aload 2 /* attrName */
            ifnonnull 3
         2: .line 451
            new java.lang.IllegalArgumentException
            dup
            ldc "attrName == null!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 453
      StackMap locals: javax.imageio.metadata.IIOMetadataFormatImpl$Element
      StackMap stack:
            iload 3 /* dataType */
            iflt 4
            iload 3 /* dataType */
            iconst_4
            if_icmple 5
         4: .line 454
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "Invalid value for dataType!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 457
      StackMap locals:
      StackMap stack:
            new javax.imageio.metadata.IIOMetadataFormatImpl$Attribute
            dup
            aload 0 /* this */
            invokespecial javax.imageio.metadata.IIOMetadataFormatImpl$Attribute.<init>:(Ljavax/imageio/metadata/IIOMetadataFormatImpl;)V
            astore 7 /* attr */
        start local 7 // javax.imageio.metadata.IIOMetadataFormatImpl$Attribute attr
         6: .line 458
            aload 7 /* attr */
            aload 2 /* attrName */
            putfield javax.imageio.metadata.IIOMetadataFormatImpl$Attribute.attrName:Ljava/lang/String;
         7: .line 459
            aload 7 /* attr */
            iconst_1
            putfield javax.imageio.metadata.IIOMetadataFormatImpl$Attribute.valueType:I
         8: .line 460
            aload 7 /* attr */
            iload 3 /* dataType */
            putfield javax.imageio.metadata.IIOMetadataFormatImpl$Attribute.dataType:I
         9: .line 461
            aload 7 /* attr */
            iload 4 /* required */
            putfield javax.imageio.metadata.IIOMetadataFormatImpl$Attribute.required:Z
        10: .line 462
            aload 7 /* attr */
            aload 5 /* defaultValue */
            putfield javax.imageio.metadata.IIOMetadataFormatImpl$Attribute.defaultValue:Ljava/lang/String;
        11: .line 464
            aload 6 /* element */
            getfield javax.imageio.metadata.IIOMetadataFormatImpl$Element.attrList:Ljava/util/List;
            aload 2 /* attrName */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        12: .line 465
            aload 6 /* element */
            getfield javax.imageio.metadata.IIOMetadataFormatImpl$Element.attrMap:Ljava/util/Map;
            aload 2 /* attrName */
            aload 7 /* attr */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        13: .line 466
            return
        end local 7 // javax.imageio.metadata.IIOMetadataFormatImpl$Attribute attr
        end local 6 // javax.imageio.metadata.IIOMetadataFormatImpl$Element element
        end local 5 // java.lang.String defaultValue
        end local 4 // boolean required
        end local 3 // int dataType
        end local 2 // java.lang.String attrName
        end local 1 // java.lang.String elementName
        end local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   14     0          this  Ljavax/imageio/metadata/IIOMetadataFormatImpl;
            0   14     1   elementName  Ljava/lang/String;
            0   14     2      attrName  Ljava/lang/String;
            0   14     3      dataType  I
            0   14     4      required  Z
            0   14     5  defaultValue  Ljava/lang/String;
            1   14     6       element  Ljavax/imageio/metadata/IIOMetadataFormatImpl$Element;
            6   14     7          attr  Ljavax/imageio/metadata/IIOMetadataFormatImpl$Attribute;
    MethodParameters:
              Name  Flags
      elementName   
      attrName      
      dataType      
      required      
      defaultValue  

  protected void addAttribute(java.lang.String, java.lang.String, int, boolean, java.lang.String, java.util.List<java.lang.String>);
    descriptor: (Ljava/lang/String;Ljava/lang/String;IZLjava/lang/String;Ljava/util/List;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=10, args_size=7
        start local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
        start local 1 // java.lang.String elementName
        start local 2 // java.lang.String attrName
        start local 3 // int dataType
        start local 4 // boolean required
        start local 5 // java.lang.String defaultValue
        start local 6 // java.util.List enumeratedValues
         0: .line 505
            aload 0 /* this */
            aload 1 /* elementName */
            invokevirtual javax.imageio.metadata.IIOMetadataFormatImpl.getElement:(Ljava/lang/String;)Ljavax/imageio/metadata/IIOMetadataFormatImpl$Element;
            astore 7 /* element */
        start local 7 // javax.imageio.metadata.IIOMetadataFormatImpl$Element element
         1: .line 506
            aload 2 /* attrName */
            ifnonnull 3
         2: .line 507
            new java.lang.IllegalArgumentException
            dup
            ldc "attrName == null!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 509
      StackMap locals: javax.imageio.metadata.IIOMetadataFormatImpl$Element
      StackMap stack:
            iload 3 /* dataType */
            iflt 4
            iload 3 /* dataType */
            iconst_4
            if_icmple 5
         4: .line 510
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "Invalid value for dataType!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 512
      StackMap locals:
      StackMap stack:
            aload 6 /* enumeratedValues */
            ifnonnull 7
         6: .line 513
            new java.lang.IllegalArgumentException
            dup
            ldc "enumeratedValues == null!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 515
      StackMap locals:
      StackMap stack:
            aload 6 /* enumeratedValues */
            invokeinterface java.util.List.size:()I
            ifne 9
         8: .line 516
            new java.lang.IllegalArgumentException
            dup
            ldc "enumeratedValues is empty!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 518
      StackMap locals:
      StackMap stack:
            aload 6 /* enumeratedValues */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 8 /* iter */
        start local 8 // java.util.Iterator iter
        10: .line 519
            goto 20
        11: .line 520
      StackMap locals: java.util.Iterator
      StackMap stack:
            aload 8 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            astore 9 /* o */
        start local 9 // java.lang.Object o
        12: .line 521
            aload 9 /* o */
            ifnonnull 16
        13: .line 522
            new java.lang.IllegalArgumentException
            dup
        14: .line 523
            ldc "enumeratedValues contains a null!"
        15: .line 522
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        16: .line 525
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 9 /* o */
            instanceof java.lang.String
            ifne 20
        17: .line 526
            new java.lang.IllegalArgumentException
            dup
        18: .line 527
            ldc "enumeratedValues contains a non-String value!"
        19: .line 526
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 9 // java.lang.Object o
        20: .line 519
      StackMap locals:
      StackMap stack:
            aload 8 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 11
        21: .line 531
            new javax.imageio.metadata.IIOMetadataFormatImpl$Attribute
            dup
            aload 0 /* this */
            invokespecial javax.imageio.metadata.IIOMetadataFormatImpl$Attribute.<init>:(Ljavax/imageio/metadata/IIOMetadataFormatImpl;)V
            astore 9 /* attr */
        start local 9 // javax.imageio.metadata.IIOMetadataFormatImpl$Attribute attr
        22: .line 532
            aload 9 /* attr */
            aload 2 /* attrName */
            putfield javax.imageio.metadata.IIOMetadataFormatImpl$Attribute.attrName:Ljava/lang/String;
        23: .line 533
            aload 9 /* attr */
            bipush 16
            putfield javax.imageio.metadata.IIOMetadataFormatImpl$Attribute.valueType:I
        24: .line 534
            aload 9 /* attr */
            iload 3 /* dataType */
            putfield javax.imageio.metadata.IIOMetadataFormatImpl$Attribute.dataType:I
        25: .line 535
            aload 9 /* attr */
            iload 4 /* required */
            putfield javax.imageio.metadata.IIOMetadataFormatImpl$Attribute.required:Z
        26: .line 536
            aload 9 /* attr */
            aload 5 /* defaultValue */
            putfield javax.imageio.metadata.IIOMetadataFormatImpl$Attribute.defaultValue:Ljava/lang/String;
        27: .line 537
            aload 9 /* attr */
            aload 6 /* enumeratedValues */
            putfield javax.imageio.metadata.IIOMetadataFormatImpl$Attribute.enumeratedValues:Ljava/util/List;
        28: .line 539
            aload 7 /* element */
            getfield javax.imageio.metadata.IIOMetadataFormatImpl$Element.attrList:Ljava/util/List;
            aload 2 /* attrName */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        29: .line 540
            aload 7 /* element */
            getfield javax.imageio.metadata.IIOMetadataFormatImpl$Element.attrMap:Ljava/util/Map;
            aload 2 /* attrName */
            aload 9 /* attr */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        30: .line 541
            return
        end local 9 // javax.imageio.metadata.IIOMetadataFormatImpl$Attribute attr
        end local 8 // java.util.Iterator iter
        end local 7 // javax.imageio.metadata.IIOMetadataFormatImpl$Element element
        end local 6 // java.util.List enumeratedValues
        end local 5 // java.lang.String defaultValue
        end local 4 // boolean required
        end local 3 // int dataType
        end local 2 // java.lang.String attrName
        end local 1 // java.lang.String elementName
        end local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   31     0              this  Ljavax/imageio/metadata/IIOMetadataFormatImpl;
            0   31     1       elementName  Ljava/lang/String;
            0   31     2          attrName  Ljava/lang/String;
            0   31     3          dataType  I
            0   31     4          required  Z
            0   31     5      defaultValue  Ljava/lang/String;
            0   31     6  enumeratedValues  Ljava/util/List<Ljava/lang/String;>;
            1   31     7           element  Ljavax/imageio/metadata/IIOMetadataFormatImpl$Element;
           10   31     8              iter  Ljava/util/Iterator<Ljava/lang/String;>;
           12   20     9                 o  Ljava/lang/Object;
           22   31     9              attr  Ljavax/imageio/metadata/IIOMetadataFormatImpl$Attribute;
    Signature: (Ljava/lang/String;Ljava/lang/String;IZLjava/lang/String;Ljava/util/List<Ljava/lang/String;>;)V
    MethodParameters:
                  Name  Flags
      elementName       
      attrName          
      dataType          
      required          
      defaultValue      
      enumeratedValues  

  protected void addAttribute(java.lang.String, java.lang.String, int, boolean, java.lang.String, java.lang.String, java.lang.String, boolean, boolean);
    descriptor: (Ljava/lang/String;Ljava/lang/String;IZLjava/lang/String;Ljava/lang/String;Ljava/lang/String;ZZ)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=12, args_size=10
        start local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
        start local 1 // java.lang.String elementName
        start local 2 // java.lang.String attrName
        start local 3 // int dataType
        start local 4 // boolean required
        start local 5 // java.lang.String defaultValue
        start local 6 // java.lang.String minValue
        start local 7 // java.lang.String maxValue
        start local 8 // boolean minInclusive
        start local 9 // boolean maxInclusive
         0: .line 582
            aload 0 /* this */
            aload 1 /* elementName */
            invokevirtual javax.imageio.metadata.IIOMetadataFormatImpl.getElement:(Ljava/lang/String;)Ljavax/imageio/metadata/IIOMetadataFormatImpl$Element;
            astore 10 /* element */
        start local 10 // javax.imageio.metadata.IIOMetadataFormatImpl$Element element
         1: .line 583
            aload 2 /* attrName */
            ifnonnull 3
         2: .line 584
            new java.lang.IllegalArgumentException
            dup
            ldc "attrName == null!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 586
      StackMap locals: javax.imageio.metadata.IIOMetadataFormatImpl$Element
      StackMap stack:
            iload 3 /* dataType */
            iflt 4
            iload 3 /* dataType */
            iconst_4
            if_icmple 5
         4: .line 587
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "Invalid value for dataType!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 590
      StackMap locals:
      StackMap stack:
            new javax.imageio.metadata.IIOMetadataFormatImpl$Attribute
            dup
            aload 0 /* this */
            invokespecial javax.imageio.metadata.IIOMetadataFormatImpl$Attribute.<init>:(Ljavax/imageio/metadata/IIOMetadataFormatImpl;)V
            astore 11 /* attr */
        start local 11 // javax.imageio.metadata.IIOMetadataFormatImpl$Attribute attr
         6: .line 591
            aload 11 /* attr */
            aload 2 /* attrName */
            putfield javax.imageio.metadata.IIOMetadataFormatImpl$Attribute.attrName:Ljava/lang/String;
         7: .line 592
            aload 11 /* attr */
            iconst_2
            putfield javax.imageio.metadata.IIOMetadataFormatImpl$Attribute.valueType:I
         8: .line 593
            iload 8 /* minInclusive */
            ifeq 10
         9: .line 594
            aload 11 /* attr */
            dup
            getfield javax.imageio.metadata.IIOMetadataFormatImpl$Attribute.valueType:I
            iconst_4
            ior
            putfield javax.imageio.metadata.IIOMetadataFormatImpl$Attribute.valueType:I
        10: .line 596
      StackMap locals: javax.imageio.metadata.IIOMetadataFormatImpl$Attribute
      StackMap stack:
            iload 9 /* maxInclusive */
            ifeq 12
        11: .line 597
            aload 11 /* attr */
            dup
            getfield javax.imageio.metadata.IIOMetadataFormatImpl$Attribute.valueType:I
            bipush 8
            ior
            putfield javax.imageio.metadata.IIOMetadataFormatImpl$Attribute.valueType:I
        12: .line 599
      StackMap locals:
      StackMap stack:
            aload 11 /* attr */
            iload 3 /* dataType */
            putfield javax.imageio.metadata.IIOMetadataFormatImpl$Attribute.dataType:I
        13: .line 600
            aload 11 /* attr */
            iload 4 /* required */
            putfield javax.imageio.metadata.IIOMetadataFormatImpl$Attribute.required:Z
        14: .line 601
            aload 11 /* attr */
            aload 5 /* defaultValue */
            putfield javax.imageio.metadata.IIOMetadataFormatImpl$Attribute.defaultValue:Ljava/lang/String;
        15: .line 602
            aload 11 /* attr */
            aload 6 /* minValue */
            putfield javax.imageio.metadata.IIOMetadataFormatImpl$Attribute.minValue:Ljava/lang/String;
        16: .line 603
            aload 11 /* attr */
            aload 7 /* maxValue */
            putfield javax.imageio.metadata.IIOMetadataFormatImpl$Attribute.maxValue:Ljava/lang/String;
        17: .line 605
            aload 10 /* element */
            getfield javax.imageio.metadata.IIOMetadataFormatImpl$Element.attrList:Ljava/util/List;
            aload 2 /* attrName */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        18: .line 606
            aload 10 /* element */
            getfield javax.imageio.metadata.IIOMetadataFormatImpl$Element.attrMap:Ljava/util/Map;
            aload 2 /* attrName */
            aload 11 /* attr */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        19: .line 607
            return
        end local 11 // javax.imageio.metadata.IIOMetadataFormatImpl$Attribute attr
        end local 10 // javax.imageio.metadata.IIOMetadataFormatImpl$Element element
        end local 9 // boolean maxInclusive
        end local 8 // boolean minInclusive
        end local 7 // java.lang.String maxValue
        end local 6 // java.lang.String minValue
        end local 5 // java.lang.String defaultValue
        end local 4 // boolean required
        end local 3 // int dataType
        end local 2 // java.lang.String attrName
        end local 1 // java.lang.String elementName
        end local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   20     0          this  Ljavax/imageio/metadata/IIOMetadataFormatImpl;
            0   20     1   elementName  Ljava/lang/String;
            0   20     2      attrName  Ljava/lang/String;
            0   20     3      dataType  I
            0   20     4      required  Z
            0   20     5  defaultValue  Ljava/lang/String;
            0   20     6      minValue  Ljava/lang/String;
            0   20     7      maxValue  Ljava/lang/String;
            0   20     8  minInclusive  Z
            0   20     9  maxInclusive  Z
            1   20    10       element  Ljavax/imageio/metadata/IIOMetadataFormatImpl$Element;
            6   20    11          attr  Ljavax/imageio/metadata/IIOMetadataFormatImpl$Attribute;
    MethodParameters:
              Name  Flags
      elementName   
      attrName      
      dataType      
      required      
      defaultValue  
      minValue      
      maxValue      
      minInclusive  
      maxInclusive  

  protected void addAttribute(java.lang.String, java.lang.String, int, boolean, int, int);
    descriptor: (Ljava/lang/String;Ljava/lang/String;IZII)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=9, args_size=7
        start local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
        start local 1 // java.lang.String elementName
        start local 2 // java.lang.String attrName
        start local 3 // int dataType
        start local 4 // boolean required
        start local 5 // int listMinLength
        start local 6 // int listMaxLength
         0: .line 638
            aload 0 /* this */
            aload 1 /* elementName */
            invokevirtual javax.imageio.metadata.IIOMetadataFormatImpl.getElement:(Ljava/lang/String;)Ljavax/imageio/metadata/IIOMetadataFormatImpl$Element;
            astore 7 /* element */
        start local 7 // javax.imageio.metadata.IIOMetadataFormatImpl$Element element
         1: .line 639
            aload 2 /* attrName */
            ifnonnull 3
         2: .line 640
            new java.lang.IllegalArgumentException
            dup
            ldc "attrName == null!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 642
      StackMap locals: javax.imageio.metadata.IIOMetadataFormatImpl$Element
      StackMap stack:
            iload 3 /* dataType */
            iflt 4
            iload 3 /* dataType */
            iconst_4
            if_icmple 5
         4: .line 643
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "Invalid value for dataType!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 645
      StackMap locals:
      StackMap stack:
            iload 5 /* listMinLength */
            iflt 6
            iload 5 /* listMinLength */
            iload 6 /* listMaxLength */
            if_icmple 7
         6: .line 646
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "Invalid list bounds!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 649
      StackMap locals:
      StackMap stack:
            new javax.imageio.metadata.IIOMetadataFormatImpl$Attribute
            dup
            aload 0 /* this */
            invokespecial javax.imageio.metadata.IIOMetadataFormatImpl$Attribute.<init>:(Ljavax/imageio/metadata/IIOMetadataFormatImpl;)V
            astore 8 /* attr */
        start local 8 // javax.imageio.metadata.IIOMetadataFormatImpl$Attribute attr
         8: .line 650
            aload 8 /* attr */
            aload 2 /* attrName */
            putfield javax.imageio.metadata.IIOMetadataFormatImpl$Attribute.attrName:Ljava/lang/String;
         9: .line 651
            aload 8 /* attr */
            bipush 32
            putfield javax.imageio.metadata.IIOMetadataFormatImpl$Attribute.valueType:I
        10: .line 652
            aload 8 /* attr */
            iload 3 /* dataType */
            putfield javax.imageio.metadata.IIOMetadataFormatImpl$Attribute.dataType:I
        11: .line 653
            aload 8 /* attr */
            iload 4 /* required */
            putfield javax.imageio.metadata.IIOMetadataFormatImpl$Attribute.required:Z
        12: .line 654
            aload 8 /* attr */
            iload 5 /* listMinLength */
            putfield javax.imageio.metadata.IIOMetadataFormatImpl$Attribute.listMinLength:I
        13: .line 655
            aload 8 /* attr */
            iload 6 /* listMaxLength */
            putfield javax.imageio.metadata.IIOMetadataFormatImpl$Attribute.listMaxLength:I
        14: .line 657
            aload 7 /* element */
            getfield javax.imageio.metadata.IIOMetadataFormatImpl$Element.attrList:Ljava/util/List;
            aload 2 /* attrName */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        15: .line 658
            aload 7 /* element */
            getfield javax.imageio.metadata.IIOMetadataFormatImpl$Element.attrMap:Ljava/util/Map;
            aload 2 /* attrName */
            aload 8 /* attr */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        16: .line 659
            return
        end local 8 // javax.imageio.metadata.IIOMetadataFormatImpl$Attribute attr
        end local 7 // javax.imageio.metadata.IIOMetadataFormatImpl$Element element
        end local 6 // int listMaxLength
        end local 5 // int listMinLength
        end local 4 // boolean required
        end local 3 // int dataType
        end local 2 // java.lang.String attrName
        end local 1 // java.lang.String elementName
        end local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   17     0           this  Ljavax/imageio/metadata/IIOMetadataFormatImpl;
            0   17     1    elementName  Ljava/lang/String;
            0   17     2       attrName  Ljava/lang/String;
            0   17     3       dataType  I
            0   17     4       required  Z
            0   17     5  listMinLength  I
            0   17     6  listMaxLength  I
            1   17     7        element  Ljavax/imageio/metadata/IIOMetadataFormatImpl$Element;
            8   17     8           attr  Ljavax/imageio/metadata/IIOMetadataFormatImpl$Attribute;
    MethodParameters:
               Name  Flags
      elementName    
      attrName       
      dataType       
      required       
      listMinLength  
      listMaxLength  

  protected void addBooleanAttribute(java.lang.String, java.lang.String, boolean, boolean);
    descriptor: (Ljava/lang/String;Ljava/lang/String;ZZ)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=7, args_size=5
        start local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
        start local 1 // java.lang.String elementName
        start local 2 // java.lang.String attrName
        start local 3 // boolean hasDefaultValue
        start local 4 // boolean defaultValue
         0: .line 685
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 5 /* values */
        start local 5 // java.util.List values
         1: .line 686
            aload 5 /* values */
            ldc "TRUE"
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         2: .line 687
            aload 5 /* values */
            ldc "FALSE"
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         3: .line 689
            aconst_null
            astore 6 /* dval */
        start local 6 // java.lang.String dval
         4: .line 690
            iload 3 /* hasDefaultValue */
            ifeq 8
         5: .line 691
            iload 4 /* defaultValue */
            ifeq 6
            ldc "TRUE"
            goto 7
      StackMap locals: java.util.List java.lang.String
      StackMap stack:
         6: ldc "FALSE"
      StackMap locals:
      StackMap stack: java.lang.String
         7: astore 6 /* dval */
         8: .line 693
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* elementName */
         9: .line 694
            aload 2 /* attrName */
        10: .line 695
            iconst_1
        11: .line 696
            iconst_1
        12: .line 697
            aload 6 /* dval */
        13: .line 698
            aload 5 /* values */
        14: .line 693
            invokevirtual javax.imageio.metadata.IIOMetadataFormatImpl.addAttribute:(Ljava/lang/String;Ljava/lang/String;IZLjava/lang/String;Ljava/util/List;)V
        15: .line 699
            return
        end local 6 // java.lang.String dval
        end local 5 // java.util.List values
        end local 4 // boolean defaultValue
        end local 3 // boolean hasDefaultValue
        end local 2 // java.lang.String attrName
        end local 1 // java.lang.String elementName
        end local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   16     0             this  Ljavax/imageio/metadata/IIOMetadataFormatImpl;
            0   16     1      elementName  Ljava/lang/String;
            0   16     2         attrName  Ljava/lang/String;
            0   16     3  hasDefaultValue  Z
            0   16     4     defaultValue  Z
            1   16     5           values  Ljava/util/List<Ljava/lang/String;>;
            4   16     6             dval  Ljava/lang/String;
    MethodParameters:
                 Name  Flags
      elementName      
      attrName         
      hasDefaultValue  
      defaultValue     

  protected void removeAttribute(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
        start local 1 // java.lang.String elementName
        start local 2 // java.lang.String attrName
         0: .line 713
            aload 0 /* this */
            aload 1 /* elementName */
            invokevirtual javax.imageio.metadata.IIOMetadataFormatImpl.getElement:(Ljava/lang/String;)Ljavax/imageio/metadata/IIOMetadataFormatImpl$Element;
            astore 3 /* element */
        start local 3 // javax.imageio.metadata.IIOMetadataFormatImpl$Element element
         1: .line 714
            aload 3 /* element */
            getfield javax.imageio.metadata.IIOMetadataFormatImpl$Element.attrList:Ljava/util/List;
            aload 2 /* attrName */
            invokeinterface java.util.List.remove:(Ljava/lang/Object;)Z
            pop
         2: .line 715
            aload 3 /* element */
            getfield javax.imageio.metadata.IIOMetadataFormatImpl$Element.attrMap:Ljava/util/Map;
            aload 2 /* attrName */
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 716
            return
        end local 3 // javax.imageio.metadata.IIOMetadataFormatImpl$Element element
        end local 2 // java.lang.String attrName
        end local 1 // java.lang.String elementName
        end local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    4     0         this  Ljavax/imageio/metadata/IIOMetadataFormatImpl;
            0    4     1  elementName  Ljava/lang/String;
            0    4     2     attrName  Ljava/lang/String;
            1    4     3      element  Ljavax/imageio/metadata/IIOMetadataFormatImpl$Element;
    MethodParameters:
             Name  Flags
      elementName  
      attrName     

  protected <T> void addObjectValue(java.lang.String, java.lang.Class<T>, boolean, );
    descriptor: (Ljava/lang/String;Ljava/lang/Class;ZLjava/lang/Object;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=7, args_size=5
        start local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
        start local 1 // java.lang.String elementName
        start local 2 // java.lang.Class classType
        start local 3 // boolean required
        start local 4 // java.lang.Object defaultValue
         0: .line 743
            aload 0 /* this */
            aload 1 /* elementName */
            invokevirtual javax.imageio.metadata.IIOMetadataFormatImpl.getElement:(Ljava/lang/String;)Ljavax/imageio/metadata/IIOMetadataFormatImpl$Element;
            astore 5 /* element */
        start local 5 // javax.imageio.metadata.IIOMetadataFormatImpl$Element element
         1: .line 744
            new javax.imageio.metadata.IIOMetadataFormatImpl$ObjectValue
            dup
            aload 0 /* this */
            invokespecial javax.imageio.metadata.IIOMetadataFormatImpl$ObjectValue.<init>:(Ljavax/imageio/metadata/IIOMetadataFormatImpl;)V
            astore 6 /* obj */
        start local 6 // javax.imageio.metadata.IIOMetadataFormatImpl$ObjectValue obj
         2: .line 745
            aload 6 /* obj */
            iconst_1
            putfield javax.imageio.metadata.IIOMetadataFormatImpl$ObjectValue.valueType:I
         3: .line 746
            aload 6 /* obj */
            aload 2 /* classType */
            putfield javax.imageio.metadata.IIOMetadataFormatImpl$ObjectValue.classType:Ljava/lang/Class;
         4: .line 747
            aload 6 /* obj */
            aload 4 /* defaultValue */
            putfield javax.imageio.metadata.IIOMetadataFormatImpl$ObjectValue.defaultValue:Ljava/lang/Object;
         5: .line 749
            aload 5 /* element */
            aload 6 /* obj */
            putfield javax.imageio.metadata.IIOMetadataFormatImpl$Element.objectValue:Ljavax/imageio/metadata/IIOMetadataFormatImpl$ObjectValue;
         6: .line 750
            return
        end local 6 // javax.imageio.metadata.IIOMetadataFormatImpl$ObjectValue obj
        end local 5 // javax.imageio.metadata.IIOMetadataFormatImpl$Element element
        end local 4 // java.lang.Object defaultValue
        end local 3 // boolean required
        end local 2 // java.lang.Class classType
        end local 1 // java.lang.String elementName
        end local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    7     0          this  Ljavax/imageio/metadata/IIOMetadataFormatImpl;
            0    7     1   elementName  Ljava/lang/String;
            0    7     2     classType  Ljava/lang/Class<TT;>;
            0    7     3      required  Z
            0    7     4  defaultValue  TT;
            1    7     5       element  Ljavax/imageio/metadata/IIOMetadataFormatImpl$Element;
            2    7     6           obj  Ljavax/imageio/metadata/IIOMetadataFormatImpl$ObjectValue<TT;>;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/String;Ljava/lang/Class<TT;>;ZTT;)V
    MethodParameters:
              Name  Flags
      elementName   
      classType     
      required      
      defaultValue  

  protected <T> void addObjectValue(java.lang.String, java.lang.Class<T>, boolean, T, java.util.List<? extends T>);
    descriptor: (Ljava/lang/String;Ljava/lang/Class;ZLjava/lang/Object;Ljava/util/List;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=9, args_size=6
        start local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
        start local 1 // java.lang.String elementName
        start local 2 // java.lang.Class classType
        start local 3 // boolean required
        start local 4 // java.lang.Object defaultValue
        start local 5 // java.util.List enumeratedValues
         0: .line 790
            aload 0 /* this */
            aload 1 /* elementName */
            invokevirtual javax.imageio.metadata.IIOMetadataFormatImpl.getElement:(Ljava/lang/String;)Ljavax/imageio/metadata/IIOMetadataFormatImpl$Element;
            astore 6 /* element */
        start local 6 // javax.imageio.metadata.IIOMetadataFormatImpl$Element element
         1: .line 791
            aload 5 /* enumeratedValues */
            ifnonnull 3
         2: .line 792
            new java.lang.IllegalArgumentException
            dup
            ldc "enumeratedValues == null!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 794
      StackMap locals: javax.imageio.metadata.IIOMetadataFormatImpl$Element
      StackMap stack:
            aload 5 /* enumeratedValues */
            invokeinterface java.util.List.size:()I
            ifne 5
         4: .line 795
            new java.lang.IllegalArgumentException
            dup
            ldc "enumeratedValues is empty!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 797
      StackMap locals:
      StackMap stack:
            aload 5 /* enumeratedValues */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 7 /* iter */
        start local 7 // java.util.Iterator iter
         6: .line 798
            goto 12
         7: .line 799
      StackMap locals: java.util.Iterator
      StackMap stack:
            aload 7 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            astore 8 /* o */
        start local 8 // java.lang.Object o
         8: .line 800
            aload 8 /* o */
            ifnonnull 10
         9: .line 801
            new java.lang.IllegalArgumentException
            dup
            ldc "enumeratedValues contains a null!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        10: .line 803
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 2 /* classType */
            aload 8 /* o */
            invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
            ifne 12
        11: .line 804
            new java.lang.IllegalArgumentException
            dup
            ldc "enumeratedValues contains a value not of class classType!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 8 // java.lang.Object o
        12: .line 798
      StackMap locals:
      StackMap stack:
            aload 7 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        13: .line 808
            new javax.imageio.metadata.IIOMetadataFormatImpl$ObjectValue
            dup
            aload 0 /* this */
            invokespecial javax.imageio.metadata.IIOMetadataFormatImpl$ObjectValue.<init>:(Ljavax/imageio/metadata/IIOMetadataFormatImpl;)V
            astore 8 /* obj */
        start local 8 // javax.imageio.metadata.IIOMetadataFormatImpl$ObjectValue obj
        14: .line 809
            aload 8 /* obj */
            bipush 16
            putfield javax.imageio.metadata.IIOMetadataFormatImpl$ObjectValue.valueType:I
        15: .line 810
            aload 8 /* obj */
            aload 2 /* classType */
            putfield javax.imageio.metadata.IIOMetadataFormatImpl$ObjectValue.classType:Ljava/lang/Class;
        16: .line 811
            aload 8 /* obj */
            aload 4 /* defaultValue */
            putfield javax.imageio.metadata.IIOMetadataFormatImpl$ObjectValue.defaultValue:Ljava/lang/Object;
        17: .line 812
            aload 8 /* obj */
            aload 5 /* enumeratedValues */
            putfield javax.imageio.metadata.IIOMetadataFormatImpl$ObjectValue.enumeratedValues:Ljava/util/List;
        18: .line 814
            aload 6 /* element */
            aload 8 /* obj */
            putfield javax.imageio.metadata.IIOMetadataFormatImpl$Element.objectValue:Ljavax/imageio/metadata/IIOMetadataFormatImpl$ObjectValue;
        19: .line 815
            return
        end local 8 // javax.imageio.metadata.IIOMetadataFormatImpl$ObjectValue obj
        end local 7 // java.util.Iterator iter
        end local 6 // javax.imageio.metadata.IIOMetadataFormatImpl$Element element
        end local 5 // java.util.List enumeratedValues
        end local 4 // java.lang.Object defaultValue
        end local 3 // boolean required
        end local 2 // java.lang.Class classType
        end local 1 // java.lang.String elementName
        end local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   20     0              this  Ljavax/imageio/metadata/IIOMetadataFormatImpl;
            0   20     1       elementName  Ljava/lang/String;
            0   20     2         classType  Ljava/lang/Class<TT;>;
            0   20     3          required  Z
            0   20     4      defaultValue  TT;
            0   20     5  enumeratedValues  Ljava/util/List<+TT;>;
            1   20     6           element  Ljavax/imageio/metadata/IIOMetadataFormatImpl$Element;
            6   20     7              iter  Ljava/util/Iterator<+TT;>;
            8   12     8                 o  Ljava/lang/Object;
           14   20     8               obj  Ljavax/imageio/metadata/IIOMetadataFormatImpl$ObjectValue<TT;>;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/String;Ljava/lang/Class<TT;>;ZTT;Ljava/util/List<+TT;>;)V
    MethodParameters:
                  Name  Flags
      elementName       
      classType         
      required          
      defaultValue      
      enumeratedValues  

  protected <T extends java.lang.Comparable<? super T>> void addObjectValue(java.lang.String, java.lang.Class<T>, T, java.lang.Comparable<? super T>, java.lang.Comparable<? super T>, boolean, );
    descriptor: (Ljava/lang/String;Ljava/lang/Class;Ljava/lang/Object;Ljava/lang/Comparable;Ljava/lang/Comparable;ZZ)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=10, args_size=8
        start local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
        start local 1 // java.lang.String elementName
        start local 2 // java.lang.Class classType
        start local 3 // java.lang.Object defaultValue
        start local 4 // java.lang.Comparable minValue
        start local 5 // java.lang.Comparable maxValue
        start local 6 // boolean minInclusive
        start local 7 // boolean maxInclusive
         0: .line 857
            aload 0 /* this */
            aload 1 /* elementName */
            invokevirtual javax.imageio.metadata.IIOMetadataFormatImpl.getElement:(Ljava/lang/String;)Ljavax/imageio/metadata/IIOMetadataFormatImpl$Element;
            astore 8 /* element */
        start local 8 // javax.imageio.metadata.IIOMetadataFormatImpl$Element element
         1: .line 858
            new javax.imageio.metadata.IIOMetadataFormatImpl$ObjectValue
            dup
            aload 0 /* this */
            invokespecial javax.imageio.metadata.IIOMetadataFormatImpl$ObjectValue.<init>:(Ljavax/imageio/metadata/IIOMetadataFormatImpl;)V
            astore 9 /* obj */
        start local 9 // javax.imageio.metadata.IIOMetadataFormatImpl$ObjectValue obj
         2: .line 859
            aload 9 /* obj */
            iconst_2
            putfield javax.imageio.metadata.IIOMetadataFormatImpl$ObjectValue.valueType:I
         3: .line 860
            iload 6 /* minInclusive */
            ifeq 5
         4: .line 861
            aload 9 /* obj */
            dup
            getfield javax.imageio.metadata.IIOMetadataFormatImpl$ObjectValue.valueType:I
            iconst_4
            ior
            putfield javax.imageio.metadata.IIOMetadataFormatImpl$ObjectValue.valueType:I
         5: .line 863
      StackMap locals: javax.imageio.metadata.IIOMetadataFormatImpl$Element javax.imageio.metadata.IIOMetadataFormatImpl$ObjectValue
      StackMap stack:
            iload 7 /* maxInclusive */
            ifeq 7
         6: .line 864
            aload 9 /* obj */
            dup
            getfield javax.imageio.metadata.IIOMetadataFormatImpl$ObjectValue.valueType:I
            bipush 8
            ior
            putfield javax.imageio.metadata.IIOMetadataFormatImpl$ObjectValue.valueType:I
         7: .line 866
      StackMap locals:
      StackMap stack:
            aload 9 /* obj */
            aload 2 /* classType */
            putfield javax.imageio.metadata.IIOMetadataFormatImpl$ObjectValue.classType:Ljava/lang/Class;
         8: .line 867
            aload 9 /* obj */
            aload 3 /* defaultValue */
            putfield javax.imageio.metadata.IIOMetadataFormatImpl$ObjectValue.defaultValue:Ljava/lang/Object;
         9: .line 868
            aload 9 /* obj */
            aload 4 /* minValue */
            putfield javax.imageio.metadata.IIOMetadataFormatImpl$ObjectValue.minValue:Ljava/lang/Comparable;
        10: .line 869
            aload 9 /* obj */
            aload 5 /* maxValue */
            putfield javax.imageio.metadata.IIOMetadataFormatImpl$ObjectValue.maxValue:Ljava/lang/Comparable;
        11: .line 871
            aload 8 /* element */
            aload 9 /* obj */
            putfield javax.imageio.metadata.IIOMetadataFormatImpl$Element.objectValue:Ljavax/imageio/metadata/IIOMetadataFormatImpl$ObjectValue;
        12: .line 872
            return
        end local 9 // javax.imageio.metadata.IIOMetadataFormatImpl$ObjectValue obj
        end local 8 // javax.imageio.metadata.IIOMetadataFormatImpl$Element element
        end local 7 // boolean maxInclusive
        end local 6 // boolean minInclusive
        end local 5 // java.lang.Comparable maxValue
        end local 4 // java.lang.Comparable minValue
        end local 3 // java.lang.Object defaultValue
        end local 2 // java.lang.Class classType
        end local 1 // java.lang.String elementName
        end local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   13     0          this  Ljavax/imageio/metadata/IIOMetadataFormatImpl;
            0   13     1   elementName  Ljava/lang/String;
            0   13     2     classType  Ljava/lang/Class<TT;>;
            0   13     3  defaultValue  TT;
            0   13     4      minValue  Ljava/lang/Comparable<-TT;>;
            0   13     5      maxValue  Ljava/lang/Comparable<-TT;>;
            0   13     6  minInclusive  Z
            0   13     7  maxInclusive  Z
            1   13     8       element  Ljavax/imageio/metadata/IIOMetadataFormatImpl$Element;
            2   13     9           obj  Ljavax/imageio/metadata/IIOMetadataFormatImpl$ObjectValue<TT;>;
    Signature: <T:Ljava/lang/Object;:Ljava/lang/Comparable<-TT;>;>(Ljava/lang/String;Ljava/lang/Class<TT;>;TT;Ljava/lang/Comparable<-TT;>;Ljava/lang/Comparable<-TT;>;ZZ)V
    MethodParameters:
              Name  Flags
      elementName   
      classType     
      defaultValue  
      minValue      
      maxValue      
      minInclusive  
      maxInclusive  

  protected void addObjectValue(java.lang.String, java.lang.Class<?>, int, );
    descriptor: (Ljava/lang/String;Ljava/lang/Class;II)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=7, args_size=5
        start local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
        start local 1 // java.lang.String elementName
        start local 2 // java.lang.Class classType
        start local 3 // int arrayMinLength
        start local 4 // int arrayMaxLength
         0: .line 898
            aload 0 /* this */
            aload 1 /* elementName */
            invokevirtual javax.imageio.metadata.IIOMetadataFormatImpl.getElement:(Ljava/lang/String;)Ljavax/imageio/metadata/IIOMetadataFormatImpl$Element;
            astore 5 /* element */
        start local 5 // javax.imageio.metadata.IIOMetadataFormatImpl$Element element
         1: .line 899
            new javax.imageio.metadata.IIOMetadataFormatImpl$ObjectValue
            dup
            aload 0 /* this */
            invokespecial javax.imageio.metadata.IIOMetadataFormatImpl$ObjectValue.<init>:(Ljavax/imageio/metadata/IIOMetadataFormatImpl;)V
            astore 6 /* obj */
        start local 6 // javax.imageio.metadata.IIOMetadataFormatImpl$ObjectValue obj
         2: .line 900
            aload 6 /* obj */
            bipush 32
            putfield javax.imageio.metadata.IIOMetadataFormatImpl$ObjectValue.valueType:I
         3: .line 901
            aload 6 /* obj */
            aload 2 /* classType */
            putfield javax.imageio.metadata.IIOMetadataFormatImpl$ObjectValue.classType:Ljava/lang/Class;
         4: .line 902
            aload 6 /* obj */
            iload 3 /* arrayMinLength */
            putfield javax.imageio.metadata.IIOMetadataFormatImpl$ObjectValue.arrayMinLength:I
         5: .line 903
            aload 6 /* obj */
            iload 4 /* arrayMaxLength */
            putfield javax.imageio.metadata.IIOMetadataFormatImpl$ObjectValue.arrayMaxLength:I
         6: .line 905
            aload 5 /* element */
            aload 6 /* obj */
            putfield javax.imageio.metadata.IIOMetadataFormatImpl$Element.objectValue:Ljavax/imageio/metadata/IIOMetadataFormatImpl$ObjectValue;
         7: .line 906
            return
        end local 6 // javax.imageio.metadata.IIOMetadataFormatImpl$ObjectValue obj
        end local 5 // javax.imageio.metadata.IIOMetadataFormatImpl$Element element
        end local 4 // int arrayMaxLength
        end local 3 // int arrayMinLength
        end local 2 // java.lang.Class classType
        end local 1 // java.lang.String elementName
        end local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    8     0            this  Ljavax/imageio/metadata/IIOMetadataFormatImpl;
            0    8     1     elementName  Ljava/lang/String;
            0    8     2       classType  Ljava/lang/Class<*>;
            0    8     3  arrayMinLength  I
            0    8     4  arrayMaxLength  I
            1    8     5         element  Ljavax/imageio/metadata/IIOMetadataFormatImpl$Element;
            2    8     6             obj  Ljavax/imageio/metadata/IIOMetadataFormatImpl$ObjectValue<Ljava/lang/Object;>;
    Signature: (Ljava/lang/String;Ljava/lang/Class<*>;II)V
    MethodParameters:
                Name  Flags
      elementName     
      classType       
      arrayMinLength  
      arrayMaxLength  

  protected void removeObjectValue(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
        start local 1 // java.lang.String elementName
         0: .line 918
            aload 0 /* this */
            aload 1 /* elementName */
            invokevirtual javax.imageio.metadata.IIOMetadataFormatImpl.getElement:(Ljava/lang/String;)Ljavax/imageio/metadata/IIOMetadataFormatImpl$Element;
            astore 2 /* element */
        start local 2 // javax.imageio.metadata.IIOMetadataFormatImpl$Element element
         1: .line 919
            aload 2 /* element */
            aconst_null
            putfield javax.imageio.metadata.IIOMetadataFormatImpl$Element.objectValue:Ljavax/imageio/metadata/IIOMetadataFormatImpl$ObjectValue;
         2: .line 920
            return
        end local 2 // javax.imageio.metadata.IIOMetadataFormatImpl$Element element
        end local 1 // java.lang.String elementName
        end local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0         this  Ljavax/imageio/metadata/IIOMetadataFormatImpl;
            0    3     1  elementName  Ljava/lang/String;
            1    3     2      element  Ljavax/imageio/metadata/IIOMetadataFormatImpl$Element;
    MethodParameters:
             Name  Flags
      elementName  

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

  public abstract boolean canNodeAppear(java.lang.String, javax.imageio.ImageTypeSpecifier);
    descriptor: (Ljava/lang/String;Ljavax/imageio/ImageTypeSpecifier;)Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
             Name  Flags
      elementName  
      imageType    

  public int getElementMinChildren(java.lang.String);
    descriptor: (Ljava/lang/String;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
        start local 1 // java.lang.String elementName
         0: .line 938
            aload 0 /* this */
            aload 1 /* elementName */
            invokevirtual javax.imageio.metadata.IIOMetadataFormatImpl.getElement:(Ljava/lang/String;)Ljavax/imageio/metadata/IIOMetadataFormatImpl$Element;
            astore 2 /* element */
        start local 2 // javax.imageio.metadata.IIOMetadataFormatImpl$Element element
         1: .line 939
            aload 2 /* element */
            getfield javax.imageio.metadata.IIOMetadataFormatImpl$Element.childPolicy:I
            iconst_5
            if_icmpeq 3
         2: .line 940
            new java.lang.IllegalArgumentException
            dup
            ldc "Child policy not CHILD_POLICY_REPEAT!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 942
      StackMap locals: javax.imageio.metadata.IIOMetadataFormatImpl$Element
      StackMap stack:
            aload 2 /* element */
            getfield javax.imageio.metadata.IIOMetadataFormatImpl$Element.minChildren:I
            ireturn
        end local 2 // javax.imageio.metadata.IIOMetadataFormatImpl$Element element
        end local 1 // java.lang.String elementName
        end local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    4     0         this  Ljavax/imageio/metadata/IIOMetadataFormatImpl;
            0    4     1  elementName  Ljava/lang/String;
            1    4     2      element  Ljavax/imageio/metadata/IIOMetadataFormatImpl$Element;
    MethodParameters:
             Name  Flags
      elementName  

  public int getElementMaxChildren(java.lang.String);
    descriptor: (Ljava/lang/String;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
        start local 1 // java.lang.String elementName
         0: .line 946
            aload 0 /* this */
            aload 1 /* elementName */
            invokevirtual javax.imageio.metadata.IIOMetadataFormatImpl.getElement:(Ljava/lang/String;)Ljavax/imageio/metadata/IIOMetadataFormatImpl$Element;
            astore 2 /* element */
        start local 2 // javax.imageio.metadata.IIOMetadataFormatImpl$Element element
         1: .line 947
            aload 2 /* element */
            getfield javax.imageio.metadata.IIOMetadataFormatImpl$Element.childPolicy:I
            iconst_5
            if_icmpeq 3
         2: .line 948
            new java.lang.IllegalArgumentException
            dup
            ldc "Child policy not CHILD_POLICY_REPEAT!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 950
      StackMap locals: javax.imageio.metadata.IIOMetadataFormatImpl$Element
      StackMap stack:
            aload 2 /* element */
            getfield javax.imageio.metadata.IIOMetadataFormatImpl$Element.maxChildren:I
            ireturn
        end local 2 // javax.imageio.metadata.IIOMetadataFormatImpl$Element element
        end local 1 // java.lang.String elementName
        end local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    4     0         this  Ljavax/imageio/metadata/IIOMetadataFormatImpl;
            0    4     1  elementName  Ljava/lang/String;
            1    4     2      element  Ljavax/imageio/metadata/IIOMetadataFormatImpl$Element;
    MethodParameters:
             Name  Flags
      elementName  

  private java.lang.String getResource(java.lang.String, java.util.Locale);
    descriptor: (Ljava/lang/String;Ljava/util/Locale;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
        start local 1 // java.lang.String key
        start local 2 // java.util.Locale locale
         0: .line 954
            aload 2 /* locale */
            ifnonnull 2
         1: .line 955
            invokestatic java.util.Locale.getDefault:()Ljava/util/Locale;
            astore 2 /* locale */
         2: .line 968
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield javax.imageio.metadata.IIOMetadataFormatImpl.resourceBaseName:Ljava/lang/String;
            aload 2 /* locale */
         3: .line 969
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getModule:()Ljava/lang/Module;
         4: .line 968
            invokestatic java.util.ResourceBundle.getBundle:(Ljava/lang/String;Ljava/util/Locale;Ljava/lang/Module;)Ljava/util/ResourceBundle;
            astore 3 /* bundle */
        start local 3 // java.util.ResourceBundle bundle
         5: .line 970
            aload 3 /* bundle */
            aload 1 /* key */
            invokevirtual java.util.ResourceBundle.getString:(Ljava/lang/String;)Ljava/lang/String;
         6: areturn
        end local 3 // java.util.ResourceBundle bundle
         7: .line 971
      StackMap locals:
      StackMap stack: java.util.MissingResourceException
            pop
         8: .line 972
            aconst_null
            areturn
        end local 2 // java.util.Locale locale
        end local 1 // java.lang.String key
        end local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    9     0    this  Ljavax/imageio/metadata/IIOMetadataFormatImpl;
            0    9     1     key  Ljava/lang/String;
            0    9     2  locale  Ljava/util/Locale;
            5    7     3  bundle  Ljava/util/ResourceBundle;
      Exception table:
        from    to  target  type
           2     6       7  Class java.util.MissingResourceException
    MethodParameters:
        Name  Flags
      key     
      locale  

  public java.lang.String getElementDescription(java.lang.String, java.util.Locale);
    descriptor: (Ljava/lang/String;Ljava/util/Locale;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
        start local 1 // java.lang.String elementName
        start local 2 // java.util.Locale locale
         0: .line 1008
            aload 0 /* this */
            aload 1 /* elementName */
            invokevirtual javax.imageio.metadata.IIOMetadataFormatImpl.getElement:(Ljava/lang/String;)Ljavax/imageio/metadata/IIOMetadataFormatImpl$Element;
            pop
         1: .line 1009
            aload 0 /* this */
            aload 1 /* elementName */
            aload 2 /* locale */
            invokevirtual javax.imageio.metadata.IIOMetadataFormatImpl.getResource:(Ljava/lang/String;Ljava/util/Locale;)Ljava/lang/String;
            areturn
        end local 2 // java.util.Locale locale
        end local 1 // java.lang.String elementName
        end local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Ljavax/imageio/metadata/IIOMetadataFormatImpl;
            0    2     1  elementName  Ljava/lang/String;
            0    2     2       locale  Ljava/util/Locale;
    MethodParameters:
             Name  Flags
      elementName  
      locale       

  public int getChildPolicy(java.lang.String);
    descriptor: (Ljava/lang/String;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
        start local 1 // java.lang.String elementName
         0: .line 1015
            aload 0 /* this */
            aload 1 /* elementName */
            invokevirtual javax.imageio.metadata.IIOMetadataFormatImpl.getElement:(Ljava/lang/String;)Ljavax/imageio/metadata/IIOMetadataFormatImpl$Element;
            astore 2 /* element */
        start local 2 // javax.imageio.metadata.IIOMetadataFormatImpl$Element element
         1: .line 1016
            aload 2 /* element */
            getfield javax.imageio.metadata.IIOMetadataFormatImpl$Element.childPolicy:I
            ireturn
        end local 2 // javax.imageio.metadata.IIOMetadataFormatImpl$Element element
        end local 1 // java.lang.String elementName
        end local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Ljavax/imageio/metadata/IIOMetadataFormatImpl;
            0    2     1  elementName  Ljava/lang/String;
            1    2     2      element  Ljavax/imageio/metadata/IIOMetadataFormatImpl$Element;
    MethodParameters:
             Name  Flags
      elementName  

  public java.lang.String[] getChildNames(java.lang.String);
    descriptor: (Ljava/lang/String;)[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
        start local 1 // java.lang.String elementName
         0: .line 1020
            aload 0 /* this */
            aload 1 /* elementName */
            invokevirtual javax.imageio.metadata.IIOMetadataFormatImpl.getElement:(Ljava/lang/String;)Ljavax/imageio/metadata/IIOMetadataFormatImpl$Element;
            astore 2 /* element */
        start local 2 // javax.imageio.metadata.IIOMetadataFormatImpl$Element element
         1: .line 1021
            aload 2 /* element */
            getfield javax.imageio.metadata.IIOMetadataFormatImpl$Element.childPolicy:I
            ifne 3
         2: .line 1022
            aconst_null
            areturn
         3: .line 1024
      StackMap locals: javax.imageio.metadata.IIOMetadataFormatImpl$Element
      StackMap stack:
            aload 2 /* element */
            getfield javax.imageio.metadata.IIOMetadataFormatImpl$Element.childList:Ljava/util/List;
            iconst_0
            anewarray java.lang.String
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.String[]
            areturn
        end local 2 // javax.imageio.metadata.IIOMetadataFormatImpl$Element element
        end local 1 // java.lang.String elementName
        end local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    4     0         this  Ljavax/imageio/metadata/IIOMetadataFormatImpl;
            0    4     1  elementName  Ljava/lang/String;
            1    4     2      element  Ljavax/imageio/metadata/IIOMetadataFormatImpl$Element;
    MethodParameters:
             Name  Flags
      elementName  

  public java.lang.String[] getAttributeNames(java.lang.String);
    descriptor: (Ljava/lang/String;)[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
        start local 1 // java.lang.String elementName
         0: .line 1030
            aload 0 /* this */
            aload 1 /* elementName */
            invokevirtual javax.imageio.metadata.IIOMetadataFormatImpl.getElement:(Ljava/lang/String;)Ljavax/imageio/metadata/IIOMetadataFormatImpl$Element;
            astore 2 /* element */
        start local 2 // javax.imageio.metadata.IIOMetadataFormatImpl$Element element
         1: .line 1031
            aload 2 /* element */
            getfield javax.imageio.metadata.IIOMetadataFormatImpl$Element.attrList:Ljava/util/List;
            astore 3 /* names */
        start local 3 // java.util.List names
         2: .line 1033
            aload 3 /* names */
            invokeinterface java.util.List.size:()I
            anewarray java.lang.String
            astore 4 /* result */
        start local 4 // java.lang.String[] result
         3: .line 1034
            aload 3 /* names */
            aload 4 /* result */
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.String[]
            areturn
        end local 4 // java.lang.String[] result
        end local 3 // java.util.List names
        end local 2 // javax.imageio.metadata.IIOMetadataFormatImpl$Element element
        end local 1 // java.lang.String elementName
        end local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    4     0         this  Ljavax/imageio/metadata/IIOMetadataFormatImpl;
            0    4     1  elementName  Ljava/lang/String;
            1    4     2      element  Ljavax/imageio/metadata/IIOMetadataFormatImpl$Element;
            2    4     3        names  Ljava/util/List<Ljava/lang/String;>;
            3    4     4       result  [Ljava/lang/String;
    MethodParameters:
             Name  Flags
      elementName  

  public int getAttributeValueType(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
        start local 1 // java.lang.String elementName
        start local 2 // java.lang.String attrName
         0: .line 1038
            aload 0 /* this */
            aload 1 /* elementName */
            aload 2 /* attrName */
            invokevirtual javax.imageio.metadata.IIOMetadataFormatImpl.getAttribute:(Ljava/lang/String;Ljava/lang/String;)Ljavax/imageio/metadata/IIOMetadataFormatImpl$Attribute;
            astore 3 /* attr */
        start local 3 // javax.imageio.metadata.IIOMetadataFormatImpl$Attribute attr
         1: .line 1039
            aload 3 /* attr */
            getfield javax.imageio.metadata.IIOMetadataFormatImpl$Attribute.valueType:I
            ireturn
        end local 3 // javax.imageio.metadata.IIOMetadataFormatImpl$Attribute attr
        end local 2 // java.lang.String attrName
        end local 1 // java.lang.String elementName
        end local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Ljavax/imageio/metadata/IIOMetadataFormatImpl;
            0    2     1  elementName  Ljava/lang/String;
            0    2     2     attrName  Ljava/lang/String;
            1    2     3         attr  Ljavax/imageio/metadata/IIOMetadataFormatImpl$Attribute;
    MethodParameters:
             Name  Flags
      elementName  
      attrName     

  public int getAttributeDataType(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
        start local 1 // java.lang.String elementName
        start local 2 // java.lang.String attrName
         0: .line 1043
            aload 0 /* this */
            aload 1 /* elementName */
            aload 2 /* attrName */
            invokevirtual javax.imageio.metadata.IIOMetadataFormatImpl.getAttribute:(Ljava/lang/String;Ljava/lang/String;)Ljavax/imageio/metadata/IIOMetadataFormatImpl$Attribute;
            astore 3 /* attr */
        start local 3 // javax.imageio.metadata.IIOMetadataFormatImpl$Attribute attr
         1: .line 1044
            aload 3 /* attr */
            getfield javax.imageio.metadata.IIOMetadataFormatImpl$Attribute.dataType:I
            ireturn
        end local 3 // javax.imageio.metadata.IIOMetadataFormatImpl$Attribute attr
        end local 2 // java.lang.String attrName
        end local 1 // java.lang.String elementName
        end local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Ljavax/imageio/metadata/IIOMetadataFormatImpl;
            0    2     1  elementName  Ljava/lang/String;
            0    2     2     attrName  Ljava/lang/String;
            1    2     3         attr  Ljavax/imageio/metadata/IIOMetadataFormatImpl$Attribute;
    MethodParameters:
             Name  Flags
      elementName  
      attrName     

  public boolean isAttributeRequired(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
        start local 1 // java.lang.String elementName
        start local 2 // java.lang.String attrName
         0: .line 1048
            aload 0 /* this */
            aload 1 /* elementName */
            aload 2 /* attrName */
            invokevirtual javax.imageio.metadata.IIOMetadataFormatImpl.getAttribute:(Ljava/lang/String;Ljava/lang/String;)Ljavax/imageio/metadata/IIOMetadataFormatImpl$Attribute;
            astore 3 /* attr */
        start local 3 // javax.imageio.metadata.IIOMetadataFormatImpl$Attribute attr
         1: .line 1049
            aload 3 /* attr */
            getfield javax.imageio.metadata.IIOMetadataFormatImpl$Attribute.required:Z
            ireturn
        end local 3 // javax.imageio.metadata.IIOMetadataFormatImpl$Attribute attr
        end local 2 // java.lang.String attrName
        end local 1 // java.lang.String elementName
        end local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Ljavax/imageio/metadata/IIOMetadataFormatImpl;
            0    2     1  elementName  Ljava/lang/String;
            0    2     2     attrName  Ljava/lang/String;
            1    2     3         attr  Ljavax/imageio/metadata/IIOMetadataFormatImpl$Attribute;
    MethodParameters:
             Name  Flags
      elementName  
      attrName     

  public java.lang.String getAttributeDefaultValue(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
        start local 1 // java.lang.String elementName
        start local 2 // java.lang.String attrName
         0: .line 1054
            aload 0 /* this */
            aload 1 /* elementName */
            aload 2 /* attrName */
            invokevirtual javax.imageio.metadata.IIOMetadataFormatImpl.getAttribute:(Ljava/lang/String;Ljava/lang/String;)Ljavax/imageio/metadata/IIOMetadataFormatImpl$Attribute;
            astore 3 /* attr */
        start local 3 // javax.imageio.metadata.IIOMetadataFormatImpl$Attribute attr
         1: .line 1055
            aload 3 /* attr */
            getfield javax.imageio.metadata.IIOMetadataFormatImpl$Attribute.defaultValue:Ljava/lang/String;
            areturn
        end local 3 // javax.imageio.metadata.IIOMetadataFormatImpl$Attribute attr
        end local 2 // java.lang.String attrName
        end local 1 // java.lang.String elementName
        end local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Ljavax/imageio/metadata/IIOMetadataFormatImpl;
            0    2     1  elementName  Ljava/lang/String;
            0    2     2     attrName  Ljava/lang/String;
            1    2     3         attr  Ljavax/imageio/metadata/IIOMetadataFormatImpl$Attribute;
    MethodParameters:
             Name  Flags
      elementName  
      attrName     

  public java.lang.String[] getAttributeEnumerations(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
        start local 1 // java.lang.String elementName
        start local 2 // java.lang.String attrName
         0: .line 1060
            aload 0 /* this */
            aload 1 /* elementName */
            aload 2 /* attrName */
            invokevirtual javax.imageio.metadata.IIOMetadataFormatImpl.getAttribute:(Ljava/lang/String;Ljava/lang/String;)Ljavax/imageio/metadata/IIOMetadataFormatImpl$Attribute;
            astore 3 /* attr */
        start local 3 // javax.imageio.metadata.IIOMetadataFormatImpl$Attribute attr
         1: .line 1061
            aload 3 /* attr */
            getfield javax.imageio.metadata.IIOMetadataFormatImpl$Attribute.valueType:I
            bipush 16
            if_icmpeq 5
         2: .line 1062
            new java.lang.IllegalArgumentException
            dup
         3: .line 1063
            ldc "Attribute not an enumeration!"
         4: .line 1062
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 1066
      StackMap locals: javax.imageio.metadata.IIOMetadataFormatImpl$Attribute
      StackMap stack:
            aload 3 /* attr */
            getfield javax.imageio.metadata.IIOMetadataFormatImpl$Attribute.enumeratedValues:Ljava/util/List;
            astore 4 /* values */
        start local 4 // java.util.List values
         6: .line 1067
            aload 4 /* values */
            invokeinterface java.util.List.size:()I
            anewarray java.lang.String
            astore 5 /* result */
        start local 5 // java.lang.String[] result
         7: .line 1068
            aload 4 /* values */
            aload 5 /* result */
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.String[]
            areturn
        end local 5 // java.lang.String[] result
        end local 4 // java.util.List values
        end local 3 // javax.imageio.metadata.IIOMetadataFormatImpl$Attribute attr
        end local 2 // java.lang.String attrName
        end local 1 // java.lang.String elementName
        end local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    8     0         this  Ljavax/imageio/metadata/IIOMetadataFormatImpl;
            0    8     1  elementName  Ljava/lang/String;
            0    8     2     attrName  Ljava/lang/String;
            1    8     3         attr  Ljavax/imageio/metadata/IIOMetadataFormatImpl$Attribute;
            6    8     4       values  Ljava/util/List<Ljava/lang/String;>;
            7    8     5       result  [Ljava/lang/String;
    MethodParameters:
             Name  Flags
      elementName  
      attrName     

  public java.lang.String getAttributeMinValue(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
        start local 1 // java.lang.String elementName
        start local 2 // java.lang.String attrName
         0: .line 1072
            aload 0 /* this */
            aload 1 /* elementName */
            aload 2 /* attrName */
            invokevirtual javax.imageio.metadata.IIOMetadataFormatImpl.getAttribute:(Ljava/lang/String;Ljava/lang/String;)Ljavax/imageio/metadata/IIOMetadataFormatImpl$Attribute;
            astore 3 /* attr */
        start local 3 // javax.imageio.metadata.IIOMetadataFormatImpl$Attribute attr
         1: .line 1073
            aload 3 /* attr */
            getfield javax.imageio.metadata.IIOMetadataFormatImpl$Attribute.valueType:I
            iconst_2
            if_icmpeq 6
         2: .line 1074
            aload 3 /* attr */
            getfield javax.imageio.metadata.IIOMetadataFormatImpl$Attribute.valueType:I
            bipush 6
            if_icmpeq 6
         3: .line 1075
            aload 3 /* attr */
            getfield javax.imageio.metadata.IIOMetadataFormatImpl$Attribute.valueType:I
            bipush 10
            if_icmpeq 6
         4: .line 1076
            aload 3 /* attr */
            getfield javax.imageio.metadata.IIOMetadataFormatImpl$Attribute.valueType:I
            bipush 14
            if_icmpeq 6
         5: .line 1077
            new java.lang.IllegalArgumentException
            dup
            ldc "Attribute not a range!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 1080
      StackMap locals: javax.imageio.metadata.IIOMetadataFormatImpl$Attribute
      StackMap stack:
            aload 3 /* attr */
            getfield javax.imageio.metadata.IIOMetadataFormatImpl$Attribute.minValue:Ljava/lang/String;
            areturn
        end local 3 // javax.imageio.metadata.IIOMetadataFormatImpl$Attribute attr
        end local 2 // java.lang.String attrName
        end local 1 // java.lang.String elementName
        end local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    7     0         this  Ljavax/imageio/metadata/IIOMetadataFormatImpl;
            0    7     1  elementName  Ljava/lang/String;
            0    7     2     attrName  Ljava/lang/String;
            1    7     3         attr  Ljavax/imageio/metadata/IIOMetadataFormatImpl$Attribute;
    MethodParameters:
             Name  Flags
      elementName  
      attrName     

  public java.lang.String getAttributeMaxValue(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
        start local 1 // java.lang.String elementName
        start local 2 // java.lang.String attrName
         0: .line 1084
            aload 0 /* this */
            aload 1 /* elementName */
            aload 2 /* attrName */
            invokevirtual javax.imageio.metadata.IIOMetadataFormatImpl.getAttribute:(Ljava/lang/String;Ljava/lang/String;)Ljavax/imageio/metadata/IIOMetadataFormatImpl$Attribute;
            astore 3 /* attr */
        start local 3 // javax.imageio.metadata.IIOMetadataFormatImpl$Attribute attr
         1: .line 1085
            aload 3 /* attr */
            getfield javax.imageio.metadata.IIOMetadataFormatImpl$Attribute.valueType:I
            iconst_2
            if_icmpeq 6
         2: .line 1086
            aload 3 /* attr */
            getfield javax.imageio.metadata.IIOMetadataFormatImpl$Attribute.valueType:I
            bipush 6
            if_icmpeq 6
         3: .line 1087
            aload 3 /* attr */
            getfield javax.imageio.metadata.IIOMetadataFormatImpl$Attribute.valueType:I
            bipush 10
            if_icmpeq 6
         4: .line 1088
            aload 3 /* attr */
            getfield javax.imageio.metadata.IIOMetadataFormatImpl$Attribute.valueType:I
            bipush 14
            if_icmpeq 6
         5: .line 1089
            new java.lang.IllegalArgumentException
            dup
            ldc "Attribute not a range!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 1092
      StackMap locals: javax.imageio.metadata.IIOMetadataFormatImpl$Attribute
      StackMap stack:
            aload 3 /* attr */
            getfield javax.imageio.metadata.IIOMetadataFormatImpl$Attribute.maxValue:Ljava/lang/String;
            areturn
        end local 3 // javax.imageio.metadata.IIOMetadataFormatImpl$Attribute attr
        end local 2 // java.lang.String attrName
        end local 1 // java.lang.String elementName
        end local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    7     0         this  Ljavax/imageio/metadata/IIOMetadataFormatImpl;
            0    7     1  elementName  Ljava/lang/String;
            0    7     2     attrName  Ljava/lang/String;
            1    7     3         attr  Ljavax/imageio/metadata/IIOMetadataFormatImpl$Attribute;
    MethodParameters:
             Name  Flags
      elementName  
      attrName     

  public int getAttributeListMinLength(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
        start local 1 // java.lang.String elementName
        start local 2 // java.lang.String attrName
         0: .line 1096
            aload 0 /* this */
            aload 1 /* elementName */
            aload 2 /* attrName */
            invokevirtual javax.imageio.metadata.IIOMetadataFormatImpl.getAttribute:(Ljava/lang/String;Ljava/lang/String;)Ljavax/imageio/metadata/IIOMetadataFormatImpl$Attribute;
            astore 3 /* attr */
        start local 3 // javax.imageio.metadata.IIOMetadataFormatImpl$Attribute attr
         1: .line 1097
            aload 3 /* attr */
            getfield javax.imageio.metadata.IIOMetadataFormatImpl$Attribute.valueType:I
            bipush 32
            if_icmpeq 3
         2: .line 1098
            new java.lang.IllegalArgumentException
            dup
            ldc "Attribute not a list!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 1101
      StackMap locals: javax.imageio.metadata.IIOMetadataFormatImpl$Attribute
      StackMap stack:
            aload 3 /* attr */
            getfield javax.imageio.metadata.IIOMetadataFormatImpl$Attribute.listMinLength:I
            ireturn
        end local 3 // javax.imageio.metadata.IIOMetadataFormatImpl$Attribute attr
        end local 2 // java.lang.String attrName
        end local 1 // java.lang.String elementName
        end local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    4     0         this  Ljavax/imageio/metadata/IIOMetadataFormatImpl;
            0    4     1  elementName  Ljava/lang/String;
            0    4     2     attrName  Ljava/lang/String;
            1    4     3         attr  Ljavax/imageio/metadata/IIOMetadataFormatImpl$Attribute;
    MethodParameters:
             Name  Flags
      elementName  
      attrName     

  public int getAttributeListMaxLength(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
        start local 1 // java.lang.String elementName
        start local 2 // java.lang.String attrName
         0: .line 1105
            aload 0 /* this */
            aload 1 /* elementName */
            aload 2 /* attrName */
            invokevirtual javax.imageio.metadata.IIOMetadataFormatImpl.getAttribute:(Ljava/lang/String;Ljava/lang/String;)Ljavax/imageio/metadata/IIOMetadataFormatImpl$Attribute;
            astore 3 /* attr */
        start local 3 // javax.imageio.metadata.IIOMetadataFormatImpl$Attribute attr
         1: .line 1106
            aload 3 /* attr */
            getfield javax.imageio.metadata.IIOMetadataFormatImpl$Attribute.valueType:I
            bipush 32
            if_icmpeq 3
         2: .line 1107
            new java.lang.IllegalArgumentException
            dup
            ldc "Attribute not a list!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 1110
      StackMap locals: javax.imageio.metadata.IIOMetadataFormatImpl$Attribute
      StackMap stack:
            aload 3 /* attr */
            getfield javax.imageio.metadata.IIOMetadataFormatImpl$Attribute.listMaxLength:I
            ireturn
        end local 3 // javax.imageio.metadata.IIOMetadataFormatImpl$Attribute attr
        end local 2 // java.lang.String attrName
        end local 1 // java.lang.String elementName
        end local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    4     0         this  Ljavax/imageio/metadata/IIOMetadataFormatImpl;
            0    4     1  elementName  Ljava/lang/String;
            0    4     2     attrName  Ljava/lang/String;
            1    4     3         attr  Ljavax/imageio/metadata/IIOMetadataFormatImpl$Attribute;
    MethodParameters:
             Name  Flags
      elementName  
      attrName     

  public java.lang.String getAttributeDescription(java.lang.String, java.lang.String, java.util.Locale);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/util/Locale;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=7, args_size=4
        start local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
        start local 1 // java.lang.String elementName
        start local 2 // java.lang.String attrName
        start local 3 // java.util.Locale locale
         0: .line 1152
            aload 0 /* this */
            aload 1 /* elementName */
            invokevirtual javax.imageio.metadata.IIOMetadataFormatImpl.getElement:(Ljava/lang/String;)Ljavax/imageio/metadata/IIOMetadataFormatImpl$Element;
            astore 4 /* element */
        start local 4 // javax.imageio.metadata.IIOMetadataFormatImpl$Element element
         1: .line 1153
            aload 2 /* attrName */
            ifnonnull 3
         2: .line 1154
            new java.lang.IllegalArgumentException
            dup
            ldc "attrName == null!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 1156
      StackMap locals: javax.imageio.metadata.IIOMetadataFormatImpl$Element
      StackMap stack:
            aload 4 /* element */
            getfield javax.imageio.metadata.IIOMetadataFormatImpl$Element.attrMap:Ljava/util/Map;
            aload 2 /* attrName */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast javax.imageio.metadata.IIOMetadataFormatImpl$Attribute
            astore 5 /* attr */
        start local 5 // javax.imageio.metadata.IIOMetadataFormatImpl$Attribute attr
         4: .line 1157
            aload 5 /* attr */
            ifnonnull 6
         5: .line 1158
            new java.lang.IllegalArgumentException
            dup
            ldc "No such attribute!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 1161
      StackMap locals: javax.imageio.metadata.IIOMetadataFormatImpl$Attribute
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 1 /* elementName */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "/"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* attrName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 6 /* key */
        start local 6 // java.lang.String key
         7: .line 1162
            aload 0 /* this */
            aload 6 /* key */
            aload 3 /* locale */
            invokevirtual javax.imageio.metadata.IIOMetadataFormatImpl.getResource:(Ljava/lang/String;Ljava/util/Locale;)Ljava/lang/String;
            areturn
        end local 6 // java.lang.String key
        end local 5 // javax.imageio.metadata.IIOMetadataFormatImpl$Attribute attr
        end local 4 // javax.imageio.metadata.IIOMetadataFormatImpl$Element element
        end local 3 // java.util.Locale locale
        end local 2 // java.lang.String attrName
        end local 1 // java.lang.String elementName
        end local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    8     0         this  Ljavax/imageio/metadata/IIOMetadataFormatImpl;
            0    8     1  elementName  Ljava/lang/String;
            0    8     2     attrName  Ljava/lang/String;
            0    8     3       locale  Ljava/util/Locale;
            1    8     4      element  Ljavax/imageio/metadata/IIOMetadataFormatImpl$Element;
            4    8     5         attr  Ljavax/imageio/metadata/IIOMetadataFormatImpl$Attribute;
            7    8     6          key  Ljava/lang/String;
    MethodParameters:
             Name  Flags
      elementName  
      attrName     
      locale       

  private javax.imageio.metadata.IIOMetadataFormatImpl$ObjectValue<?> getObjectValue(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljavax/imageio/metadata/IIOMetadataFormatImpl$ObjectValue;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
        start local 1 // java.lang.String elementName
         0: .line 1166
            aload 0 /* this */
            aload 1 /* elementName */
            invokevirtual javax.imageio.metadata.IIOMetadataFormatImpl.getElement:(Ljava/lang/String;)Ljavax/imageio/metadata/IIOMetadataFormatImpl$Element;
            astore 2 /* element */
        start local 2 // javax.imageio.metadata.IIOMetadataFormatImpl$Element element
         1: .line 1167
            aload 2 /* element */
            getfield javax.imageio.metadata.IIOMetadataFormatImpl$Element.objectValue:Ljavax/imageio/metadata/IIOMetadataFormatImpl$ObjectValue;
            astore 3 /* objv */
        start local 3 // javax.imageio.metadata.IIOMetadataFormatImpl$ObjectValue objv
         2: .line 1168
            aload 3 /* objv */
            ifnonnull 6
         3: .line 1169
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "No object within element "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         4: .line 1170
            aload 1 /* elementName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "!"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         5: .line 1169
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 1172
      StackMap locals: javax.imageio.metadata.IIOMetadataFormatImpl$Element javax.imageio.metadata.IIOMetadataFormatImpl$ObjectValue
      StackMap stack:
            aload 3 /* objv */
            areturn
        end local 3 // javax.imageio.metadata.IIOMetadataFormatImpl$ObjectValue objv
        end local 2 // javax.imageio.metadata.IIOMetadataFormatImpl$Element element
        end local 1 // java.lang.String elementName
        end local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    7     0         this  Ljavax/imageio/metadata/IIOMetadataFormatImpl;
            0    7     1  elementName  Ljava/lang/String;
            1    7     2      element  Ljavax/imageio/metadata/IIOMetadataFormatImpl$Element;
            2    7     3         objv  Ljavax/imageio/metadata/IIOMetadataFormatImpl$ObjectValue<*>;
    Signature: (Ljava/lang/String;)Ljavax/imageio/metadata/IIOMetadataFormatImpl$ObjectValue<*>;
    MethodParameters:
             Name  Flags
      elementName  

  public int getObjectValueType(java.lang.String);
    descriptor: (Ljava/lang/String;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
        start local 1 // java.lang.String elementName
         0: .line 1176
            aload 0 /* this */
            aload 1 /* elementName */
            invokevirtual javax.imageio.metadata.IIOMetadataFormatImpl.getElement:(Ljava/lang/String;)Ljavax/imageio/metadata/IIOMetadataFormatImpl$Element;
            astore 2 /* element */
        start local 2 // javax.imageio.metadata.IIOMetadataFormatImpl$Element element
         1: .line 1177
            aload 2 /* element */
            getfield javax.imageio.metadata.IIOMetadataFormatImpl$Element.objectValue:Ljavax/imageio/metadata/IIOMetadataFormatImpl$ObjectValue;
            astore 3 /* objv */
        start local 3 // javax.imageio.metadata.IIOMetadataFormatImpl$ObjectValue objv
         2: .line 1178
            aload 3 /* objv */
            ifnonnull 4
         3: .line 1179
            iconst_0
            ireturn
         4: .line 1181
      StackMap locals: javax.imageio.metadata.IIOMetadataFormatImpl$Element javax.imageio.metadata.IIOMetadataFormatImpl$ObjectValue
      StackMap stack:
            aload 3 /* objv */
            getfield javax.imageio.metadata.IIOMetadataFormatImpl$ObjectValue.valueType:I
            ireturn
        end local 3 // javax.imageio.metadata.IIOMetadataFormatImpl$ObjectValue objv
        end local 2 // javax.imageio.metadata.IIOMetadataFormatImpl$Element element
        end local 1 // java.lang.String elementName
        end local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    5     0         this  Ljavax/imageio/metadata/IIOMetadataFormatImpl;
            0    5     1  elementName  Ljava/lang/String;
            1    5     2      element  Ljavax/imageio/metadata/IIOMetadataFormatImpl$Element;
            2    5     3         objv  Ljavax/imageio/metadata/IIOMetadataFormatImpl$ObjectValue<*>;
    MethodParameters:
             Name  Flags
      elementName  

  public java.lang.Class<?> getObjectClass(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/Class;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
        start local 1 // java.lang.String elementName
         0: .line 1185
            aload 0 /* this */
            aload 1 /* elementName */
            invokevirtual javax.imageio.metadata.IIOMetadataFormatImpl.getObjectValue:(Ljava/lang/String;)Ljavax/imageio/metadata/IIOMetadataFormatImpl$ObjectValue;
            astore 2 /* objv */
        start local 2 // javax.imageio.metadata.IIOMetadataFormatImpl$ObjectValue objv
         1: .line 1186
            aload 2 /* objv */
            getfield javax.imageio.metadata.IIOMetadataFormatImpl$ObjectValue.classType:Ljava/lang/Class;
            areturn
        end local 2 // javax.imageio.metadata.IIOMetadataFormatImpl$ObjectValue objv
        end local 1 // java.lang.String elementName
        end local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Ljavax/imageio/metadata/IIOMetadataFormatImpl;
            0    2     1  elementName  Ljava/lang/String;
            1    2     2         objv  Ljavax/imageio/metadata/IIOMetadataFormatImpl$ObjectValue<*>;
    Signature: (Ljava/lang/String;)Ljava/lang/Class<*>;
    MethodParameters:
             Name  Flags
      elementName  

  public java.lang.Object getObjectDefaultValue(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
        start local 1 // java.lang.String elementName
         0: .line 1190
            aload 0 /* this */
            aload 1 /* elementName */
            invokevirtual javax.imageio.metadata.IIOMetadataFormatImpl.getObjectValue:(Ljava/lang/String;)Ljavax/imageio/metadata/IIOMetadataFormatImpl$ObjectValue;
            astore 2 /* objv */
        start local 2 // javax.imageio.metadata.IIOMetadataFormatImpl$ObjectValue objv
         1: .line 1191
            aload 2 /* objv */
            getfield javax.imageio.metadata.IIOMetadataFormatImpl$ObjectValue.defaultValue:Ljava/lang/Object;
            areturn
        end local 2 // javax.imageio.metadata.IIOMetadataFormatImpl$ObjectValue objv
        end local 1 // java.lang.String elementName
        end local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Ljavax/imageio/metadata/IIOMetadataFormatImpl;
            0    2     1  elementName  Ljava/lang/String;
            1    2     2         objv  Ljavax/imageio/metadata/IIOMetadataFormatImpl$ObjectValue<*>;
    MethodParameters:
             Name  Flags
      elementName  

  public java.lang.Object[] getObjectEnumerations(java.lang.String);
    descriptor: (Ljava/lang/String;)[Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
        start local 1 // java.lang.String elementName
         0: .line 1195
            aload 0 /* this */
            aload 1 /* elementName */
            invokevirtual javax.imageio.metadata.IIOMetadataFormatImpl.getObjectValue:(Ljava/lang/String;)Ljavax/imageio/metadata/IIOMetadataFormatImpl$ObjectValue;
            astore 2 /* objv */
        start local 2 // javax.imageio.metadata.IIOMetadataFormatImpl$ObjectValue objv
         1: .line 1196
            aload 2 /* objv */
            getfield javax.imageio.metadata.IIOMetadataFormatImpl$ObjectValue.valueType:I
            bipush 16
            if_icmpeq 3
         2: .line 1197
            new java.lang.IllegalArgumentException
            dup
            ldc "Not an enumeration!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 1199
      StackMap locals: javax.imageio.metadata.IIOMetadataFormatImpl$ObjectValue
      StackMap stack:
            aload 2 /* objv */
            getfield javax.imageio.metadata.IIOMetadataFormatImpl$ObjectValue.enumeratedValues:Ljava/util/List;
            astore 3 /* vlist */
        start local 3 // java.util.List vlist
         4: .line 1200
            aload 3 /* vlist */
            invokeinterface java.util.List.size:()I
            anewarray java.lang.Object
            astore 4 /* values */
        start local 4 // java.lang.Object[] values
         5: .line 1201
            aload 3 /* vlist */
            aload 4 /* values */
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            areturn
        end local 4 // java.lang.Object[] values
        end local 3 // java.util.List vlist
        end local 2 // javax.imageio.metadata.IIOMetadataFormatImpl$ObjectValue objv
        end local 1 // java.lang.String elementName
        end local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    6     0         this  Ljavax/imageio/metadata/IIOMetadataFormatImpl;
            0    6     1  elementName  Ljava/lang/String;
            1    6     2         objv  Ljavax/imageio/metadata/IIOMetadataFormatImpl$ObjectValue<*>;
            4    6     3        vlist  Ljava/util/List<*>;
            5    6     4       values  [Ljava/lang/Object;
    MethodParameters:
             Name  Flags
      elementName  

  public java.lang.Comparable<?> getObjectMinValue(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/Comparable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
        start local 1 // java.lang.String elementName
         0: .line 1205
            aload 0 /* this */
            aload 1 /* elementName */
            invokevirtual javax.imageio.metadata.IIOMetadataFormatImpl.getObjectValue:(Ljava/lang/String;)Ljavax/imageio/metadata/IIOMetadataFormatImpl$ObjectValue;
            astore 2 /* objv */
        start local 2 // javax.imageio.metadata.IIOMetadataFormatImpl$ObjectValue objv
         1: .line 1206
            aload 2 /* objv */
            getfield javax.imageio.metadata.IIOMetadataFormatImpl$ObjectValue.valueType:I
            iconst_2
            iand
            iconst_2
            if_icmpeq 3
         2: .line 1207
            new java.lang.IllegalArgumentException
            dup
            ldc "Not a range!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 1209
      StackMap locals: javax.imageio.metadata.IIOMetadataFormatImpl$ObjectValue
      StackMap stack:
            aload 2 /* objv */
            getfield javax.imageio.metadata.IIOMetadataFormatImpl$ObjectValue.minValue:Ljava/lang/Comparable;
            areturn
        end local 2 // javax.imageio.metadata.IIOMetadataFormatImpl$ObjectValue objv
        end local 1 // java.lang.String elementName
        end local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    4     0         this  Ljavax/imageio/metadata/IIOMetadataFormatImpl;
            0    4     1  elementName  Ljava/lang/String;
            1    4     2         objv  Ljavax/imageio/metadata/IIOMetadataFormatImpl$ObjectValue<*>;
    Signature: (Ljava/lang/String;)Ljava/lang/Comparable<*>;
    MethodParameters:
             Name  Flags
      elementName  

  public java.lang.Comparable<?> getObjectMaxValue(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/Comparable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
        start local 1 // java.lang.String elementName
         0: .line 1213
            aload 0 /* this */
            aload 1 /* elementName */
            invokevirtual javax.imageio.metadata.IIOMetadataFormatImpl.getObjectValue:(Ljava/lang/String;)Ljavax/imageio/metadata/IIOMetadataFormatImpl$ObjectValue;
            astore 2 /* objv */
        start local 2 // javax.imageio.metadata.IIOMetadataFormatImpl$ObjectValue objv
         1: .line 1214
            aload 2 /* objv */
            getfield javax.imageio.metadata.IIOMetadataFormatImpl$ObjectValue.valueType:I
            iconst_2
            iand
            iconst_2
            if_icmpeq 3
         2: .line 1215
            new java.lang.IllegalArgumentException
            dup
            ldc "Not a range!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 1217
      StackMap locals: javax.imageio.metadata.IIOMetadataFormatImpl$ObjectValue
      StackMap stack:
            aload 2 /* objv */
            getfield javax.imageio.metadata.IIOMetadataFormatImpl$ObjectValue.maxValue:Ljava/lang/Comparable;
            areturn
        end local 2 // javax.imageio.metadata.IIOMetadataFormatImpl$ObjectValue objv
        end local 1 // java.lang.String elementName
        end local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    4     0         this  Ljavax/imageio/metadata/IIOMetadataFormatImpl;
            0    4     1  elementName  Ljava/lang/String;
            1    4     2         objv  Ljavax/imageio/metadata/IIOMetadataFormatImpl$ObjectValue<*>;
    Signature: (Ljava/lang/String;)Ljava/lang/Comparable<*>;
    MethodParameters:
             Name  Flags
      elementName  

  public int getObjectArrayMinLength(java.lang.String);
    descriptor: (Ljava/lang/String;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
        start local 1 // java.lang.String elementName
         0: .line 1221
            aload 0 /* this */
            aload 1 /* elementName */
            invokevirtual javax.imageio.metadata.IIOMetadataFormatImpl.getObjectValue:(Ljava/lang/String;)Ljavax/imageio/metadata/IIOMetadataFormatImpl$ObjectValue;
            astore 2 /* objv */
        start local 2 // javax.imageio.metadata.IIOMetadataFormatImpl$ObjectValue objv
         1: .line 1222
            aload 2 /* objv */
            getfield javax.imageio.metadata.IIOMetadataFormatImpl$ObjectValue.valueType:I
            bipush 32
            if_icmpeq 3
         2: .line 1223
            new java.lang.IllegalArgumentException
            dup
            ldc "Not a list!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 1225
      StackMap locals: javax.imageio.metadata.IIOMetadataFormatImpl$ObjectValue
      StackMap stack:
            aload 2 /* objv */
            getfield javax.imageio.metadata.IIOMetadataFormatImpl$ObjectValue.arrayMinLength:I
            ireturn
        end local 2 // javax.imageio.metadata.IIOMetadataFormatImpl$ObjectValue objv
        end local 1 // java.lang.String elementName
        end local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    4     0         this  Ljavax/imageio/metadata/IIOMetadataFormatImpl;
            0    4     1  elementName  Ljava/lang/String;
            1    4     2         objv  Ljavax/imageio/metadata/IIOMetadataFormatImpl$ObjectValue<*>;
    MethodParameters:
             Name  Flags
      elementName  

  public int getObjectArrayMaxLength(java.lang.String);
    descriptor: (Ljava/lang/String;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
        start local 1 // java.lang.String elementName
         0: .line 1229
            aload 0 /* this */
            aload 1 /* elementName */
            invokevirtual javax.imageio.metadata.IIOMetadataFormatImpl.getObjectValue:(Ljava/lang/String;)Ljavax/imageio/metadata/IIOMetadataFormatImpl$ObjectValue;
            astore 2 /* objv */
        start local 2 // javax.imageio.metadata.IIOMetadataFormatImpl$ObjectValue objv
         1: .line 1230
            aload 2 /* objv */
            getfield javax.imageio.metadata.IIOMetadataFormatImpl$ObjectValue.valueType:I
            bipush 32
            if_icmpeq 3
         2: .line 1231
            new java.lang.IllegalArgumentException
            dup
            ldc "Not a list!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 1233
      StackMap locals: javax.imageio.metadata.IIOMetadataFormatImpl$ObjectValue
      StackMap stack:
            aload 2 /* objv */
            getfield javax.imageio.metadata.IIOMetadataFormatImpl$ObjectValue.arrayMaxLength:I
            ireturn
        end local 2 // javax.imageio.metadata.IIOMetadataFormatImpl$ObjectValue objv
        end local 1 // java.lang.String elementName
        end local 0 // javax.imageio.metadata.IIOMetadataFormatImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    4     0         this  Ljavax/imageio/metadata/IIOMetadataFormatImpl;
            0    4     1  elementName  Ljava/lang/String;
            1    4     2         objv  Ljavax/imageio/metadata/IIOMetadataFormatImpl$ObjectValue<*>;
    MethodParameters:
             Name  Flags
      elementName  

  private static synchronized void createStandardFormat();
    descriptor: ()V
    flags: (0x002a) ACC_PRIVATE, ACC_STATIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=0, args_size=0
         0: .line 1239
            getstatic javax.imageio.metadata.IIOMetadataFormatImpl.standardFormat:Ljavax/imageio/metadata/IIOMetadataFormat;
            ifnonnull 2
         1: .line 1240
            new com.sun.imageio.plugins.common.StandardMetadataFormat
            dup
            invokespecial com.sun.imageio.plugins.common.StandardMetadataFormat.<init>:()V
            putstatic javax.imageio.metadata.IIOMetadataFormatImpl.standardFormat:Ljavax/imageio/metadata/IIOMetadataFormat;
         2: .line 1242
      StackMap locals:
      StackMap stack:
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static javax.imageio.metadata.IIOMetadataFormat getStandardFormatInstance();
    descriptor: ()Ljavax/imageio/metadata/IIOMetadataFormat;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 1253
            invokestatic javax.imageio.metadata.IIOMetadataFormatImpl.createStandardFormat:()V
         1: .line 1254
            getstatic javax.imageio.metadata.IIOMetadataFormatImpl.standardFormat:Ljavax/imageio/metadata/IIOMetadataFormat;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "IIOMetadataFormatImpl.java"
NestMembers:
  javax.imageio.metadata.IIOMetadataFormatImpl$Attribute  javax.imageio.metadata.IIOMetadataFormatImpl$Element  javax.imageio.metadata.IIOMetadataFormatImpl$ObjectValue
InnerClasses:
  Attribute = javax.imageio.metadata.IIOMetadataFormatImpl$Attribute of javax.imageio.metadata.IIOMetadataFormatImpl
  Element = javax.imageio.metadata.IIOMetadataFormatImpl$Element of javax.imageio.metadata.IIOMetadataFormatImpl
  ObjectValue = javax.imageio.metadata.IIOMetadataFormatImpl$ObjectValue of javax.imageio.metadata.IIOMetadataFormatImpl