public class org.springframework.util.MimeType$SpecificityComparator<T extends org.springframework.util.MimeType> implements java.util.Comparator<T>
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.springframework.util.MimeType$SpecificityComparator
  super_class: java.lang.Object
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.util.MimeType$SpecificityComparator this
         0: .line 582
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.springframework.util.MimeType$SpecificityComparator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/util/MimeType$SpecificityComparator<TT;>;

  public int compare(T, );
    descriptor: (Lorg/springframework/util/MimeType;Lorg/springframework/util/MimeType;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.springframework.util.MimeType$SpecificityComparator this
        start local 1 // org.springframework.util.MimeType mimeType1
        start local 2 // org.springframework.util.MimeType mimeType2
         0: .line 586
            aload 1 /* mimeType1 */
            invokevirtual org.springframework.util.MimeType.isWildcardType:()Z
            ifeq 2
            aload 2 /* mimeType2 */
            invokevirtual org.springframework.util.MimeType.isWildcardType:()Z
            ifne 2
         1: .line 587
            iconst_1
            ireturn
         2: .line 589
      StackMap locals:
      StackMap stack:
            aload 2 /* mimeType2 */
            invokevirtual org.springframework.util.MimeType.isWildcardType:()Z
            ifeq 4
            aload 1 /* mimeType1 */
            invokevirtual org.springframework.util.MimeType.isWildcardType:()Z
            ifne 4
         3: .line 590
            iconst_m1
            ireturn
         4: .line 592
      StackMap locals:
      StackMap stack:
            aload 1 /* mimeType1 */
            invokevirtual org.springframework.util.MimeType.getType:()Ljava/lang/String;
            aload 2 /* mimeType2 */
            invokevirtual org.springframework.util.MimeType.getType:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 6
         5: .line 593
            iconst_0
            ireturn
         6: .line 596
      StackMap locals:
      StackMap stack:
            aload 1 /* mimeType1 */
            invokevirtual org.springframework.util.MimeType.isWildcardSubtype:()Z
            ifeq 8
            aload 2 /* mimeType2 */
            invokevirtual org.springframework.util.MimeType.isWildcardSubtype:()Z
            ifne 8
         7: .line 597
            iconst_1
            ireturn
         8: .line 599
      StackMap locals:
      StackMap stack:
            aload 2 /* mimeType2 */
            invokevirtual org.springframework.util.MimeType.isWildcardSubtype:()Z
            ifeq 10
            aload 1 /* mimeType1 */
            invokevirtual org.springframework.util.MimeType.isWildcardSubtype:()Z
            ifne 10
         9: .line 600
            iconst_m1
            ireturn
        10: .line 602
      StackMap locals:
      StackMap stack:
            aload 1 /* mimeType1 */
            invokevirtual org.springframework.util.MimeType.getSubtype:()Ljava/lang/String;
            aload 2 /* mimeType2 */
            invokevirtual org.springframework.util.MimeType.getSubtype:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 12
        11: .line 603
            iconst_0
            ireturn
        12: .line 606
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* mimeType1 */
            aload 2 /* mimeType2 */
            invokevirtual org.springframework.util.MimeType$SpecificityComparator.compareParameters:(Lorg/springframework/util/MimeType;Lorg/springframework/util/MimeType;)I
            ireturn
        end local 2 // org.springframework.util.MimeType mimeType2
        end local 1 // org.springframework.util.MimeType mimeType1
        end local 0 // org.springframework.util.MimeType$SpecificityComparator this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   13     0       this  Lorg/springframework/util/MimeType$SpecificityComparator<TT;>;
            0   13     1  mimeType1  TT;
            0   13     2  mimeType2  TT;
    Signature: (TT;TT;)I
    MethodParameters:
           Name  Flags
      mimeType1  
      mimeType2  

  protected int compareParameters(T, );
    descriptor: (Lorg/springframework/util/MimeType;Lorg/springframework/util/MimeType;)I
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=5, args_size=3
        start local 0 // org.springframework.util.MimeType$SpecificityComparator this
        start local 1 // org.springframework.util.MimeType mimeType1
        start local 2 // org.springframework.util.MimeType mimeType2
         0: .line 612
            aload 1 /* mimeType1 */
            invokevirtual org.springframework.util.MimeType.getParameters:()Ljava/util/Map;
            invokeinterface java.util.Map.size:()I
            istore 3 /* paramsSize1 */
        start local 3 // int paramsSize1
         1: .line 613
            aload 2 /* mimeType2 */
            invokevirtual org.springframework.util.MimeType.getParameters:()Ljava/util/Map;
            invokeinterface java.util.Map.size:()I
            istore 4 /* paramsSize2 */
        start local 4 // int paramsSize2
         2: .line 614
            iload 4 /* paramsSize2 */
            iload 3 /* paramsSize1 */
            invokestatic java.lang.Integer.compare:(II)I
            ireturn
        end local 4 // int paramsSize2
        end local 3 // int paramsSize1
        end local 2 // org.springframework.util.MimeType mimeType2
        end local 1 // org.springframework.util.MimeType mimeType1
        end local 0 // org.springframework.util.MimeType$SpecificityComparator this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0         this  Lorg/springframework/util/MimeType$SpecificityComparator<TT;>;
            0    3     1    mimeType1  TT;
            0    3     2    mimeType2  TT;
            1    3     3  paramsSize1  I
            2    3     4  paramsSize2  I
    Signature: (TT;TT;)I
    MethodParameters:
           Name  Flags
      mimeType1  
      mimeType2  

  public int compare(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)I
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
         0: .line 1
            aload 0
            aload 1
            checkcast org.springframework.util.MimeType
            aload 2
            checkcast org.springframework.util.MimeType
            invokevirtual org.springframework.util.MimeType$SpecificityComparator.compare:(Lorg/springframework/util/MimeType;Lorg/springframework/util/MimeType;)I
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
Signature: <T:Lorg/springframework/util/MimeType;>Ljava/lang/Object;Ljava/util/Comparator<TT;>;
SourceFile: "MimeType.java"
NestHost: org.springframework.util.MimeType
InnerClasses:
  public SpecificityComparator = org.springframework.util.MimeType$SpecificityComparator of org.springframework.util.MimeType