public class org.junit.runner.manipulation.Sorter extends org.junit.runner.manipulation.Ordering implements java.util.Comparator<org.junit.runner.Description>
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.junit.runner.manipulation.Sorter
  super_class: org.junit.runner.manipulation.Ordering
{
  public static final org.junit.runner.manipulation.Sorter NULL;
    descriptor: Lorg/junit/runner/manipulation/Sorter;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  private final java.util.Comparator<org.junit.runner.Description> comparator;
    descriptor: Ljava/util/Comparator;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Comparator<Lorg/junit/runner/Description;>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 22
            new org.junit.runner.manipulation.Sorter
            dup
            new org.junit.runner.manipulation.Sorter$1
            dup
            invokespecial org.junit.runner.manipulation.Sorter$1.<init>:()V
            invokespecial org.junit.runner.manipulation.Sorter.<init>:(Ljava/util/Comparator;)V
            putstatic org.junit.runner.manipulation.Sorter.NULL:Lorg/junit/runner/manipulation/Sorter;
         1: .line 26
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(java.util.Comparator<org.junit.runner.Description>);
    descriptor: (Ljava/util/Comparator;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.junit.runner.manipulation.Sorter this
        start local 1 // java.util.Comparator comparator
         0: .line 37
            aload 0 /* this */
            invokespecial org.junit.runner.manipulation.Ordering.<init>:()V
         1: .line 38
            aload 0 /* this */
            aload 1 /* comparator */
            putfield org.junit.runner.manipulation.Sorter.comparator:Ljava/util/Comparator;
         2: .line 39
            return
        end local 1 // java.util.Comparator comparator
        end local 0 // org.junit.runner.manipulation.Sorter this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lorg/junit/runner/manipulation/Sorter;
            0    3     1  comparator  Ljava/util/Comparator<Lorg/junit/runner/Description;>;
    Signature: (Ljava/util/Comparator<Lorg/junit/runner/Description;>;)V
    MethodParameters:
            Name  Flags
      comparator  

  public void apply(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.junit.runner.manipulation.Sorter this
        start local 1 // java.lang.Object target
         0: .line 53
            aload 1 /* target */
            instanceof org.junit.runner.manipulation.Sortable
            ifeq 3
         1: .line 54
            aload 1 /* target */
            checkcast org.junit.runner.manipulation.Sortable
            astore 2 /* sortable */
        start local 2 // org.junit.runner.manipulation.Sortable sortable
         2: .line 55
            aload 2 /* sortable */
            aload 0 /* this */
            invokeinterface org.junit.runner.manipulation.Sortable.sort:(Lorg/junit/runner/manipulation/Sorter;)V
        end local 2 // org.junit.runner.manipulation.Sortable sortable
         3: .line 57
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.Object target
        end local 0 // org.junit.runner.manipulation.Sorter this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Lorg/junit/runner/manipulation/Sorter;
            0    4     1    target  Ljava/lang/Object;
            2    3     2  sortable  Lorg/junit/runner/manipulation/Sortable;
    MethodParameters:
        Name  Flags
      target  

  public int compare(org.junit.runner.Description, org.junit.runner.Description);
    descriptor: (Lorg/junit/runner/Description;Lorg/junit/runner/Description;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.junit.runner.manipulation.Sorter this
        start local 1 // org.junit.runner.Description o1
        start local 2 // org.junit.runner.Description o2
         0: .line 60
            aload 0 /* this */
            getfield org.junit.runner.manipulation.Sorter.comparator:Ljava/util/Comparator;
            aload 1 /* o1 */
            aload 2 /* o2 */
            invokeinterface java.util.Comparator.compare:(Ljava/lang/Object;Ljava/lang/Object;)I
            ireturn
        end local 2 // org.junit.runner.Description o2
        end local 1 // org.junit.runner.Description o1
        end local 0 // org.junit.runner.manipulation.Sorter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/junit/runner/manipulation/Sorter;
            0    1     1    o1  Lorg/junit/runner/Description;
            0    1     2    o2  Lorg/junit/runner/Description;
    MethodParameters:
      Name  Flags
      o1    
      o2    

  protected final java.util.List<org.junit.runner.Description> orderItems(java.util.Collection<org.junit.runner.Description>);
    descriptor: (Ljava/util/Collection;)Ljava/util/List;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.junit.runner.manipulation.Sorter this
        start local 1 // java.util.Collection descriptions
         0: .line 76
            new java.util.ArrayList
            dup
            aload 1 /* descriptions */
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            astore 2 /* sorted */
        start local 2 // java.util.List sorted
         1: .line 77
            aload 2 /* sorted */
            aload 0 /* this */
            invokestatic java.util.Collections.sort:(Ljava/util/List;Ljava/util/Comparator;)V
         2: .line 78
            aload 2 /* sorted */
            areturn
        end local 2 // java.util.List sorted
        end local 1 // java.util.Collection descriptions
        end local 0 // org.junit.runner.manipulation.Sorter this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0          this  Lorg/junit/runner/manipulation/Sorter;
            0    3     1  descriptions  Ljava/util/Collection<Lorg/junit/runner/Description;>;
            1    3     2        sorted  Ljava/util/List<Lorg/junit/runner/Description;>;
    Signature: (Ljava/util/Collection<Lorg/junit/runner/Description;>;)Ljava/util/List<Lorg/junit/runner/Description;>;
    MethodParameters:
              Name  Flags
      descriptions  

  boolean validateOrderingIsCorrect();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.junit.runner.manipulation.Sorter this
         0: .line 88
            iconst_0
            ireturn
        end local 0 // org.junit.runner.manipulation.Sorter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/junit/runner/manipulation/Sorter;

  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.junit.runner.Description
            aload 2
            checkcast org.junit.runner.Description
            invokevirtual org.junit.runner.manipulation.Sorter.compare:(Lorg/junit/runner/Description;Lorg/junit/runner/Description;)I
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
Signature: Lorg/junit/runner/manipulation/Ordering;Ljava/util/Comparator<Lorg/junit/runner/Description;>;
SourceFile: "Sorter.java"
NestMembers:
  org.junit.runner.manipulation.Sorter$1
InnerClasses:
  org.junit.runner.manipulation.Sorter$1