public class javax.management.relation.RelationTypeSupport implements javax.management.relation.RelationType
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: javax.management.relation.RelationTypeSupport
  super_class: java.lang.Object
{
  private static final long oldSerialVersionUID;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: -8179019472410837190

  private static final long newSerialVersionUID;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 4611072955724144607

  private static final java.io.ObjectStreamField[] oldSerialPersistentFields;
    descriptor: [Ljava/io/ObjectStreamField;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.io.ObjectStreamField[] newSerialPersistentFields;
    descriptor: [Ljava/io/ObjectStreamField;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final long serialVersionUID;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.io.ObjectStreamField[] serialPersistentFields;
    descriptor: [Ljava/io/ObjectStreamField;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static boolean compat;
    descriptor: Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

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

  private java.util.Map<java.lang.String, javax.management.relation.RoleInfo> roleName2InfoMap;
    descriptor: Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Map<Ljava/lang/String;Ljavax/management/relation/RoleInfo;>;

  private boolean isInRelationService;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=7, locals=2, args_size=0
         0: .line 83
            iconst_3
            anewarray java.io.ObjectStreamField
            dup
            iconst_0
         1: .line 84
            new java.io.ObjectStreamField
            dup
            ldc "myTypeName"
            ldc Ljava/lang/String;
            invokespecial java.io.ObjectStreamField.<init>:(Ljava/lang/String;Ljava/lang/Class;)V
            aastore
            dup
            iconst_1
         2: .line 85
            new java.io.ObjectStreamField
            dup
            ldc "myRoleName2InfoMap"
            ldc Ljava/util/HashMap;
            invokespecial java.io.ObjectStreamField.<init>:(Ljava/lang/String;Ljava/lang/Class;)V
            aastore
            dup
            iconst_2
         3: .line 86
            new java.io.ObjectStreamField
            dup
            ldc "myIsInRelServFlg"
            getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
            invokespecial java.io.ObjectStreamField.<init>:(Ljava/lang/String;Ljava/lang/Class;)V
            aastore
         4: .line 82
            putstatic javax.management.relation.RelationTypeSupport.oldSerialPersistentFields:[Ljava/io/ObjectStreamField;
         5: .line 91
            iconst_3
            anewarray java.io.ObjectStreamField
            dup
            iconst_0
         6: .line 92
            new java.io.ObjectStreamField
            dup
            ldc "typeName"
            ldc Ljava/lang/String;
            invokespecial java.io.ObjectStreamField.<init>:(Ljava/lang/String;Ljava/lang/Class;)V
            aastore
            dup
            iconst_1
         7: .line 93
            new java.io.ObjectStreamField
            dup
            ldc "roleName2InfoMap"
            ldc Ljava/util/Map;
            invokespecial java.io.ObjectStreamField.<init>:(Ljava/lang/String;Ljava/lang/Class;)V
            aastore
            dup
            iconst_2
         8: .line 94
            new java.io.ObjectStreamField
            dup
            ldc "isInRelationService"
            getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
            invokespecial java.io.ObjectStreamField.<init>:(Ljava/lang/String;Ljava/lang/Class;)V
            aastore
         9: .line 90
            putstatic javax.management.relation.RelationTypeSupport.newSerialPersistentFields:[Ljava/io/ObjectStreamField;
        10: .line 107
            iconst_0
            putstatic javax.management.relation.RelationTypeSupport.compat:Z
        11: .line 110
            new com.sun.jmx.mbeanserver.GetPropertyAction
            dup
            ldc "jmx.serial.form"
            invokespecial com.sun.jmx.mbeanserver.GetPropertyAction.<init>:(Ljava/lang/String;)V
            astore 0 /* act */
        start local 0 // com.sun.jmx.mbeanserver.GetPropertyAction act
        12: .line 111
            aload 0 /* act */
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 1 /* form */
        start local 1 // java.lang.String form
        13: .line 112
            aload 1 /* form */
            ifnull 14
            aload 1 /* form */
            ldc "1.0"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 14
            iconst_1
            goto 15
      StackMap locals: com.sun.jmx.mbeanserver.GetPropertyAction java.lang.String
      StackMap stack:
        14: iconst_0
      StackMap locals:
      StackMap stack: int
        15: putstatic javax.management.relation.RelationTypeSupport.compat:Z
        end local 1 // java.lang.String form
        end local 0 // com.sun.jmx.mbeanserver.GetPropertyAction act
        16: .line 113
            goto 18
      StackMap locals:
      StackMap stack: java.lang.Exception
        17: pop
        18: .line 116
      StackMap locals:
      StackMap stack:
            getstatic javax.management.relation.RelationTypeSupport.compat:Z
            ifeq 22
        19: .line 117
            getstatic javax.management.relation.RelationTypeSupport.oldSerialPersistentFields:[Ljava/io/ObjectStreamField;
            putstatic javax.management.relation.RelationTypeSupport.serialPersistentFields:[Ljava/io/ObjectStreamField;
        20: .line 118
            ldc -8179019472410837190
            putstatic javax.management.relation.RelationTypeSupport.serialVersionUID:J
        21: .line 119
            goto 24
        22: .line 120
      StackMap locals:
      StackMap stack:
            getstatic javax.management.relation.RelationTypeSupport.newSerialPersistentFields:[Ljava/io/ObjectStreamField;
            putstatic javax.management.relation.RelationTypeSupport.serialPersistentFields:[Ljava/io/ObjectStreamField;
        23: .line 121
            ldc 4611072955724144607
            putstatic javax.management.relation.RelationTypeSupport.serialVersionUID:J
        24: .line 123
      StackMap locals:
      StackMap stack:
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
           12   16     0   act  Lcom/sun/jmx/mbeanserver/GetPropertyAction;
           13   16     1  form  Ljava/lang/String;
      Exception table:
        from    to  target  type
          11    16      17  Class java.lang.Exception

  public void <init>(java.lang.String, javax.management.relation.RoleInfo[]);
    descriptor: (Ljava/lang/String;[Ljavax/management/relation/RoleInfo;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // javax.management.relation.RelationTypeSupport this
        start local 1 // java.lang.String relationTypeName
        start local 2 // javax.management.relation.RoleInfo[] roleInfoArray
         0: .line 166
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 134
            aload 0 /* this */
            aconst_null
            putfield javax.management.relation.RelationTypeSupport.typeName:Ljava/lang/String;
         2: .line 140
            aload 0 /* this */
         3: .line 141
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield javax.management.relation.RelationTypeSupport.roleName2InfoMap:Ljava/util/Map;
         4: .line 147
            aload 0 /* this */
            iconst_0
            putfield javax.management.relation.RelationTypeSupport.isInRelationService:Z
         5: .line 171
            aload 1 /* relationTypeName */
            ifnull 6
            aload 2 /* roleInfoArray */
            ifnonnull 8
         6: .line 172
      StackMap locals: javax.management.relation.RelationTypeSupport java.lang.String javax.management.relation.RoleInfo[]
      StackMap stack:
            ldc "Invalid parameter."
            astore 3 /* excMsg */
        start local 3 // java.lang.String excMsg
         7: .line 173
            new java.lang.IllegalArgumentException
            dup
            aload 3 /* excMsg */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // java.lang.String excMsg
         8: .line 176
      StackMap locals:
      StackMap stack:
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationTypeSupport;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
         9: .line 177
            ldc "RelationTypeSupport"
            aload 1 /* relationTypeName */
        10: .line 176
            invokevirtual java.util.logging.Logger.entering:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V
        11: .line 181
            aload 0 /* this */
            aload 1 /* relationTypeName */
            aload 2 /* roleInfoArray */
            invokevirtual javax.management.relation.RelationTypeSupport.initMembers:(Ljava/lang/String;[Ljavax/management/relation/RoleInfo;)V
        12: .line 183
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationTypeSupport;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
        13: .line 184
            ldc "RelationTypeSupport"
        14: .line 183
            invokevirtual java.util.logging.Logger.exiting:(Ljava/lang/String;Ljava/lang/String;)V
        15: .line 185
            return
        end local 2 // javax.management.relation.RoleInfo[] roleInfoArray
        end local 1 // java.lang.String relationTypeName
        end local 0 // javax.management.relation.RelationTypeSupport this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   16     0              this  Ljavax/management/relation/RelationTypeSupport;
            0   16     1  relationTypeName  Ljava/lang/String;
            0   16     2     roleInfoArray  [Ljavax/management/relation/RoleInfo;
            7    8     3            excMsg  Ljava/lang/String;
    Exceptions:
      throws java.lang.IllegalArgumentException, javax.management.relation.InvalidRelationTypeException
    MethodParameters:
                  Name  Flags
      relationTypeName  
      roleInfoArray     

  protected void <init>(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // javax.management.relation.RelationTypeSupport this
        start local 1 // java.lang.String relationTypeName
         0: .line 195
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 134
            aload 0 /* this */
            aconst_null
            putfield javax.management.relation.RelationTypeSupport.typeName:Ljava/lang/String;
         2: .line 140
            aload 0 /* this */
         3: .line 141
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield javax.management.relation.RelationTypeSupport.roleName2InfoMap:Ljava/util/Map;
         4: .line 147
            aload 0 /* this */
            iconst_0
            putfield javax.management.relation.RelationTypeSupport.isInRelationService:Z
         5: .line 197
            aload 1 /* relationTypeName */
            ifnonnull 8
         6: .line 198
            ldc "Invalid parameter."
            astore 2 /* excMsg */
        start local 2 // java.lang.String excMsg
         7: .line 199
            new java.lang.IllegalArgumentException
            dup
            aload 2 /* excMsg */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.lang.String excMsg
         8: .line 202
      StackMap locals: javax.management.relation.RelationTypeSupport java.lang.String
      StackMap stack:
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationTypeSupport;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
         9: .line 203
            ldc "RelationTypeSupport"
            aload 1 /* relationTypeName */
        10: .line 202
            invokevirtual java.util.logging.Logger.entering:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V
        11: .line 205
            aload 0 /* this */
            aload 1 /* relationTypeName */
            putfield javax.management.relation.RelationTypeSupport.typeName:Ljava/lang/String;
        12: .line 207
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationTypeSupport;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
        13: .line 208
            ldc "RelationTypeSupport"
        14: .line 207
            invokevirtual java.util.logging.Logger.exiting:(Ljava/lang/String;Ljava/lang/String;)V
        15: .line 209
            return
        end local 1 // java.lang.String relationTypeName
        end local 0 // javax.management.relation.RelationTypeSupport this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   16     0              this  Ljavax/management/relation/RelationTypeSupport;
            0   16     1  relationTypeName  Ljava/lang/String;
            7    8     2            excMsg  Ljava/lang/String;
    MethodParameters:
                  Name  Flags
      relationTypeName  

  public java.lang.String getRelationTypeName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.management.relation.RelationTypeSupport this
         0: .line 222
            aload 0 /* this */
            getfield javax.management.relation.RelationTypeSupport.typeName:Ljava/lang/String;
            areturn
        end local 0 // javax.management.relation.RelationTypeSupport this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/management/relation/RelationTypeSupport;

  public java.util.List<javax.management.relation.RoleInfo> getRoleInfos();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // javax.management.relation.RelationTypeSupport this
         0: .line 229
            new java.util.ArrayList
            dup
            aload 0 /* this */
            getfield javax.management.relation.RelationTypeSupport.roleName2InfoMap:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            areturn
        end local 0 // javax.management.relation.RelationTypeSupport this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/management/relation/RelationTypeSupport;
    Signature: ()Ljava/util/List<Ljavax/management/relation/RoleInfo;>;

  public javax.management.relation.RoleInfo getRoleInfo(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljavax/management/relation/RoleInfo;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // javax.management.relation.RelationTypeSupport this
        start local 1 // java.lang.String roleInfoName
         0: .line 249
            aload 1 /* roleInfoName */
            ifnonnull 3
         1: .line 250
            ldc "Invalid parameter."
            astore 2 /* excMsg */
        start local 2 // java.lang.String excMsg
         2: .line 251
            new java.lang.IllegalArgumentException
            dup
            aload 2 /* excMsg */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.lang.String excMsg
         3: .line 254
      StackMap locals:
      StackMap stack:
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationTypeSupport;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
         4: .line 255
            ldc "getRoleInfo"
            aload 1 /* roleInfoName */
         5: .line 254
            invokevirtual java.util.logging.Logger.entering:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V
         6: .line 258
            aload 0 /* this */
            getfield javax.management.relation.RelationTypeSupport.roleName2InfoMap:Ljava/util/Map;
            aload 1 /* roleInfoName */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast javax.management.relation.RoleInfo
            astore 2 /* result */
        start local 2 // javax.management.relation.RoleInfo result
         7: .line 260
            aload 2 /* result */
            ifnonnull 13
         8: .line 261
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 3 /* excMsgStrB */
        start local 3 // java.lang.StringBuilder excMsgStrB
         9: .line 262
            ldc "No role info for role "
            astore 4 /* excMsg */
        start local 4 // java.lang.String excMsg
        10: .line 263
            aload 3 /* excMsgStrB */
            aload 4 /* excMsg */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        11: .line 264
            aload 3 /* excMsgStrB */
            aload 1 /* roleInfoName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        12: .line 265
            new javax.management.relation.RoleInfoNotFoundException
            dup
            aload 3 /* excMsgStrB */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial javax.management.relation.RoleInfoNotFoundException.<init>:(Ljava/lang/String;)V
            athrow
        end local 4 // java.lang.String excMsg
        end local 3 // java.lang.StringBuilder excMsgStrB
        13: .line 268
      StackMap locals: javax.management.relation.RoleInfo
      StackMap stack:
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationTypeSupport;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
        14: .line 269
            ldc "getRoleInfo"
        15: .line 268
            invokevirtual java.util.logging.Logger.exiting:(Ljava/lang/String;Ljava/lang/String;)V
        16: .line 270
            aload 2 /* result */
            areturn
        end local 2 // javax.management.relation.RoleInfo result
        end local 1 // java.lang.String roleInfoName
        end local 0 // javax.management.relation.RelationTypeSupport this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   17     0          this  Ljavax/management/relation/RelationTypeSupport;
            0   17     1  roleInfoName  Ljava/lang/String;
            2    3     2        excMsg  Ljava/lang/String;
            7   17     2        result  Ljavax/management/relation/RoleInfo;
            9   13     3    excMsgStrB  Ljava/lang/StringBuilder;
           10   13     4        excMsg  Ljava/lang/String;
    Exceptions:
      throws java.lang.IllegalArgumentException, javax.management.relation.RoleInfoNotFoundException
    MethodParameters:
              Name  Flags
      roleInfoName  

  protected void addRoleInfo(javax.management.relation.RoleInfo);
    descriptor: (Ljavax/management/relation/RoleInfo;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // javax.management.relation.RelationTypeSupport this
        start local 1 // javax.management.relation.RoleInfo roleInfo
         0: .line 295
            aload 1 /* roleInfo */
            ifnonnull 3
         1: .line 296
            ldc "Invalid parameter."
            astore 2 /* excMsg */
        start local 2 // java.lang.String excMsg
         2: .line 297
            new java.lang.IllegalArgumentException
            dup
            aload 2 /* excMsg */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.lang.String excMsg
         3: .line 300
      StackMap locals:
      StackMap stack:
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationTypeSupport;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
         4: .line 301
            ldc "addRoleInfo"
            aload 1 /* roleInfo */
         5: .line 300
            invokevirtual java.util.logging.Logger.entering:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V
         6: .line 303
            aload 0 /* this */
            getfield javax.management.relation.RelationTypeSupport.isInRelationService:Z
            ifeq 9
         7: .line 305
            ldc "Relation type cannot be updated as it is declared in the Relation Service."
            astore 2 /* excMsg */
        start local 2 // java.lang.String excMsg
         8: .line 306
            new java.lang.RuntimeException
            dup
            aload 2 /* excMsg */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.lang.String excMsg
         9: .line 309
      StackMap locals:
      StackMap stack:
            aload 1 /* roleInfo */
            invokevirtual javax.management.relation.RoleInfo.getName:()Ljava/lang/String;
            astore 2 /* roleName */
        start local 2 // java.lang.String roleName
        10: .line 312
            aload 0 /* this */
            getfield javax.management.relation.RelationTypeSupport.roleName2InfoMap:Ljava/util/Map;
            aload 2 /* roleName */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifeq 16
        11: .line 313
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 3 /* excMsgStrB */
        start local 3 // java.lang.StringBuilder excMsgStrB
        12: .line 314
            ldc "Two role infos provided for role "
            astore 4 /* excMsg */
        start local 4 // java.lang.String excMsg
        13: .line 315
            aload 3 /* excMsgStrB */
            aload 4 /* excMsg */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        14: .line 316
            aload 3 /* excMsgStrB */
            aload 2 /* roleName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        15: .line 317
            new javax.management.relation.InvalidRelationTypeException
            dup
            aload 3 /* excMsgStrB */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial javax.management.relation.InvalidRelationTypeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 4 // java.lang.String excMsg
        end local 3 // java.lang.StringBuilder excMsgStrB
        16: .line 320
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield javax.management.relation.RelationTypeSupport.roleName2InfoMap:Ljava/util/Map;
            aload 2 /* roleName */
            new javax.management.relation.RoleInfo
            dup
            aload 1 /* roleInfo */
            invokespecial javax.management.relation.RoleInfo.<init>:(Ljavax/management/relation/RoleInfo;)V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        17: .line 322
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationTypeSupport;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
        18: .line 323
            ldc "addRoleInfo"
        19: .line 322
            invokevirtual java.util.logging.Logger.exiting:(Ljava/lang/String;Ljava/lang/String;)V
        20: .line 324
            return
        end local 2 // java.lang.String roleName
        end local 1 // javax.management.relation.RoleInfo roleInfo
        end local 0 // javax.management.relation.RelationTypeSupport this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   21     0        this  Ljavax/management/relation/RelationTypeSupport;
            0   21     1    roleInfo  Ljavax/management/relation/RoleInfo;
            2    3     2      excMsg  Ljava/lang/String;
            8    9     2      excMsg  Ljava/lang/String;
           10   21     2    roleName  Ljava/lang/String;
           12   16     3  excMsgStrB  Ljava/lang/StringBuilder;
           13   16     4      excMsg  Ljava/lang/String;
    Exceptions:
      throws java.lang.IllegalArgumentException, javax.management.relation.InvalidRelationTypeException
    MethodParameters:
          Name  Flags
      roleInfo  

  void setRelationServiceFlag(boolean);
    descriptor: (Z)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // javax.management.relation.RelationTypeSupport this
        start local 1 // boolean flag
         0: .line 330
            aload 0 /* this */
            iload 1 /* flag */
            putfield javax.management.relation.RelationTypeSupport.isInRelationService:Z
         1: .line 331
            return
        end local 1 // boolean flag
        end local 0 // javax.management.relation.RelationTypeSupport this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljavax/management/relation/RelationTypeSupport;
            0    2     1  flag  Z
    MethodParameters:
      Name  Flags
      flag  

  private void initMembers(java.lang.String, javax.management.relation.RoleInfo[]);
    descriptor: (Ljava/lang/String;[Ljavax/management/relation/RoleInfo;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // javax.management.relation.RelationTypeSupport this
        start local 1 // java.lang.String relationTypeName
        start local 2 // javax.management.relation.RoleInfo[] roleInfoArray
         0: .line 349
            aload 1 /* relationTypeName */
            ifnull 1
            aload 2 /* roleInfoArray */
            ifnonnull 3
         1: .line 350
      StackMap locals:
      StackMap stack:
            ldc "Invalid parameter."
            astore 3 /* excMsg */
        start local 3 // java.lang.String excMsg
         2: .line 351
            new java.lang.IllegalArgumentException
            dup
            aload 3 /* excMsg */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // java.lang.String excMsg
         3: .line 354
      StackMap locals:
      StackMap stack:
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationTypeSupport;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
         4: .line 355
            ldc "initMembers"
            aload 1 /* relationTypeName */
         5: .line 354
            invokevirtual java.util.logging.Logger.entering:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V
         6: .line 357
            aload 0 /* this */
            aload 1 /* relationTypeName */
            putfield javax.management.relation.RelationTypeSupport.typeName:Ljava/lang/String;
         7: .line 361
            aload 2 /* roleInfoArray */
            invokestatic javax.management.relation.RelationTypeSupport.checkRoleInfos:([Ljavax/management/relation/RoleInfo;)V
         8: .line 363
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         9: goto 15
        10: .line 364
      StackMap locals: int
      StackMap stack:
            aload 2 /* roleInfoArray */
            iload 3 /* i */
            aaload
            astore 4 /* currRoleInfo */
        start local 4 // javax.management.relation.RoleInfo currRoleInfo
        11: .line 365
            aload 0 /* this */
            getfield javax.management.relation.RelationTypeSupport.roleName2InfoMap:Ljava/util/Map;
            aload 4 /* currRoleInfo */
            invokevirtual javax.management.relation.RoleInfo.getName:()Ljava/lang/String;
        12: .line 366
            new javax.management.relation.RoleInfo
            dup
            aload 4 /* currRoleInfo */
            invokespecial javax.management.relation.RoleInfo.<init>:(Ljavax/management/relation/RoleInfo;)V
        13: .line 365
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 4 // javax.management.relation.RoleInfo currRoleInfo
        14: .line 363
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        15: iload 3 /* i */
            aload 2 /* roleInfoArray */
            arraylength
            if_icmplt 10
        end local 3 // int i
        16: .line 369
            getstatic com.sun.jmx.defaults.JmxProperties.RELATION_LOGGER:Ljava/util/logging/Logger;
            ldc Ljavax/management/relation/RelationTypeSupport;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
        17: .line 370
            ldc "initMembers"
        18: .line 369
            invokevirtual java.util.logging.Logger.exiting:(Ljava/lang/String;Ljava/lang/String;)V
        19: .line 371
            return
        end local 2 // javax.management.relation.RoleInfo[] roleInfoArray
        end local 1 // java.lang.String relationTypeName
        end local 0 // javax.management.relation.RelationTypeSupport this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   20     0              this  Ljavax/management/relation/RelationTypeSupport;
            0   20     1  relationTypeName  Ljava/lang/String;
            0   20     2     roleInfoArray  [Ljavax/management/relation/RoleInfo;
            2    3     3            excMsg  Ljava/lang/String;
            9   16     3                 i  I
           11   14     4      currRoleInfo  Ljavax/management/relation/RoleInfo;
    Exceptions:
      throws java.lang.IllegalArgumentException, javax.management.relation.InvalidRelationTypeException
    MethodParameters:
                  Name  Flags
      relationTypeName  
      roleInfoArray     

  static void checkRoleInfos(javax.management.relation.RoleInfo[]);
    descriptor: ([Ljavax/management/relation/RoleInfo;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=7, args_size=1
        start local 0 // javax.management.relation.RoleInfo[] roleInfoArray
         0: .line 390
            aload 0 /* roleInfoArray */
            ifnonnull 3
         1: .line 391
            ldc "Invalid parameter."
            astore 1 /* excMsg */
        start local 1 // java.lang.String excMsg
         2: .line 392
            new java.lang.IllegalArgumentException
            dup
            aload 1 /* excMsg */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // java.lang.String excMsg
         3: .line 395
      StackMap locals:
      StackMap stack:
            aload 0 /* roleInfoArray */
            arraylength
            ifne 6
         4: .line 397
            ldc "No role info provided."
            astore 1 /* excMsg */
        start local 1 // java.lang.String excMsg
         5: .line 398
            new javax.management.relation.InvalidRelationTypeException
            dup
            aload 1 /* excMsg */
            invokespecial javax.management.relation.InvalidRelationTypeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // java.lang.String excMsg
         6: .line 402
      StackMap locals:
      StackMap stack:
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 1 /* roleNames */
        start local 1 // java.util.Set roleNames
         7: .line 404
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         8: goto 22
         9: .line 405
      StackMap locals: java.util.Set int
      StackMap stack:
            aload 0 /* roleInfoArray */
            iload 2 /* i */
            aaload
            astore 3 /* currRoleInfo */
        start local 3 // javax.management.relation.RoleInfo currRoleInfo
        10: .line 407
            aload 3 /* currRoleInfo */
            ifnonnull 13
        11: .line 408
            ldc "Null role info provided."
            astore 4 /* excMsg */
        start local 4 // java.lang.String excMsg
        12: .line 409
            new javax.management.relation.InvalidRelationTypeException
            dup
            aload 4 /* excMsg */
            invokespecial javax.management.relation.InvalidRelationTypeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 4 // java.lang.String excMsg
        13: .line 412
      StackMap locals: javax.management.relation.RoleInfo
      StackMap stack:
            aload 3 /* currRoleInfo */
            invokevirtual javax.management.relation.RoleInfo.getName:()Ljava/lang/String;
            astore 4 /* roleName */
        start local 4 // java.lang.String roleName
        14: .line 415
            aload 1 /* roleNames */
            aload 4 /* roleName */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 20
        15: .line 416
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 5 /* excMsgStrB */
        start local 5 // java.lang.StringBuilder excMsgStrB
        16: .line 417
            ldc "Two role infos provided for role "
            astore 6 /* excMsg */
        start local 6 // java.lang.String excMsg
        17: .line 418
            aload 5 /* excMsgStrB */
            aload 6 /* excMsg */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        18: .line 419
            aload 5 /* excMsgStrB */
            aload 4 /* roleName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        19: .line 420
            new javax.management.relation.InvalidRelationTypeException
            dup
            aload 5 /* excMsgStrB */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial javax.management.relation.InvalidRelationTypeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 6 // java.lang.String excMsg
        end local 5 // java.lang.StringBuilder excMsgStrB
        20: .line 422
      StackMap locals: java.lang.String
      StackMap stack:
            aload 1 /* roleNames */
            aload 4 /* roleName */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 4 // java.lang.String roleName
        end local 3 // javax.management.relation.RoleInfo currRoleInfo
        21: .line 404
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        22: iload 2 /* i */
            aload 0 /* roleInfoArray */
            arraylength
            if_icmplt 9
        end local 2 // int i
        23: .line 425
            return
        end local 1 // java.util.Set roleNames
        end local 0 // javax.management.relation.RoleInfo[] roleInfoArray
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   24     0  roleInfoArray  [Ljavax/management/relation/RoleInfo;
            2    3     1         excMsg  Ljava/lang/String;
            5    6     1         excMsg  Ljava/lang/String;
            7   24     1      roleNames  Ljava/util/Set<Ljava/lang/String;>;
            8   23     2              i  I
           10   21     3   currRoleInfo  Ljavax/management/relation/RoleInfo;
           12   13     4         excMsg  Ljava/lang/String;
           14   21     4       roleName  Ljava/lang/String;
           16   20     5     excMsgStrB  Ljava/lang/StringBuilder;
           17   20     6         excMsg  Ljava/lang/String;
    Exceptions:
      throws java.lang.IllegalArgumentException, javax.management.relation.InvalidRelationTypeException
    MethodParameters:
               Name  Flags
      roleInfoArray  

  private void readObject(java.io.ObjectInputStream);
    descriptor: (Ljava/io/ObjectInputStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // javax.management.relation.RelationTypeSupport this
        start local 1 // java.io.ObjectInputStream in
         0: .line 434
            getstatic javax.management.relation.RelationTypeSupport.compat:Z
            ifeq 11
         1: .line 438
            aload 1 /* in */
            invokevirtual java.io.ObjectInputStream.readFields:()Ljava/io/ObjectInputStream$GetField;
            astore 2 /* fields */
        start local 2 // java.io.ObjectInputStream$GetField fields
         2: .line 439
            aload 0 /* this */
            aload 2 /* fields */
            ldc "myTypeName"
            aconst_null
            invokevirtual java.io.ObjectInputStream$GetField.get:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            putfield javax.management.relation.RelationTypeSupport.typeName:Ljava/lang/String;
         3: .line 440
            aload 2 /* fields */
            ldc "myTypeName"
            invokevirtual java.io.ObjectInputStream$GetField.defaulted:(Ljava/lang/String;)Z
            ifeq 5
         4: .line 442
            new java.lang.NullPointerException
            dup
            ldc "myTypeName"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 444
      StackMap locals: java.io.ObjectInputStream$GetField
      StackMap stack:
            aload 0 /* this */
            aload 2 /* fields */
            ldc "myRoleName2InfoMap"
            aconst_null
            invokevirtual java.io.ObjectInputStream$GetField.get:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            invokestatic com.sun.jmx.mbeanserver.Util.cast:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Map
            putfield javax.management.relation.RelationTypeSupport.roleName2InfoMap:Ljava/util/Map;
         6: .line 445
            aload 2 /* fields */
            ldc "myRoleName2InfoMap"
            invokevirtual java.io.ObjectInputStream$GetField.defaulted:(Ljava/lang/String;)Z
            ifeq 8
         7: .line 447
            new java.lang.NullPointerException
            dup
            ldc "myRoleName2InfoMap"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 449
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* fields */
            ldc "myIsInRelServFlg"
            iconst_0
            invokevirtual java.io.ObjectInputStream$GetField.get:(Ljava/lang/String;Z)Z
            putfield javax.management.relation.RelationTypeSupport.isInRelationService:Z
         9: .line 450
            aload 2 /* fields */
            ldc "myIsInRelServFlg"
            invokevirtual java.io.ObjectInputStream$GetField.defaulted:(Ljava/lang/String;)Z
            ifeq 12
        10: .line 452
            new java.lang.NullPointerException
            dup
            ldc "myIsInRelServFlg"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.io.ObjectInputStream$GetField fields
        11: .line 459
      StackMap locals:
      StackMap stack:
            aload 1 /* in */
            invokevirtual java.io.ObjectInputStream.defaultReadObject:()V
        12: .line 461
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.io.ObjectInputStream in
        end local 0 // javax.management.relation.RelationTypeSupport this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   13     0    this  Ljavax/management/relation/RelationTypeSupport;
            0   13     1      in  Ljava/io/ObjectInputStream;
            2   11     2  fields  Ljava/io/ObjectInputStream$GetField;
    Exceptions:
      throws java.io.IOException, java.lang.ClassNotFoundException
    MethodParameters:
      Name  Flags
      in    

  private void writeObject(java.io.ObjectOutputStream);
    descriptor: (Ljava/io/ObjectOutputStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // javax.management.relation.RelationTypeSupport this
        start local 1 // java.io.ObjectOutputStream out
         0: .line 469
            getstatic javax.management.relation.RelationTypeSupport.compat:Z
            ifeq 7
         1: .line 473
            aload 1 /* out */
            invokevirtual java.io.ObjectOutputStream.putFields:()Ljava/io/ObjectOutputStream$PutField;
            astore 2 /* fields */
        start local 2 // java.io.ObjectOutputStream$PutField fields
         2: .line 474
            aload 2 /* fields */
            ldc "myTypeName"
            aload 0 /* this */
            getfield javax.management.relation.RelationTypeSupport.typeName:Ljava/lang/String;
            invokevirtual java.io.ObjectOutputStream$PutField.put:(Ljava/lang/String;Ljava/lang/Object;)V
         3: .line 475
            aload 2 /* fields */
            ldc "myRoleName2InfoMap"
            aload 0 /* this */
            getfield javax.management.relation.RelationTypeSupport.roleName2InfoMap:Ljava/util/Map;
            invokevirtual java.io.ObjectOutputStream$PutField.put:(Ljava/lang/String;Ljava/lang/Object;)V
         4: .line 476
            aload 2 /* fields */
            ldc "myIsInRelServFlg"
            aload 0 /* this */
            getfield javax.management.relation.RelationTypeSupport.isInRelationService:Z
            invokevirtual java.io.ObjectOutputStream$PutField.put:(Ljava/lang/String;Z)V
         5: .line 477
            aload 1 /* out */
            invokevirtual java.io.ObjectOutputStream.writeFields:()V
        end local 2 // java.io.ObjectOutputStream$PutField fields
         6: .line 478
            goto 8
         7: .line 483
      StackMap locals:
      StackMap stack:
            aload 1 /* out */
            invokevirtual java.io.ObjectOutputStream.defaultWriteObject:()V
         8: .line 485
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.io.ObjectOutputStream out
        end local 0 // javax.management.relation.RelationTypeSupport this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    9     0    this  Ljavax/management/relation/RelationTypeSupport;
            0    9     1     out  Ljava/io/ObjectOutputStream;
            2    6     2  fields  Ljava/io/ObjectOutputStream$PutField;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      out   
}
SourceFile: "RelationTypeSupport.java"
InnerClasses:
  public abstract GetField = java.io.ObjectInputStream$GetField of java.io.ObjectInputStream
  public abstract PutField = java.io.ObjectOutputStream$PutField of java.io.ObjectOutputStream