public class org.eclipse.collections.impl.block.comparator.FunctionComparator<T, V> implements org.eclipse.collections.api.block.SerializableComparator<T>
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.eclipse.collections.impl.block.comparator.FunctionComparator
  super_class: java.lang.Object
{
  private static final long serialVersionUID;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private final org.eclipse.collections.api.block.function.Function<? super T, ? extends V> function;
    descriptor: Lorg/eclipse/collections/api/block/function/Function;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lorg/eclipse/collections/api/block/function/Function<-TT;+TV;>;

  private final java.util.Comparator<V> comparator;
    descriptor: Ljava/util/Comparator;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Comparator<TV;>;

  public void <init>(org.eclipse.collections.api.block.function.Function<? super T, ? extends V>, java.util.Comparator<V>);
    descriptor: (Lorg/eclipse/collections/api/block/function/Function;Ljava/util/Comparator;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.eclipse.collections.impl.block.comparator.FunctionComparator this
        start local 1 // org.eclipse.collections.api.block.function.Function function
        start local 2 // java.util.Comparator comparator
         0: .line 29
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 31
            aload 0 /* this */
            aload 1 /* function */
            putfield org.eclipse.collections.impl.block.comparator.FunctionComparator.function:Lorg/eclipse/collections/api/block/function/Function;
         2: .line 32
            aload 0 /* this */
            aload 2 /* comparator */
            putfield org.eclipse.collections.impl.block.comparator.FunctionComparator.comparator:Ljava/util/Comparator;
         3: .line 33
            return
        end local 2 // java.util.Comparator comparator
        end local 1 // org.eclipse.collections.api.block.function.Function function
        end local 0 // org.eclipse.collections.impl.block.comparator.FunctionComparator this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Lorg/eclipse/collections/impl/block/comparator/FunctionComparator<TT;TV;>;
            0    4     1    function  Lorg/eclipse/collections/api/block/function/Function<-TT;+TV;>;
            0    4     2  comparator  Ljava/util/Comparator<TV;>;
    Signature: (Lorg/eclipse/collections/api/block/function/Function<-TT;+TV;>;Ljava/util/Comparator<TV;>;)V
    MethodParameters:
            Name  Flags
      function    
      comparator  

  public int compare(T, );
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // org.eclipse.collections.impl.block.comparator.FunctionComparator this
        start local 1 // java.lang.Object o1
        start local 2 // java.lang.Object o2
         0: .line 38
            aload 0 /* this */
            getfield org.eclipse.collections.impl.block.comparator.FunctionComparator.function:Lorg/eclipse/collections/api/block/function/Function;
            aload 1 /* o1 */
            invokeinterface org.eclipse.collections.api.block.function.Function.valueOf:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 3 /* attrValue1 */
        start local 3 // java.lang.Object attrValue1
         1: .line 39
            aload 0 /* this */
            getfield org.eclipse.collections.impl.block.comparator.FunctionComparator.function:Lorg/eclipse/collections/api/block/function/Function;
            aload 2 /* o2 */
            invokeinterface org.eclipse.collections.api.block.function.Function.valueOf:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 4 /* attrValue2 */
        start local 4 // java.lang.Object attrValue2
         2: .line 40
            aload 0 /* this */
            getfield org.eclipse.collections.impl.block.comparator.FunctionComparator.comparator:Ljava/util/Comparator;
            aload 3 /* attrValue1 */
            aload 4 /* attrValue2 */
            invokeinterface java.util.Comparator.compare:(Ljava/lang/Object;Ljava/lang/Object;)I
            ireturn
        end local 4 // java.lang.Object attrValue2
        end local 3 // java.lang.Object attrValue1
        end local 2 // java.lang.Object o2
        end local 1 // java.lang.Object o1
        end local 0 // org.eclipse.collections.impl.block.comparator.FunctionComparator this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lorg/eclipse/collections/impl/block/comparator/FunctionComparator<TT;TV;>;
            0    3     1          o1  TT;
            0    3     2          o2  TT;
            1    3     3  attrValue1  TV;
            2    3     4  attrValue2  TV;
    Signature: (TT;TT;)I
    MethodParameters:
      Name  Flags
      o1    
      o2    
}
Signature: <T:Ljava/lang/Object;V:Ljava/lang/Object;>Ljava/lang/Object;Lorg/eclipse/collections/api/block/SerializableComparator<TT;>;
SourceFile: "FunctionComparator.java"