public class org.apache.cassandra.metrics.CassandraMetricsRegistry$MetricName implements java.lang.Comparable<org.apache.cassandra.metrics.CassandraMetricsRegistry$MetricName>
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.cassandra.metrics.CassandraMetricsRegistry$MetricName
  super_class: java.lang.Object
{
  private final java.lang.String group;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

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

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

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

  public void <init>(java.lang.Class<?>, java.lang.String);
    descriptor: (Ljava/lang/Class;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.apache.cassandra.metrics.CassandraMetricsRegistry$MetricName this
        start local 1 // java.lang.Class klass
        start local 2 // java.lang.String name
         0: .line 594
            aload 0 /* this */
            aload 1 /* klass */
            aload 2 /* name */
            aconst_null
            invokespecial org.apache.cassandra.metrics.CassandraMetricsRegistry$MetricName.<init>:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;)V
         1: .line 595
            return
        end local 2 // java.lang.String name
        end local 1 // java.lang.Class klass
        end local 0 // org.apache.cassandra.metrics.CassandraMetricsRegistry$MetricName this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/apache/cassandra/metrics/CassandraMetricsRegistry$MetricName;
            0    2     1  klass  Ljava/lang/Class<*>;
            0    2     2   name  Ljava/lang/String;
    Signature: (Ljava/lang/Class<*>;Ljava/lang/String;)V
    MethodParameters:
       Name  Flags
      klass  
      name   

  public void <init>(java.lang.String, java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // org.apache.cassandra.metrics.CassandraMetricsRegistry$MetricName this
        start local 1 // java.lang.String group
        start local 2 // java.lang.String type
        start local 3 // java.lang.String name
         0: .line 606
            aload 0 /* this */
            aload 1 /* group */
            aload 2 /* type */
            aload 3 /* name */
            aconst_null
            invokespecial org.apache.cassandra.metrics.CassandraMetricsRegistry$MetricName.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
         1: .line 607
            return
        end local 3 // java.lang.String name
        end local 2 // java.lang.String type
        end local 1 // java.lang.String group
        end local 0 // org.apache.cassandra.metrics.CassandraMetricsRegistry$MetricName this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/apache/cassandra/metrics/CassandraMetricsRegistry$MetricName;
            0    2     1  group  Ljava/lang/String;
            0    2     2   type  Ljava/lang/String;
            0    2     3   name  Ljava/lang/String;
    MethodParameters:
       Name  Flags
      group  
      type   
      name   

  public void <init>(java.lang.Class<?>, java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // org.apache.cassandra.metrics.CassandraMetricsRegistry$MetricName this
        start local 1 // java.lang.Class klass
        start local 2 // java.lang.String name
        start local 3 // java.lang.String scope
         0: .line 618
            aload 0 /* this */
            aload 1 /* klass */
            invokevirtual java.lang.Class.getPackage:()Ljava/lang/Package;
            ifnonnull 1
            ldc ""
            goto 2
      StackMap locals:
      StackMap stack: uninitialized-this
         1: aload 1 /* klass */
            invokevirtual java.lang.Class.getPackage:()Ljava/lang/Package;
            invokevirtual java.lang.Package.getName:()Ljava/lang/String;
         2: .line 619
      StackMap locals: uninitialized-this java.lang.Class java.lang.String java.lang.String
      StackMap stack: uninitialized-this java.lang.String
            aload 1 /* klass */
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            invokestatic org.apache.cassandra.metrics.CassandraMetricsRegistry.withoutFinalDollar:(Ljava/lang/String;)Ljava/lang/String;
         3: .line 620
            aload 2 /* name */
         4: .line 621
            aload 3 /* scope */
            invokespecial org.apache.cassandra.metrics.CassandraMetricsRegistry$MetricName.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
         5: .line 622
            return
        end local 3 // java.lang.String scope
        end local 2 // java.lang.String name
        end local 1 // java.lang.Class klass
        end local 0 // org.apache.cassandra.metrics.CassandraMetricsRegistry$MetricName this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0   this  Lorg/apache/cassandra/metrics/CassandraMetricsRegistry$MetricName;
            0    6     1  klass  Ljava/lang/Class<*>;
            0    6     2   name  Ljava/lang/String;
            0    6     3  scope  Ljava/lang/String;
    Signature: (Ljava/lang/Class<*>;Ljava/lang/String;Ljava/lang/String;)V
    MethodParameters:
       Name  Flags
      klass  
      name   
      scope  

  public void <init>(java.lang.String, java.lang.String, java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=5, args_size=5
        start local 0 // org.apache.cassandra.metrics.CassandraMetricsRegistry$MetricName this
        start local 1 // java.lang.String group
        start local 2 // java.lang.String type
        start local 3 // java.lang.String name
        start local 4 // java.lang.String scope
         0: .line 634
            aload 0 /* this */
            aload 1 /* group */
            aload 2 /* type */
            aload 3 /* name */
            aload 4 /* scope */
            aload 1 /* group */
            aload 2 /* type */
            aload 3 /* name */
            aload 4 /* scope */
            invokestatic org.apache.cassandra.metrics.CassandraMetricsRegistry$MetricName.createMBeanName:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokespecial org.apache.cassandra.metrics.CassandraMetricsRegistry$MetricName.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
         1: .line 635
            return
        end local 4 // java.lang.String scope
        end local 3 // java.lang.String name
        end local 2 // java.lang.String type
        end local 1 // java.lang.String group
        end local 0 // org.apache.cassandra.metrics.CassandraMetricsRegistry$MetricName this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/apache/cassandra/metrics/CassandraMetricsRegistry$MetricName;
            0    2     1  group  Ljava/lang/String;
            0    2     2   type  Ljava/lang/String;
            0    2     3   name  Ljava/lang/String;
            0    2     4  scope  Ljava/lang/String;
    MethodParameters:
       Name  Flags
      group  
      type   
      name   
      scope  

  public void <init>(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=6
        start local 0 // org.apache.cassandra.metrics.CassandraMetricsRegistry$MetricName this
        start local 1 // java.lang.String group
        start local 2 // java.lang.String type
        start local 3 // java.lang.String name
        start local 4 // java.lang.String scope
        start local 5 // java.lang.String mBeanName
         0: .line 647
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 649
            aload 1 /* group */
            ifnull 2
            aload 2 /* type */
            ifnonnull 3
         2: .line 651
      StackMap locals: org.apache.cassandra.metrics.CassandraMetricsRegistry$MetricName java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "Both group and type need to be specified"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 653
      StackMap locals:
      StackMap stack:
            aload 3 /* name */
            ifnonnull 5
         4: .line 655
            new java.lang.IllegalArgumentException
            dup
            ldc "Name needs to be specified"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 657
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* group */
            putfield org.apache.cassandra.metrics.CassandraMetricsRegistry$MetricName.group:Ljava/lang/String;
         6: .line 658
            aload 0 /* this */
            aload 2 /* type */
            putfield org.apache.cassandra.metrics.CassandraMetricsRegistry$MetricName.type:Ljava/lang/String;
         7: .line 659
            aload 0 /* this */
            aload 3 /* name */
            putfield org.apache.cassandra.metrics.CassandraMetricsRegistry$MetricName.name:Ljava/lang/String;
         8: .line 660
            aload 0 /* this */
            aload 4 /* scope */
            putfield org.apache.cassandra.metrics.CassandraMetricsRegistry$MetricName.scope:Ljava/lang/String;
         9: .line 661
            aload 0 /* this */
            aload 5 /* mBeanName */
            putfield org.apache.cassandra.metrics.CassandraMetricsRegistry$MetricName.mBeanName:Ljava/lang/String;
        10: .line 662
            return
        end local 5 // java.lang.String mBeanName
        end local 4 // java.lang.String scope
        end local 3 // java.lang.String name
        end local 2 // java.lang.String type
        end local 1 // java.lang.String group
        end local 0 // org.apache.cassandra.metrics.CassandraMetricsRegistry$MetricName this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   11     0       this  Lorg/apache/cassandra/metrics/CassandraMetricsRegistry$MetricName;
            0   11     1      group  Ljava/lang/String;
            0   11     2       type  Ljava/lang/String;
            0   11     3       name  Ljava/lang/String;
            0   11     4      scope  Ljava/lang/String;
            0   11     5  mBeanName  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      group      
      type       
      name       
      scope      
      mBeanName  

  public java.lang.String getGroup();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.metrics.CassandraMetricsRegistry$MetricName this
         0: .line 672
            aload 0 /* this */
            getfield org.apache.cassandra.metrics.CassandraMetricsRegistry$MetricName.group:Ljava/lang/String;
            areturn
        end local 0 // org.apache.cassandra.metrics.CassandraMetricsRegistry$MetricName this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/metrics/CassandraMetricsRegistry$MetricName;

  public java.lang.String getType();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.metrics.CassandraMetricsRegistry$MetricName this
         0: .line 683
            aload 0 /* this */
            getfield org.apache.cassandra.metrics.CassandraMetricsRegistry$MetricName.type:Ljava/lang/String;
            areturn
        end local 0 // org.apache.cassandra.metrics.CassandraMetricsRegistry$MetricName this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/metrics/CassandraMetricsRegistry$MetricName;

  public java.lang.String getName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.metrics.CassandraMetricsRegistry$MetricName this
         0: .line 693
            aload 0 /* this */
            getfield org.apache.cassandra.metrics.CassandraMetricsRegistry$MetricName.name:Ljava/lang/String;
            areturn
        end local 0 // org.apache.cassandra.metrics.CassandraMetricsRegistry$MetricName this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/metrics/CassandraMetricsRegistry$MetricName;

  public java.lang.String getMetricName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // org.apache.cassandra.metrics.CassandraMetricsRegistry$MetricName this
         0: .line 698
            aload 0 /* this */
            getfield org.apache.cassandra.metrics.CassandraMetricsRegistry$MetricName.group:Ljava/lang/String;
            iconst_3
            anewarray java.lang.String
            dup
            iconst_0
            aload 0 /* this */
            getfield org.apache.cassandra.metrics.CassandraMetricsRegistry$MetricName.type:Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 0 /* this */
            getfield org.apache.cassandra.metrics.CassandraMetricsRegistry$MetricName.name:Ljava/lang/String;
            aastore
            dup
            iconst_2
            aload 0 /* this */
            getfield org.apache.cassandra.metrics.CassandraMetricsRegistry$MetricName.scope:Ljava/lang/String;
            aastore
            invokestatic com.codahale.metrics.MetricRegistry.name:(Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 0 // org.apache.cassandra.metrics.CassandraMetricsRegistry$MetricName this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/metrics/CassandraMetricsRegistry$MetricName;

  public java.lang.String getScope();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.metrics.CassandraMetricsRegistry$MetricName this
         0: .line 708
            aload 0 /* this */
            getfield org.apache.cassandra.metrics.CassandraMetricsRegistry$MetricName.scope:Ljava/lang/String;
            areturn
        end local 0 // org.apache.cassandra.metrics.CassandraMetricsRegistry$MetricName this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/metrics/CassandraMetricsRegistry$MetricName;

  public boolean hasScope();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.metrics.CassandraMetricsRegistry$MetricName this
         0: .line 718
            aload 0 /* this */
            getfield org.apache.cassandra.metrics.CassandraMetricsRegistry$MetricName.scope:Ljava/lang/String;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.apache.cassandra.metrics.CassandraMetricsRegistry$MetricName this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/cassandra/metrics/CassandraMetricsRegistry$MetricName;

  public javax.management.ObjectName getMBeanName();
    descriptor: ()Ljavax/management/ObjectName;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // org.apache.cassandra.metrics.CassandraMetricsRegistry$MetricName this
         0: .line 729
            aload 0 /* this */
            getfield org.apache.cassandra.metrics.CassandraMetricsRegistry$MetricName.mBeanName:Ljava/lang/String;
            astore 1 /* mname */
        start local 1 // java.lang.String mname
         1: .line 731
            aload 1 /* mname */
            ifnonnull 3
         2: .line 732
            aload 0 /* this */
            invokevirtual org.apache.cassandra.metrics.CassandraMetricsRegistry$MetricName.getMetricName:()Ljava/lang/String;
            astore 1 /* mname */
         3: .line 737
      StackMap locals: java.lang.String
      StackMap stack:
            new javax.management.ObjectName
            dup
            aload 1 /* mname */
            invokespecial javax.management.ObjectName.<init>:(Ljava/lang/String;)V
         4: areturn
         5: .line 738
      StackMap locals:
      StackMap stack: javax.management.MalformedObjectNameException
            pop
         6: .line 742
            new javax.management.ObjectName
            dup
            aload 1 /* mname */
            invokestatic javax.management.ObjectName.quote:(Ljava/lang/String;)Ljava/lang/String;
            invokespecial javax.management.ObjectName.<init>:(Ljava/lang/String;)V
         7: areturn
         8: .line 743
      StackMap locals:
      StackMap stack: javax.management.MalformedObjectNameException
            astore 2 /* e1 */
        start local 2 // javax.management.MalformedObjectNameException e1
         9: .line 745
            new java.lang.RuntimeException
            dup
            aload 2 /* e1 */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 2 // javax.management.MalformedObjectNameException e1
        end local 1 // java.lang.String mname
        end local 0 // org.apache.cassandra.metrics.CassandraMetricsRegistry$MetricName this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   10     0   this  Lorg/apache/cassandra/metrics/CassandraMetricsRegistry$MetricName;
            1   10     1  mname  Ljava/lang/String;
            9   10     2     e1  Ljavax/management/MalformedObjectNameException;
      Exception table:
        from    to  target  type
           3     4       5  Class javax.management.MalformedObjectNameException
           6     7       8  Class javax.management.MalformedObjectNameException

  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 // org.apache.cassandra.metrics.CassandraMetricsRegistry$MetricName this
        start local 1 // java.lang.Object o
         0: .line 753
            aload 0 /* this */
            aload 1 /* o */
            if_acmpne 2
         1: .line 755
            iconst_1
            ireturn
         2: .line 757
      StackMap locals:
      StackMap stack:
            aload 1 /* o */
            ifnull 3
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aload 1 /* o */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            if_acmpeq 4
         3: .line 759
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         4: .line 761
      StackMap locals:
      StackMap stack:
            aload 1 /* o */
            checkcast org.apache.cassandra.metrics.CassandraMetricsRegistry$MetricName
            astore 2 /* that */
        start local 2 // org.apache.cassandra.metrics.CassandraMetricsRegistry$MetricName that
         5: .line 762
            aload 0 /* this */
            getfield org.apache.cassandra.metrics.CassandraMetricsRegistry$MetricName.mBeanName:Ljava/lang/String;
            aload 2 /* that */
            getfield org.apache.cassandra.metrics.CassandraMetricsRegistry$MetricName.mBeanName:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ireturn
        end local 2 // org.apache.cassandra.metrics.CassandraMetricsRegistry$MetricName that
        end local 1 // java.lang.Object o
        end local 0 // org.apache.cassandra.metrics.CassandraMetricsRegistry$MetricName this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/apache/cassandra/metrics/CassandraMetricsRegistry$MetricName;
            0    6     1     o  Ljava/lang/Object;
            5    6     2  that  Lorg/apache/cassandra/metrics/CassandraMetricsRegistry$MetricName;
    MethodParameters:
      Name  Flags
      o     

  public int hashCode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.metrics.CassandraMetricsRegistry$MetricName this
         0: .line 768
            aload 0 /* this */
            getfield org.apache.cassandra.metrics.CassandraMetricsRegistry$MetricName.mBeanName:Ljava/lang/String;
            invokevirtual java.lang.String.hashCode:()I
            ireturn
        end local 0 // org.apache.cassandra.metrics.CassandraMetricsRegistry$MetricName this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/metrics/CassandraMetricsRegistry$MetricName;

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.metrics.CassandraMetricsRegistry$MetricName this
         0: .line 774
            aload 0 /* this */
            getfield org.apache.cassandra.metrics.CassandraMetricsRegistry$MetricName.mBeanName:Ljava/lang/String;
            areturn
        end local 0 // org.apache.cassandra.metrics.CassandraMetricsRegistry$MetricName this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/metrics/CassandraMetricsRegistry$MetricName;

  public int compareTo(org.apache.cassandra.metrics.CassandraMetricsRegistry$MetricName);
    descriptor: (Lorg/apache/cassandra/metrics/CassandraMetricsRegistry$MetricName;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.cassandra.metrics.CassandraMetricsRegistry$MetricName this
        start local 1 // org.apache.cassandra.metrics.CassandraMetricsRegistry$MetricName o
         0: .line 780
            aload 0 /* this */
            getfield org.apache.cassandra.metrics.CassandraMetricsRegistry$MetricName.mBeanName:Ljava/lang/String;
            aload 1 /* o */
            getfield org.apache.cassandra.metrics.CassandraMetricsRegistry$MetricName.mBeanName:Ljava/lang/String;
            invokevirtual java.lang.String.compareTo:(Ljava/lang/String;)I
            ireturn
        end local 1 // org.apache.cassandra.metrics.CassandraMetricsRegistry$MetricName o
        end local 0 // org.apache.cassandra.metrics.CassandraMetricsRegistry$MetricName this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/metrics/CassandraMetricsRegistry$MetricName;
            0    1     1     o  Lorg/apache/cassandra/metrics/CassandraMetricsRegistry$MetricName;
    MethodParameters:
      Name  Flags
      o     

  private static java.lang.String createMBeanName(java.lang.String, java.lang.String, java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=5, args_size=4
        start local 0 // java.lang.String group
        start local 1 // java.lang.String type
        start local 2 // java.lang.String name
        start local 3 // java.lang.String scope
         0: .line 785
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 4 /* nameBuilder */
        start local 4 // java.lang.StringBuilder nameBuilder
         1: .line 786
            aload 4 /* nameBuilder */
            aload 0 /* group */
            invokestatic javax.management.ObjectName.quote:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         2: .line 787
            aload 4 /* nameBuilder */
            ldc ":type="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         3: .line 788
            aload 4 /* nameBuilder */
            aload 1 /* type */
            invokestatic javax.management.ObjectName.quote:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         4: .line 789
            aload 3 /* scope */
            ifnull 7
         5: .line 791
            aload 4 /* nameBuilder */
            ldc ",scope="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         6: .line 792
            aload 4 /* nameBuilder */
            aload 3 /* scope */
            invokestatic javax.management.ObjectName.quote:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         7: .line 794
      StackMap locals: java.lang.StringBuilder
      StackMap stack:
            aload 2 /* name */
            invokevirtual java.lang.String.length:()I
            ifle 10
         8: .line 796
            aload 4 /* nameBuilder */
            ldc ",name="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         9: .line 797
            aload 4 /* nameBuilder */
            aload 2 /* name */
            invokestatic javax.management.ObjectName.quote:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        10: .line 799
      StackMap locals:
      StackMap stack:
            aload 4 /* nameBuilder */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 4 // java.lang.StringBuilder nameBuilder
        end local 3 // java.lang.String scope
        end local 2 // java.lang.String name
        end local 1 // java.lang.String type
        end local 0 // java.lang.String group
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   11     0        group  Ljava/lang/String;
            0   11     1         type  Ljava/lang/String;
            0   11     2         name  Ljava/lang/String;
            0   11     3        scope  Ljava/lang/String;
            1   11     4  nameBuilder  Ljava/lang/StringBuilder;
    MethodParameters:
       Name  Flags
      group  
      type   
      name   
      scope  

  public static java.lang.String chooseGroup(java.lang.String, java.lang.Class<?>);
    descriptor: (Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // java.lang.String group
        start local 1 // java.lang.Class klass
         0: .line 811
            aload 0 /* group */
            ifnull 1
            aload 0 /* group */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 4
         1: .line 813
      StackMap locals:
      StackMap stack:
            aload 1 /* klass */
            invokevirtual java.lang.Class.getPackage:()Ljava/lang/Package;
            ifnonnull 2
            ldc ""
            goto 3
      StackMap locals:
      StackMap stack:
         2: aload 1 /* klass */
            invokevirtual java.lang.Class.getPackage:()Ljava/lang/Package;
            invokevirtual java.lang.Package.getName:()Ljava/lang/String;
      StackMap locals:
      StackMap stack: java.lang.String
         3: astore 0 /* group */
         4: .line 815
      StackMap locals:
      StackMap stack:
            aload 0 /* group */
            areturn
        end local 1 // java.lang.Class klass
        end local 0 // java.lang.String group
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0  group  Ljava/lang/String;
            0    5     1  klass  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/String;Ljava/lang/Class<*>;)Ljava/lang/String;
    MethodParameters:
       Name  Flags
      group  
      klass  

  public static java.lang.String chooseType(java.lang.String, java.lang.Class<?>);
    descriptor: (Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // java.lang.String type
        start local 1 // java.lang.Class klass
         0: .line 827
            aload 0 /* type */
            ifnull 1
            aload 0 /* type */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 2
         1: .line 829
      StackMap locals:
      StackMap stack:
            aload 1 /* klass */
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            invokestatic org.apache.cassandra.metrics.CassandraMetricsRegistry.withoutFinalDollar:(Ljava/lang/String;)Ljava/lang/String;
            astore 0 /* type */
         2: .line 831
      StackMap locals:
      StackMap stack:
            aload 0 /* type */
            areturn
        end local 1 // java.lang.Class klass
        end local 0 // java.lang.String type
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   type  Ljava/lang/String;
            0    3     1  klass  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/String;Ljava/lang/Class<*>;)Ljava/lang/String;
    MethodParameters:
       Name  Flags
      type   
      klass  

  public static java.lang.String chooseName(java.lang.String, java.lang.reflect.Method);
    descriptor: (Ljava/lang/String;Ljava/lang/reflect/Method;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // java.lang.String name
        start local 1 // java.lang.reflect.Method method
         0: .line 843
            aload 0 /* name */
            ifnull 1
            aload 0 /* name */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 2
         1: .line 845
      StackMap locals:
      StackMap stack:
            aload 1 /* method */
            invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
            astore 0 /* name */
         2: .line 847
      StackMap locals:
      StackMap stack:
            aload 0 /* name */
            areturn
        end local 1 // java.lang.reflect.Method method
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    name  Ljava/lang/String;
            0    3     1  method  Ljava/lang/reflect/Method;
    MethodParameters:
        Name  Flags
      name    
      method  

  public int compareTo(java.lang.Object);
    descriptor: (Ljava/lang/Object;)I
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            checkcast org.apache.cassandra.metrics.CassandraMetricsRegistry$MetricName
            invokevirtual org.apache.cassandra.metrics.CassandraMetricsRegistry$MetricName.compareTo:(Lorg/apache/cassandra/metrics/CassandraMetricsRegistry$MetricName;)I
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
Signature: Ljava/lang/Object;Ljava/lang/Comparable<Lorg/apache/cassandra/metrics/CassandraMetricsRegistry$MetricName;>;
SourceFile: "CassandraMetricsRegistry.java"
NestHost: org.apache.cassandra.metrics.CassandraMetricsRegistry
InnerClasses:
  public MetricName = org.apache.cassandra.metrics.CassandraMetricsRegistry$MetricName of org.apache.cassandra.metrics.CassandraMetricsRegistry