final class com.sun.jmx.mbeanserver.DefaultMXBeanMappingFactory$TabularMapping extends com.sun.jmx.mbeanserver.DefaultMXBeanMappingFactory$NonNullMXBeanMapping
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: com.sun.jmx.mbeanserver.DefaultMXBeanMappingFactory$TabularMapping
  super_class: com.sun.jmx.mbeanserver.DefaultMXBeanMappingFactory$NonNullMXBeanMapping
{
  private final boolean sortedMap;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.sun.jmx.mbeanserver.MXBeanMapping keyMapping;
    descriptor: Lcom/sun/jmx/mbeanserver/MXBeanMapping;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.sun.jmx.mbeanserver.MXBeanMapping valueMapping;
    descriptor: Lcom/sun/jmx/mbeanserver/MXBeanMapping;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  void <init>(java.lang.reflect.Type, boolean, javax.management.openmbean.TabularType, com.sun.jmx.mbeanserver.MXBeanMapping, com.sun.jmx.mbeanserver.MXBeanMapping);
    descriptor: (Ljava/lang/reflect/Type;ZLjavax/management/openmbean/TabularType;Lcom/sun/jmx/mbeanserver/MXBeanMapping;Lcom/sun/jmx/mbeanserver/MXBeanMapping;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=6, args_size=6
        start local 0 // com.sun.jmx.mbeanserver.DefaultMXBeanMappingFactory$TabularMapping this
        start local 1 // java.lang.reflect.Type targetType
        start local 2 // boolean sortedMap
        start local 3 // javax.management.openmbean.TabularType tabularType
        start local 4 // com.sun.jmx.mbeanserver.MXBeanMapping keyConverter
        start local 5 // com.sun.jmx.mbeanserver.MXBeanMapping valueConverter
         0: .line 737
            aload 0 /* this */
            aload 1 /* targetType */
            aload 3 /* tabularType */
            invokespecial com.sun.jmx.mbeanserver.DefaultMXBeanMappingFactory$NonNullMXBeanMapping.<init>:(Ljava/lang/reflect/Type;Ljavax/management/openmbean/OpenType;)V
         1: .line 738
            aload 0 /* this */
            iload 2 /* sortedMap */
            putfield com.sun.jmx.mbeanserver.DefaultMXBeanMappingFactory$TabularMapping.sortedMap:Z
         2: .line 739
            aload 0 /* this */
            aload 4 /* keyConverter */
            putfield com.sun.jmx.mbeanserver.DefaultMXBeanMappingFactory$TabularMapping.keyMapping:Lcom/sun/jmx/mbeanserver/MXBeanMapping;
         3: .line 740
            aload 0 /* this */
            aload 5 /* valueConverter */
            putfield com.sun.jmx.mbeanserver.DefaultMXBeanMappingFactory$TabularMapping.valueMapping:Lcom/sun/jmx/mbeanserver/MXBeanMapping;
         4: .line 741
            return
        end local 5 // com.sun.jmx.mbeanserver.MXBeanMapping valueConverter
        end local 4 // com.sun.jmx.mbeanserver.MXBeanMapping keyConverter
        end local 3 // javax.management.openmbean.TabularType tabularType
        end local 2 // boolean sortedMap
        end local 1 // java.lang.reflect.Type targetType
        end local 0 // com.sun.jmx.mbeanserver.DefaultMXBeanMappingFactory$TabularMapping this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    5     0            this  Lcom/sun/jmx/mbeanserver/DefaultMXBeanMappingFactory$TabularMapping;
            0    5     1      targetType  Ljava/lang/reflect/Type;
            0    5     2       sortedMap  Z
            0    5     3     tabularType  Ljavax/management/openmbean/TabularType;
            0    5     4    keyConverter  Lcom/sun/jmx/mbeanserver/MXBeanMapping;
            0    5     5  valueConverter  Lcom/sun/jmx/mbeanserver/MXBeanMapping;
    MethodParameters:
                Name  Flags
      targetType      
      sortedMap       
      tabularType     
      keyConverter    
      valueConverter  

  final java.lang.Object toNonNullOpenValue(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0010) ACC_FINAL
    Code:
      stack=8, locals=11, args_size=2
        start local 0 // com.sun.jmx.mbeanserver.DefaultMXBeanMappingFactory$TabularMapping this
        start local 1 // java.lang.Object value
         0: .line 745
            aload 1 /* value */
            invokestatic com.sun.jmx.mbeanserver.Util.cast:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Map
            astore 2 /* valueMap */
        start local 2 // java.util.Map valueMap
         1: .line 746
            aload 2 /* valueMap */
            instanceof java.util.SortedMap
            ifeq 9
         2: .line 747
            aload 2 /* valueMap */
            checkcast java.util.SortedMap
            invokeinterface java.util.SortedMap.comparator:()Ljava/util/Comparator;
            astore 3 /* comparator */
        start local 3 // java.util.Comparator comparator
         3: .line 748
            aload 3 /* comparator */
            ifnull 9
         4: .line 750
            new java.lang.StringBuilder
            dup
            ldc "Cannot convert SortedMap with non-null comparator: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         5: .line 751
            aload 3 /* comparator */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
         6: .line 750
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         7: .line 749
            astore 4 /* msg */
        start local 4 // java.lang.String msg
         8: .line 752
            aload 4 /* msg */
            new java.lang.IllegalArgumentException
            dup
            aload 4 /* msg */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            invokestatic com.sun.jmx.mbeanserver.DefaultMXBeanMappingFactory.openDataException:(Ljava/lang/String;Ljava/lang/Throwable;)Ljavax/management/openmbean/OpenDataException;
            athrow
        end local 4 // java.lang.String msg
        end local 3 // java.util.Comparator comparator
         9: .line 755
      StackMap locals: java.util.Map
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.jmx.mbeanserver.DefaultMXBeanMappingFactory$TabularMapping.getOpenType:()Ljavax/management/openmbean/OpenType;
            checkcast javax.management.openmbean.TabularType
            astore 3 /* tabularType */
        start local 3 // javax.management.openmbean.TabularType tabularType
        10: .line 756
            new javax.management.openmbean.TabularDataSupport
            dup
            aload 3 /* tabularType */
            invokespecial javax.management.openmbean.TabularDataSupport.<init>:(Ljavax/management/openmbean/TabularType;)V
            astore 4 /* table */
        start local 4 // javax.management.openmbean.TabularData table
        11: .line 757
            aload 3 /* tabularType */
            invokevirtual javax.management.openmbean.TabularType.getRowType:()Ljavax/management/openmbean/CompositeType;
            astore 5 /* rowType */
        start local 5 // javax.management.openmbean.CompositeType rowType
        12: .line 758
            aload 2 /* valueMap */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 7
            goto 22
      StackMap locals: com.sun.jmx.mbeanserver.DefaultMXBeanMappingFactory$TabularMapping java.lang.Object java.util.Map javax.management.openmbean.TabularType javax.management.openmbean.TabularData javax.management.openmbean.CompositeType top java.util.Iterator
      StackMap stack:
        13: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 6 /* entry */
        start local 6 // java.util.Map$Entry entry
        14: .line 759
            aload 0 /* this */
            getfield com.sun.jmx.mbeanserver.DefaultMXBeanMappingFactory$TabularMapping.keyMapping:Lcom/sun/jmx/mbeanserver/MXBeanMapping;
            aload 6 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            invokevirtual com.sun.jmx.mbeanserver.MXBeanMapping.toOpenValue:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 8 /* openKey */
        start local 8 // java.lang.Object openKey
        15: .line 760
            aload 0 /* this */
            getfield com.sun.jmx.mbeanserver.DefaultMXBeanMappingFactory$TabularMapping.valueMapping:Lcom/sun/jmx/mbeanserver/MXBeanMapping;
            aload 6 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            invokevirtual com.sun.jmx.mbeanserver.MXBeanMapping.toOpenValue:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 9 /* openValue */
        start local 9 // java.lang.Object openValue
        16: .line 763
            new javax.management.openmbean.CompositeDataSupport
            dup
            aload 5 /* rowType */
            getstatic com.sun.jmx.mbeanserver.DefaultMXBeanMappingFactory.keyValueArray:[Ljava/lang/String;
        17: .line 764
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 8 /* openKey */
            aastore
            dup
            iconst_1
        18: .line 765
            aload 9 /* openValue */
            aastore
        19: .line 763
            invokespecial javax.management.openmbean.CompositeDataSupport.<init>:(Ljavax/management/openmbean/CompositeType;[Ljava/lang/String;[Ljava/lang/Object;)V
        20: .line 762
            astore 10 /* row */
        start local 10 // javax.management.openmbean.CompositeData row
        21: .line 766
            aload 4 /* table */
            aload 10 /* row */
            invokeinterface javax.management.openmbean.TabularData.put:(Ljavax/management/openmbean/CompositeData;)V
        end local 10 // javax.management.openmbean.CompositeData row
        end local 9 // java.lang.Object openValue
        end local 8 // java.lang.Object openKey
        end local 6 // java.util.Map$Entry entry
        22: .line 758
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 13
        23: .line 768
            aload 4 /* table */
            areturn
        end local 5 // javax.management.openmbean.CompositeType rowType
        end local 4 // javax.management.openmbean.TabularData table
        end local 3 // javax.management.openmbean.TabularType tabularType
        end local 2 // java.util.Map valueMap
        end local 1 // java.lang.Object value
        end local 0 // com.sun.jmx.mbeanserver.DefaultMXBeanMappingFactory$TabularMapping this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   24     0         this  Lcom/sun/jmx/mbeanserver/DefaultMXBeanMappingFactory$TabularMapping;
            0   24     1        value  Ljava/lang/Object;
            1   24     2     valueMap  Ljava/util/Map<Ljava/lang/Object;Ljava/lang/Object;>;
            3    9     3   comparator  Ljava/util/Comparator<*>;
            8    9     4          msg  Ljava/lang/String;
           10   24     3  tabularType  Ljavax/management/openmbean/TabularType;
           11   24     4        table  Ljavax/management/openmbean/TabularData;
           12   24     5      rowType  Ljavax/management/openmbean/CompositeType;
           14   22     6        entry  Ljava/util/Map$Entry<Ljava/lang/Object;Ljava/lang/Object;>;
           15   22     8      openKey  Ljava/lang/Object;
           16   22     9    openValue  Ljava/lang/Object;
           21   22    10          row  Ljavax/management/openmbean/CompositeData;
    Exceptions:
      throws javax.management.openmbean.OpenDataException
    MethodParameters:
       Name  Flags
      value  

  final java.lang.Object fromNonNullOpenValue(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0010) ACC_FINAL
    Code:
      stack=3, locals=10, args_size=2
        start local 0 // com.sun.jmx.mbeanserver.DefaultMXBeanMappingFactory$TabularMapping this
        start local 1 // java.lang.Object openValue
         0: .line 774
            aload 1 /* openValue */
            checkcast javax.management.openmbean.TabularData
            astore 2 /* table */
        start local 2 // javax.management.openmbean.TabularData table
         1: .line 775
            aload 2 /* table */
            invokeinterface javax.management.openmbean.TabularData.values:()Ljava/util/Collection;
            invokestatic com.sun.jmx.mbeanserver.Util.cast:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Collection
            astore 3 /* rows */
        start local 3 // java.util.Collection rows
         2: .line 777
            aload 0 /* this */
            getfield com.sun.jmx.mbeanserver.DefaultMXBeanMappingFactory$TabularMapping.sortedMap:Z
            ifeq 3
            invokestatic com.sun.jmx.mbeanserver.Util.newSortedMap:()Ljava/util/SortedMap;
            goto 4
      StackMap locals: javax.management.openmbean.TabularData java.util.Collection
      StackMap stack:
         3: invokestatic com.sun.jmx.mbeanserver.Util.newInsertionOrderMap:()Ljava/util/Map;
         4: .line 776
      StackMap locals:
      StackMap stack: java.util.Map
            astore 4 /* valueMap */
        start local 4 // java.util.Map valueMap
         5: .line 778
            aload 3 /* rows */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 6
            goto 15
      StackMap locals: com.sun.jmx.mbeanserver.DefaultMXBeanMappingFactory$TabularMapping java.lang.Object javax.management.openmbean.TabularData java.util.Collection java.util.Map top java.util.Iterator
      StackMap stack:
         6: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javax.management.openmbean.CompositeData
            astore 5 /* row */
        start local 5 // javax.management.openmbean.CompositeData row
         7: .line 780
            aload 0 /* this */
            getfield com.sun.jmx.mbeanserver.DefaultMXBeanMappingFactory$TabularMapping.keyMapping:Lcom/sun/jmx/mbeanserver/MXBeanMapping;
            aload 5 /* row */
            ldc "key"
            invokeinterface javax.management.openmbean.CompositeData.get:(Ljava/lang/String;)Ljava/lang/Object;
            invokevirtual com.sun.jmx.mbeanserver.MXBeanMapping.fromOpenValue:(Ljava/lang/Object;)Ljava/lang/Object;
         8: .line 779
            astore 7 /* key */
        start local 7 // java.lang.Object key
         9: .line 782
            aload 0 /* this */
            getfield com.sun.jmx.mbeanserver.DefaultMXBeanMappingFactory$TabularMapping.valueMapping:Lcom/sun/jmx/mbeanserver/MXBeanMapping;
            aload 5 /* row */
            ldc "value"
            invokeinterface javax.management.openmbean.CompositeData.get:(Ljava/lang/String;)Ljava/lang/Object;
            invokevirtual com.sun.jmx.mbeanserver.MXBeanMapping.fromOpenValue:(Ljava/lang/Object;)Ljava/lang/Object;
        10: .line 781
            astore 8 /* value */
        start local 8 // java.lang.Object value
        11: .line 783
            aload 4 /* valueMap */
            aload 7 /* key */
            aload 8 /* value */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            ifnull 15
        12: .line 785
            new java.lang.StringBuilder
            dup
            ldc "Duplicate entry in TabularData: key="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 7 /* key */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        13: .line 784
            astore 9 /* msg */
        start local 9 // java.lang.String msg
        14: .line 786
            new java.io.InvalidObjectException
            dup
            aload 9 /* msg */
            invokespecial java.io.InvalidObjectException.<init>:(Ljava/lang/String;)V
            athrow
        end local 9 // java.lang.String msg
        end local 8 // java.lang.Object value
        end local 7 // java.lang.Object key
        end local 5 // javax.management.openmbean.CompositeData row
        15: .line 778
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
        16: .line 789
            aload 4 /* valueMap */
            areturn
        end local 4 // java.util.Map valueMap
        end local 3 // java.util.Collection rows
        end local 2 // javax.management.openmbean.TabularData table
        end local 1 // java.lang.Object openValue
        end local 0 // com.sun.jmx.mbeanserver.DefaultMXBeanMappingFactory$TabularMapping this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   17     0       this  Lcom/sun/jmx/mbeanserver/DefaultMXBeanMappingFactory$TabularMapping;
            0   17     1  openValue  Ljava/lang/Object;
            1   17     2      table  Ljavax/management/openmbean/TabularData;
            2   17     3       rows  Ljava/util/Collection<Ljavax/management/openmbean/CompositeData;>;
            5   17     4   valueMap  Ljava/util/Map<Ljava/lang/Object;Ljava/lang/Object;>;
            7   15     5        row  Ljavax/management/openmbean/CompositeData;
            9   15     7        key  Ljava/lang/Object;
           11   15     8      value  Ljava/lang/Object;
           14   15     9        msg  Ljava/lang/String;
    Exceptions:
      throws java.io.InvalidObjectException
    MethodParameters:
           Name  Flags
      openValue  

  public void checkReconstructible();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.jmx.mbeanserver.DefaultMXBeanMappingFactory$TabularMapping this
         0: .line 794
            aload 0 /* this */
            getfield com.sun.jmx.mbeanserver.DefaultMXBeanMappingFactory$TabularMapping.keyMapping:Lcom/sun/jmx/mbeanserver/MXBeanMapping;
            invokevirtual com.sun.jmx.mbeanserver.MXBeanMapping.checkReconstructible:()V
         1: .line 795
            aload 0 /* this */
            getfield com.sun.jmx.mbeanserver.DefaultMXBeanMappingFactory$TabularMapping.valueMapping:Lcom/sun/jmx/mbeanserver/MXBeanMapping;
            invokevirtual com.sun.jmx.mbeanserver.MXBeanMapping.checkReconstructible:()V
         2: .line 796
            return
        end local 0 // com.sun.jmx.mbeanserver.DefaultMXBeanMappingFactory$TabularMapping this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/sun/jmx/mbeanserver/DefaultMXBeanMappingFactory$TabularMapping;
    Exceptions:
      throws java.io.InvalidObjectException
}
SourceFile: "DefaultMXBeanMappingFactory.java"
NestHost: com.sun.jmx.mbeanserver.DefaultMXBeanMappingFactory
InnerClasses:
  abstract NonNullMXBeanMapping = com.sun.jmx.mbeanserver.DefaultMXBeanMappingFactory$NonNullMXBeanMapping of com.sun.jmx.mbeanserver.DefaultMXBeanMappingFactory
  private final TabularMapping = com.sun.jmx.mbeanserver.DefaultMXBeanMappingFactory$TabularMapping of com.sun.jmx.mbeanserver.DefaultMXBeanMappingFactory
  public abstract Entry = java.util.Map$Entry of java.util.Map