public class javax.management.MBeanAttributeInfo extends javax.management.MBeanFeatureInfo implements java.lang.Cloneable
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: javax.management.MBeanAttributeInfo
  super_class: javax.management.MBeanFeatureInfo
{
  private static final long serialVersionUID;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static final javax.management.MBeanAttributeInfo[] NO_ATTRIBUTES;
    descriptor: [Ljavax/management/MBeanAttributeInfo;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  private final java.lang.String attributeType;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean isWrite;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean isRead;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean is;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=4, args_size=0
         0: .line 58
            ldc 8644704819898565848
            lstore 0 /* uid */
        start local 0 // long uid
         1: .line 60
            new com.sun.jmx.mbeanserver.GetPropertyAction
            dup
            ldc "jmx.serial.form"
            invokespecial com.sun.jmx.mbeanserver.GetPropertyAction.<init>:(Ljava/lang/String;)V
            astore 2 /* act */
        start local 2 // com.sun.jmx.mbeanserver.GetPropertyAction act
         2: .line 61
            aload 2 /* act */
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 3 /* form */
        start local 3 // java.lang.String form
         3: .line 62
            ldc "1.0"
            aload 3 /* form */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 7
         4: .line 63
            ldc 7043855487133450673
            lstore 0 /* uid */
        end local 3 // java.lang.String form
        end local 2 // com.sun.jmx.mbeanserver.GetPropertyAction act
         5: .line 64
            goto 7
      StackMap locals: long
      StackMap stack: java.lang.Exception
         6: pop
         7: .line 67
      StackMap locals:
      StackMap stack:
            lload 0 /* uid */
            putstatic javax.management.MBeanAttributeInfo.serialVersionUID:J
        end local 0 // long uid
         8: .line 71
            iconst_0
            anewarray javax.management.MBeanAttributeInfo
         9: .line 70
            putstatic javax.management.MBeanAttributeInfo.NO_ATTRIBUTES:[Ljavax/management/MBeanAttributeInfo;
        10: .line 71
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            1    8     0   uid  J
            2    5     2   act  Lcom/sun/jmx/mbeanserver/GetPropertyAction;
            3    5     3  form  Ljava/lang/String;
      Exception table:
        from    to  target  type
           1     5       6  Class java.lang.Exception

  public void <init>(java.lang.String, java.lang.String, java.lang.String, boolean, boolean, boolean);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZZZ)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=7, args_size=7
        start local 0 // javax.management.MBeanAttributeInfo this
        start local 1 // java.lang.String name
        start local 2 // java.lang.String type
        start local 3 // java.lang.String description
        start local 4 // boolean isReadable
        start local 5 // boolean isWritable
        start local 6 // boolean isIs
         0: .line 116
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* type */
            aload 3 /* description */
            iload 4 /* isReadable */
            iload 5 /* isWritable */
            iload 6 /* isIs */
         1: .line 117
            aconst_null
            invokespecial javax.management.MBeanAttributeInfo.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZZZLjavax/management/Descriptor;)V
         2: .line 118
            return
        end local 6 // boolean isIs
        end local 5 // boolean isWritable
        end local 4 // boolean isReadable
        end local 3 // java.lang.String description
        end local 2 // java.lang.String type
        end local 1 // java.lang.String name
        end local 0 // javax.management.MBeanAttributeInfo this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0         this  Ljavax/management/MBeanAttributeInfo;
            0    3     1         name  Ljava/lang/String;
            0    3     2         type  Ljava/lang/String;
            0    3     3  description  Ljava/lang/String;
            0    3     4   isReadable  Z
            0    3     5   isWritable  Z
            0    3     6         isIs  Z
    MethodParameters:
             Name  Flags
      name         
      type         
      description  
      isReadable   
      isWritable   
      isIs         

  public void <init>(java.lang.String, java.lang.String, java.lang.String, boolean, boolean, boolean, javax.management.Descriptor);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZZZLjavax/management/Descriptor;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=8, args_size=8
        start local 0 // javax.management.MBeanAttributeInfo this
        start local 1 // java.lang.String name
        start local 2 // java.lang.String type
        start local 3 // java.lang.String description
        start local 4 // boolean isReadable
        start local 5 // boolean isWritable
        start local 6 // boolean isIs
        start local 7 // javax.management.Descriptor descriptor
         0: .line 147
            aload 0 /* this */
            aload 1 /* name */
            aload 3 /* description */
            aload 7 /* descriptor */
            invokespecial javax.management.MBeanFeatureInfo.<init>:(Ljava/lang/String;Ljava/lang/String;Ljavax/management/Descriptor;)V
         1: .line 149
            aload 0 /* this */
            aload 2 /* type */
            putfield javax.management.MBeanAttributeInfo.attributeType:Ljava/lang/String;
         2: .line 150
            aload 0 /* this */
            iload 4 /* isReadable */
            putfield javax.management.MBeanAttributeInfo.isRead:Z
         3: .line 151
            aload 0 /* this */
            iload 5 /* isWritable */
            putfield javax.management.MBeanAttributeInfo.isWrite:Z
         4: .line 152
            iload 6 /* isIs */
            ifeq 6
            iload 4 /* isReadable */
            ifne 6
         5: .line 153
            new java.lang.IllegalArgumentException
            dup
            ldc "Cannot have an \"is\" getter for a non-readable attribute"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 156
      StackMap locals: javax.management.MBeanAttributeInfo java.lang.String java.lang.String java.lang.String int int int javax.management.Descriptor
      StackMap stack:
            iload 6 /* isIs */
            ifeq 9
            aload 2 /* type */
            ldc "java.lang.Boolean"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 9
         7: .line 157
            aload 2 /* type */
            ldc "boolean"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 9
         8: .line 158
            new java.lang.IllegalArgumentException
            dup
            ldc "Cannot have an \"is\" getter for a non-boolean attribute"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 161
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 6 /* isIs */
            putfield javax.management.MBeanAttributeInfo.is:Z
        10: .line 162
            return
        end local 7 // javax.management.Descriptor descriptor
        end local 6 // boolean isIs
        end local 5 // boolean isWritable
        end local 4 // boolean isReadable
        end local 3 // java.lang.String description
        end local 2 // java.lang.String type
        end local 1 // java.lang.String name
        end local 0 // javax.management.MBeanAttributeInfo this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   11     0         this  Ljavax/management/MBeanAttributeInfo;
            0   11     1         name  Ljava/lang/String;
            0   11     2         type  Ljava/lang/String;
            0   11     3  description  Ljava/lang/String;
            0   11     4   isReadable  Z
            0   11     5   isWritable  Z
            0   11     6         isIs  Z
            0   11     7   descriptor  Ljavax/management/Descriptor;
    MethodParameters:
             Name  Flags
      name         
      type         
      description  
      isReadable   
      isWritable   
      isIs         
      descriptor   

  public void <init>(java.lang.String, java.lang.String, java.lang.reflect.Method, java.lang.reflect.Method);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/reflect/Method;Ljava/lang/reflect/Method;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=11, locals=5, args_size=5
        start local 0 // javax.management.MBeanAttributeInfo this
        start local 1 // java.lang.String name
        start local 2 // java.lang.String description
        start local 3 // java.lang.reflect.Method getter
        start local 4 // java.lang.reflect.Method setter
         0: .line 184
            aload 0 /* this */
            aload 1 /* name */
         1: .line 185
            aload 3 /* getter */
            aload 4 /* setter */
            invokestatic javax.management.MBeanAttributeInfo.attributeType:(Ljava/lang/reflect/Method;Ljava/lang/reflect/Method;)Ljava/lang/String;
         2: .line 186
            aload 2 /* description */
         3: .line 187
            aload 3 /* getter */
            ifnull 4
            iconst_1
            goto 5
      StackMap locals: uninitialized-this java.lang.String java.lang.String java.lang.reflect.Method java.lang.reflect.Method
      StackMap stack: uninitialized-this java.lang.String java.lang.String java.lang.String
         4: iconst_0
         5: .line 188
      StackMap locals: uninitialized-this java.lang.String java.lang.String java.lang.reflect.Method java.lang.reflect.Method
      StackMap stack: uninitialized-this java.lang.String java.lang.String java.lang.String int
            aload 4 /* setter */
            ifnull 6
            iconst_1
            goto 7
      StackMap locals: uninitialized-this java.lang.String java.lang.String java.lang.reflect.Method java.lang.reflect.Method
      StackMap stack: uninitialized-this java.lang.String java.lang.String java.lang.String int
         6: iconst_0
         7: .line 189
      StackMap locals: uninitialized-this java.lang.String java.lang.String java.lang.reflect.Method java.lang.reflect.Method
      StackMap stack: uninitialized-this java.lang.String java.lang.String java.lang.String int int
            aload 3 /* getter */
            invokestatic javax.management.MBeanAttributeInfo.isIs:(Ljava/lang/reflect/Method;)Z
            iconst_2
            anewarray javax.management.Descriptor
            dup
            iconst_0
         8: .line 190
            aload 3 /* getter */
            invokestatic com.sun.jmx.mbeanserver.Introspector.descriptorForElement:(Ljava/lang/reflect/AnnotatedElement;)Ljavax/management/Descriptor;
            aastore
            dup
            iconst_1
         9: .line 191
            aload 4 /* setter */
            invokestatic com.sun.jmx.mbeanserver.Introspector.descriptorForElement:(Ljava/lang/reflect/AnnotatedElement;)Ljavax/management/Descriptor;
            aastore
        10: .line 190
            invokestatic javax.management.ImmutableDescriptor.union:([Ljavax/management/Descriptor;)Ljavax/management/ImmutableDescriptor;
            invokespecial javax.management.MBeanAttributeInfo.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZZZLjavax/management/Descriptor;)V
        11: .line 192
            return
        end local 4 // java.lang.reflect.Method setter
        end local 3 // java.lang.reflect.Method getter
        end local 2 // java.lang.String description
        end local 1 // java.lang.String name
        end local 0 // javax.management.MBeanAttributeInfo this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   12     0         this  Ljavax/management/MBeanAttributeInfo;
            0   12     1         name  Ljava/lang/String;
            0   12     2  description  Ljava/lang/String;
            0   12     3       getter  Ljava/lang/reflect/Method;
            0   12     4       setter  Ljava/lang/reflect/Method;
    Exceptions:
      throws javax.management.IntrospectionException
    MethodParameters:
             Name  Flags
      name         
      description  
      getter       
      setter       

  public java.lang.Object clone();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.management.MBeanAttributeInfo this
         0: .line 206
            aload 0 /* this */
            invokespecial java.lang.Object.clone:()Ljava/lang/Object;
         1: areturn
         2: .line 207
      StackMap locals:
      StackMap stack: java.lang.CloneNotSupportedException
            pop
         3: .line 209
            aconst_null
            areturn
        end local 0 // javax.management.MBeanAttributeInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljavax/management/MBeanAttributeInfo;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.CloneNotSupportedException

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

  public boolean isReadable();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.management.MBeanAttributeInfo this
         0: .line 228
            aload 0 /* this */
            getfield javax.management.MBeanAttributeInfo.isRead:Z
            ireturn
        end local 0 // javax.management.MBeanAttributeInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/management/MBeanAttributeInfo;

  public boolean isWritable();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.management.MBeanAttributeInfo this
         0: .line 237
            aload 0 /* this */
            getfield javax.management.MBeanAttributeInfo.isWrite:Z
            ireturn
        end local 0 // javax.management.MBeanAttributeInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/management/MBeanAttributeInfo;

  public boolean isIs();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.management.MBeanAttributeInfo this
         0: .line 246
            aload 0 /* this */
            getfield javax.management.MBeanAttributeInfo.is:Z
            ireturn
        end local 0 // javax.management.MBeanAttributeInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/management/MBeanAttributeInfo;

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // javax.management.MBeanAttributeInfo this
         0: .line 251
            aload 0 /* this */
            invokevirtual javax.management.MBeanAttributeInfo.isReadable:()Z
            ifeq 6
         1: .line 252
            aload 0 /* this */
            invokevirtual javax.management.MBeanAttributeInfo.isWritable:()Z
            ifeq 4
         2: .line 253
            ldc "read/write"
            astore 1 /* access */
        start local 1 // java.lang.String access
         3: goto 10
        end local 1 // java.lang.String access
         4: .line 255
      StackMap locals:
      StackMap stack:
            ldc "read-only"
            astore 1 /* access */
        start local 1 // java.lang.String access
         5: .line 256
            goto 10
        end local 1 // java.lang.String access
      StackMap locals:
      StackMap stack:
         6: aload 0 /* this */
            invokevirtual javax.management.MBeanAttributeInfo.isWritable:()Z
            ifeq 9
         7: .line 257
            ldc "write-only"
            astore 1 /* access */
        start local 1 // java.lang.String access
         8: goto 10
        end local 1 // java.lang.String access
         9: .line 259
      StackMap locals:
      StackMap stack:
            ldc "no-access"
            astore 1 /* access */
        start local 1 // java.lang.String access
        10: .line 262
      StackMap locals: java.lang.String
      StackMap stack:
            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 "["
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        11: .line 263
            ldc "description="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            invokevirtual javax.management.MBeanAttributeInfo.getDescription:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        12: .line 264
            ldc "name="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            invokevirtual javax.management.MBeanAttributeInfo.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        13: .line 265
            ldc "type="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            invokevirtual javax.management.MBeanAttributeInfo.getType:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        14: .line 266
            aload 1 /* access */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        15: .line 267
            aload 0 /* this */
            invokevirtual javax.management.MBeanAttributeInfo.isIs:()Z
            ifeq 16
            ldc "isIs, "
            goto 17
      StackMap locals:
      StackMap stack: java.lang.StringBuilder
        16: ldc ""
      StackMap locals: javax.management.MBeanAttributeInfo java.lang.String
      StackMap stack: java.lang.StringBuilder java.lang.String
        17: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        18: .line 268
            ldc "descriptor="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            invokevirtual javax.management.MBeanAttributeInfo.getDescriptor:()Ljavax/management/Descriptor;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        19: .line 269
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        20: .line 262
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        21: .line 261
            areturn
        end local 1 // java.lang.String access
        end local 0 // javax.management.MBeanAttributeInfo this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   22     0    this  Ljavax/management/MBeanAttributeInfo;
            3    4     1  access  Ljava/lang/String;
            5    6     1  access  Ljava/lang/String;
            8    9     1  access  Ljava/lang/String;
           10   22     1  access  Ljava/lang/String;

  public boolean equals(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // javax.management.MBeanAttributeInfo this
        start local 1 // java.lang.Object o
         0: .line 284
            aload 1 /* o */
            aload 0 /* this */
            if_acmpne 2
         1: .line 285
            iconst_1
            ireturn
         2: .line 286
      StackMap locals:
      StackMap stack:
            aload 1 /* o */
            instanceof javax.management.MBeanAttributeInfo
            ifne 4
         3: .line 287
            iconst_0
            ireturn
         4: .line 288
      StackMap locals:
      StackMap stack:
            aload 1 /* o */
            checkcast javax.management.MBeanAttributeInfo
            astore 2 /* p */
        start local 2 // javax.management.MBeanAttributeInfo p
         5: .line 289
            aload 2 /* p */
            invokevirtual javax.management.MBeanAttributeInfo.getName:()Ljava/lang/String;
            aload 0 /* this */
            invokevirtual javax.management.MBeanAttributeInfo.getName:()Ljava/lang/String;
            invokestatic java.util.Objects.equals:(Ljava/lang/Object;Ljava/lang/Object;)Z
            ifeq 13
         6: .line 290
            aload 2 /* p */
            invokevirtual javax.management.MBeanAttributeInfo.getType:()Ljava/lang/String;
            aload 0 /* this */
            invokevirtual javax.management.MBeanAttributeInfo.getType:()Ljava/lang/String;
            invokestatic java.util.Objects.equals:(Ljava/lang/Object;Ljava/lang/Object;)Z
            ifeq 13
         7: .line 291
            aload 2 /* p */
            invokevirtual javax.management.MBeanAttributeInfo.getDescription:()Ljava/lang/String;
            aload 0 /* this */
            invokevirtual javax.management.MBeanAttributeInfo.getDescription:()Ljava/lang/String;
            invokestatic java.util.Objects.equals:(Ljava/lang/Object;Ljava/lang/Object;)Z
            ifeq 13
         8: .line 292
            aload 2 /* p */
            invokevirtual javax.management.MBeanAttributeInfo.getDescriptor:()Ljavax/management/Descriptor;
            aload 0 /* this */
            invokevirtual javax.management.MBeanAttributeInfo.getDescriptor:()Ljavax/management/Descriptor;
            invokestatic java.util.Objects.equals:(Ljava/lang/Object;Ljava/lang/Object;)Z
            ifeq 13
         9: .line 293
            aload 2 /* p */
            invokevirtual javax.management.MBeanAttributeInfo.isReadable:()Z
            aload 0 /* this */
            invokevirtual javax.management.MBeanAttributeInfo.isReadable:()Z
            if_icmpne 13
        10: .line 294
            aload 2 /* p */
            invokevirtual javax.management.MBeanAttributeInfo.isWritable:()Z
            aload 0 /* this */
            invokevirtual javax.management.MBeanAttributeInfo.isWritable:()Z
            if_icmpne 13
        11: .line 295
            aload 2 /* p */
            invokevirtual javax.management.MBeanAttributeInfo.isIs:()Z
            aload 0 /* this */
            invokevirtual javax.management.MBeanAttributeInfo.isIs:()Z
            if_icmpne 13
        12: .line 289
            iconst_1
            ireturn
      StackMap locals: javax.management.MBeanAttributeInfo
      StackMap stack:
        13: iconst_0
            ireturn
        end local 2 // javax.management.MBeanAttributeInfo p
        end local 1 // java.lang.Object o
        end local 0 // javax.management.MBeanAttributeInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   14     0  this  Ljavax/management/MBeanAttributeInfo;
            0   14     1     o  Ljava/lang/Object;
            5   14     2     p  Ljavax/management/MBeanAttributeInfo;
    MethodParameters:
      Name  Flags
      o     

  public int hashCode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // javax.management.MBeanAttributeInfo this
         0: .line 305
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            invokevirtual javax.management.MBeanAttributeInfo.getName:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 0 /* this */
            invokevirtual javax.management.MBeanAttributeInfo.getType:()Ljava/lang/String;
            aastore
            invokestatic java.util.Objects.hash:([Ljava/lang/Object;)I
            ireturn
        end local 0 // javax.management.MBeanAttributeInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/management/MBeanAttributeInfo;

  private static boolean isIs(java.lang.reflect.Method);
    descriptor: (Ljava/lang/reflect/Method;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.reflect.Method getter
         0: .line 309
            aload 0 /* getter */
            ifnull 5
         1: .line 310
            aload 0 /* getter */
            invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
            ldc "is"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 5
         2: .line 311
            aload 0 /* getter */
            invokevirtual java.lang.reflect.Method.getReturnType:()Ljava/lang/Class;
            getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 4
         3: .line 312
            aload 0 /* getter */
            invokevirtual java.lang.reflect.Method.getReturnType:()Ljava/lang/Class;
            ldc Ljava/lang/Boolean;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 5
         4: .line 309
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         5: iconst_0
            ireturn
        end local 0 // java.lang.reflect.Method getter
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0  getter  Ljava/lang/reflect/Method;
    MethodParameters:
        Name  Flags
      getter  

  private static java.lang.String attributeType(java.lang.reflect.Method, java.lang.reflect.Method);
    descriptor: (Ljava/lang/reflect/Method;Ljava/lang/reflect/Method;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // java.lang.reflect.Method getter
        start local 1 // java.lang.reflect.Method setter
         0: .line 320
            aconst_null
            astore 2 /* type */
        start local 2 // java.lang.Class type
         1: .line 322
            aload 0 /* getter */
            ifnull 9
         2: .line 323
            aload 0 /* getter */
            invokevirtual java.lang.reflect.Method.getParameterTypes:()[Ljava/lang/Class;
            arraylength
            ifeq 4
         3: .line 324
            new javax.management.IntrospectionException
            dup
            ldc "bad getter arg count"
            invokespecial javax.management.IntrospectionException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 326
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 0 /* getter */
            invokevirtual java.lang.reflect.Method.getReturnType:()Ljava/lang/Class;
            astore 2 /* type */
         5: .line 327
            aload 2 /* type */
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            if_acmpne 9
         6: .line 328
            new javax.management.IntrospectionException
            dup
            new java.lang.StringBuilder
            dup
            ldc "getter "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* getter */
            invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         7: .line 329
            ldc " returns void"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         8: .line 328
            invokespecial javax.management.IntrospectionException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 333
      StackMap locals:
      StackMap stack:
            aload 1 /* setter */
            ifnull 17
        10: .line 334
            aload 1 /* setter */
            invokevirtual java.lang.reflect.Method.getParameterTypes:()[Ljava/lang/Class;
            astore 3 /* params */
        start local 3 // java.lang.Class[] params
        11: .line 335
            aload 3 /* params */
            arraylength
            iconst_1
            if_icmpeq 13
        12: .line 336
            new javax.management.IntrospectionException
            dup
            ldc "bad setter arg count"
            invokespecial javax.management.IntrospectionException.<init>:(Ljava/lang/String;)V
            athrow
        13: .line 338
      StackMap locals: java.lang.Class[]
      StackMap stack:
            aload 2 /* type */
            ifnonnull 15
        14: .line 339
            aload 3 /* params */
            iconst_0
            aaload
            astore 2 /* type */
            goto 17
        15: .line 340
      StackMap locals:
      StackMap stack:
            aload 2 /* type */
            aload 3 /* params */
            iconst_0
            aaload
            if_acmpeq 17
        16: .line 341
            new javax.management.IntrospectionException
            dup
            ldc "type mismatch between getter and setter"
            invokespecial javax.management.IntrospectionException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // java.lang.Class[] params
        17: .line 346
      StackMap locals:
      StackMap stack:
            aload 2 /* type */
            ifnonnull 19
        18: .line 347
            new javax.management.IntrospectionException
            dup
            ldc "getter and setter cannot both be null"
            invokespecial javax.management.IntrospectionException.<init>:(Ljava/lang/String;)V
            athrow
        19: .line 351
      StackMap locals:
      StackMap stack:
            aload 2 /* type */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            areturn
        end local 2 // java.lang.Class type
        end local 1 // java.lang.reflect.Method setter
        end local 0 // java.lang.reflect.Method getter
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   20     0  getter  Ljava/lang/reflect/Method;
            0   20     1  setter  Ljava/lang/reflect/Method;
            1   20     2    type  Ljava/lang/Class<*>;
           11   17     3  params  [Ljava/lang/Class;
    Exceptions:
      throws javax.management.IntrospectionException
    MethodParameters:
        Name  Flags
      getter  
      setter  
}
SourceFile: "MBeanAttributeInfo.java"