public class org.apache.commons.collections4.functors.ComparatorPredicate<T> implements org.apache.commons.collections4.Predicate<T>, java.io.Serializable
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.commons.collections4.functors.ComparatorPredicate
  super_class: java.lang.Object
{
  private static final long serialVersionUID;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: -1863209236504077399

  private final T object;
    descriptor: Ljava/lang/Object;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: TT;

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

  private final org.apache.commons.collections4.functors.ComparatorPredicate$Criterion criterion;
    descriptor: Lorg/apache/commons/collections4/functors/ComparatorPredicate$Criterion;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lorg/apache/commons/collections4/functors/ComparatorPredicate$Criterion;

  private static volatile int[] $SWITCH_TABLE$org$apache$commons$collections4$functors$ComparatorPredicate$Criterion;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  public static <T> org.apache.commons.collections4.Predicate<T> comparatorPredicate(T, java.util.Comparator<T>);
    descriptor: (Ljava/lang/Object;Ljava/util/Comparator;)Lorg/apache/commons/collections4/Predicate;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.Object object
        start local 1 // java.util.Comparator comparator
         0: .line 107
            aload 0 /* object */
            aload 1 /* comparator */
            getstatic org.apache.commons.collections4.functors.ComparatorPredicate$Criterion.EQUAL:Lorg/apache/commons/collections4/functors/ComparatorPredicate$Criterion;
            invokestatic org.apache.commons.collections4.functors.ComparatorPredicate.comparatorPredicate:(Ljava/lang/Object;Ljava/util/Comparator;Lorg/apache/commons/collections4/functors/ComparatorPredicate$Criterion;)Lorg/apache/commons/collections4/Predicate;
            areturn
        end local 1 // java.util.Comparator comparator
        end local 0 // java.lang.Object object
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0      object  TT;
            0    1     1  comparator  Ljava/util/Comparator<TT;>;
    Signature: <T:Ljava/lang/Object;>(TT;Ljava/util/Comparator<TT;>;)Lorg/apache/commons/collections4/Predicate<TT;>;
    MethodParameters:
            Name  Flags
      object      final
      comparator  final

  public static <T> org.apache.commons.collections4.Predicate<T> comparatorPredicate(T, java.util.Comparator<T>, org.apache.commons.collections4.functors.ComparatorPredicate$Criterion);
    descriptor: (Ljava/lang/Object;Ljava/util/Comparator;Lorg/apache/commons/collections4/functors/ComparatorPredicate$Criterion;)Lorg/apache/commons/collections4/Predicate;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // java.lang.Object object
        start local 1 // java.util.Comparator comparator
        start local 2 // org.apache.commons.collections4.functors.ComparatorPredicate$Criterion criterion
         0: .line 122
            aload 1 /* comparator */
            ifnonnull 2
         1: .line 123
            new java.lang.NullPointerException
            dup
            ldc "Comparator must not be null."
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 125
      StackMap locals:
      StackMap stack:
            aload 2 /* criterion */
            ifnonnull 4
         3: .line 126
            new java.lang.NullPointerException
            dup
            ldc "Criterion must not be null."
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 128
      StackMap locals:
      StackMap stack:
            new org.apache.commons.collections4.functors.ComparatorPredicate
            dup
            aload 0 /* object */
            aload 1 /* comparator */
            aload 2 /* criterion */
            invokespecial org.apache.commons.collections4.functors.ComparatorPredicate.<init>:(Ljava/lang/Object;Ljava/util/Comparator;Lorg/apache/commons/collections4/functors/ComparatorPredicate$Criterion;)V
            areturn
        end local 2 // org.apache.commons.collections4.functors.ComparatorPredicate$Criterion criterion
        end local 1 // java.util.Comparator comparator
        end local 0 // java.lang.Object object
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0      object  TT;
            0    5     1  comparator  Ljava/util/Comparator<TT;>;
            0    5     2   criterion  Lorg/apache/commons/collections4/functors/ComparatorPredicate$Criterion;
    Signature: <T:Ljava/lang/Object;>(TT;Ljava/util/Comparator<TT;>;Lorg/apache/commons/collections4/functors/ComparatorPredicate$Criterion;)Lorg/apache/commons/collections4/Predicate<TT;>;
    MethodParameters:
            Name  Flags
      object      final
      comparator  final
      criterion   final

  public void <init>(T, java.util.Comparator<T>, org.apache.commons.collections4.functors.ComparatorPredicate$Criterion);
    descriptor: (Ljava/lang/Object;Ljava/util/Comparator;Lorg/apache/commons/collections4/functors/ComparatorPredicate$Criterion;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // org.apache.commons.collections4.functors.ComparatorPredicate this
        start local 1 // java.lang.Object object
        start local 2 // java.util.Comparator comparator
        start local 3 // org.apache.commons.collections4.functors.ComparatorPredicate$Criterion criterion
         0: .line 140
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 141
            aload 0 /* this */
            aload 1 /* object */
            putfield org.apache.commons.collections4.functors.ComparatorPredicate.object:Ljava/lang/Object;
         2: .line 142
            aload 0 /* this */
            aload 2 /* comparator */
            putfield org.apache.commons.collections4.functors.ComparatorPredicate.comparator:Ljava/util/Comparator;
         3: .line 143
            aload 0 /* this */
            aload 3 /* criterion */
            putfield org.apache.commons.collections4.functors.ComparatorPredicate.criterion:Lorg/apache/commons/collections4/functors/ComparatorPredicate$Criterion;
         4: .line 144
            return
        end local 3 // org.apache.commons.collections4.functors.ComparatorPredicate$Criterion criterion
        end local 2 // java.util.Comparator comparator
        end local 1 // java.lang.Object object
        end local 0 // org.apache.commons.collections4.functors.ComparatorPredicate this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Lorg/apache/commons/collections4/functors/ComparatorPredicate<TT;>;
            0    5     1      object  TT;
            0    5     2  comparator  Ljava/util/Comparator<TT;>;
            0    5     3   criterion  Lorg/apache/commons/collections4/functors/ComparatorPredicate$Criterion;
    Signature: (TT;Ljava/util/Comparator<TT;>;Lorg/apache/commons/collections4/functors/ComparatorPredicate$Criterion;)V
    MethodParameters:
            Name  Flags
      object      final
      comparator  final
      criterion   final

  public boolean evaluate();
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // org.apache.commons.collections4.functors.ComparatorPredicate this
        start local 1 // java.lang.Object target
         0: .line 167
            iconst_0
            istore 2 /* result */
        start local 2 // boolean result
         1: .line 168
            aload 0 /* this */
            getfield org.apache.commons.collections4.functors.ComparatorPredicate.comparator:Ljava/util/Comparator;
            aload 0 /* this */
            getfield org.apache.commons.collections4.functors.ComparatorPredicate.object:Ljava/lang/Object;
            aload 1 /* target */
            invokeinterface java.util.Comparator.compare:(Ljava/lang/Object;Ljava/lang/Object;)I
            istore 3 /* comparison */
        start local 3 // int comparison
         2: .line 169
            invokestatic org.apache.commons.collections4.functors.ComparatorPredicate.$SWITCH_TABLE$org$apache$commons$collections4$functors$ComparatorPredicate$Criterion:()[I
            aload 0 /* this */
            getfield org.apache.commons.collections4.functors.ComparatorPredicate.criterion:Lorg/apache/commons/collections4/functors/ComparatorPredicate$Criterion;
            invokevirtual org.apache.commons.collections4.functors.ComparatorPredicate$Criterion.ordinal:()I
            iaload
            tableswitch { // 1 - 5
                    1: 3
                    2: 7
                    3: 11
                    4: 15
                    5: 19
              default: 23
          }
         3: .line 171
      StackMap locals: int int
      StackMap stack:
            iload 3 /* comparison */
            ifne 4
            iconst_1
            goto 5
      StackMap locals:
      StackMap stack:
         4: iconst_0
      StackMap locals:
      StackMap stack: int
         5: istore 2 /* result */
         6: .line 172
            goto 24
         7: .line 174
      StackMap locals:
      StackMap stack:
            iload 3 /* comparison */
            ifle 8
            iconst_1
            goto 9
      StackMap locals:
      StackMap stack:
         8: iconst_0
      StackMap locals:
      StackMap stack: int
         9: istore 2 /* result */
        10: .line 175
            goto 24
        11: .line 177
      StackMap locals:
      StackMap stack:
            iload 3 /* comparison */
            ifge 12
            iconst_1
            goto 13
      StackMap locals:
      StackMap stack:
        12: iconst_0
      StackMap locals:
      StackMap stack: int
        13: istore 2 /* result */
        14: .line 178
            goto 24
        15: .line 180
      StackMap locals:
      StackMap stack:
            iload 3 /* comparison */
            iflt 16
            iconst_1
            goto 17
      StackMap locals:
      StackMap stack:
        16: iconst_0
      StackMap locals:
      StackMap stack: int
        17: istore 2 /* result */
        18: .line 181
            goto 24
        19: .line 183
      StackMap locals:
      StackMap stack:
            iload 3 /* comparison */
            ifgt 20
            iconst_1
            goto 21
      StackMap locals:
      StackMap stack:
        20: iconst_0
      StackMap locals:
      StackMap stack: int
        21: istore 2 /* result */
        22: .line 184
            goto 24
        23: .line 186
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "The current criterion '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.apache.commons.collections4.functors.ComparatorPredicate.criterion:Lorg/apache/commons/collections4/functors/ComparatorPredicate$Criterion;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "' is invalid."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        24: .line 189
      StackMap locals:
      StackMap stack:
            iload 2 /* result */
            ireturn
        end local 3 // int comparison
        end local 2 // boolean result
        end local 1 // java.lang.Object target
        end local 0 // org.apache.commons.collections4.functors.ComparatorPredicate this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   25     0        this  Lorg/apache/commons/collections4/functors/ComparatorPredicate<TT;>;
            0   25     1      target  TT;
            1   25     2      result  Z
            2   25     3  comparison  I
    Signature: (TT;)Z
    MethodParameters:
        Name  Flags
      target  final

  static int[] $SWITCH_TABLE$org$apache$commons$collections4$functors$ComparatorPredicate$Criterion();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 78
            getstatic org.apache.commons.collections4.functors.ComparatorPredicate.$SWITCH_TABLE$org$apache$commons$collections4$functors$ComparatorPredicate$Criterion:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic org.apache.commons.collections4.functors.ComparatorPredicate$Criterion.values:()[Lorg/apache/commons/collections4/functors/ComparatorPredicate$Criterion;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic org.apache.commons.collections4.functors.ComparatorPredicate$Criterion.EQUAL:Lorg/apache/commons/collections4/functors/ComparatorPredicate$Criterion;
            invokevirtual org.apache.commons.collections4.functors.ComparatorPredicate$Criterion.ordinal:()I
            iconst_1
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic org.apache.commons.collections4.functors.ComparatorPredicate$Criterion.GREATER:Lorg/apache/commons/collections4/functors/ComparatorPredicate$Criterion;
            invokevirtual org.apache.commons.collections4.functors.ComparatorPredicate$Criterion.ordinal:()I
            iconst_2
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic org.apache.commons.collections4.functors.ComparatorPredicate$Criterion.GREATER_OR_EQUAL:Lorg/apache/commons/collections4/functors/ComparatorPredicate$Criterion;
            invokevirtual org.apache.commons.collections4.functors.ComparatorPredicate$Criterion.ordinal:()I
            iconst_4
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic org.apache.commons.collections4.functors.ComparatorPredicate$Criterion.LESS:Lorg/apache/commons/collections4/functors/ComparatorPredicate$Criterion;
            invokevirtual org.apache.commons.collections4.functors.ComparatorPredicate$Criterion.ordinal:()I
            iconst_3
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            getstatic org.apache.commons.collections4.functors.ComparatorPredicate$Criterion.LESS_OR_EQUAL:Lorg/apache/commons/collections4/functors/ComparatorPredicate$Criterion;
            invokevirtual org.apache.commons.collections4.functors.ComparatorPredicate$Criterion.ordinal:()I
            iconst_5
            iastore
        15: goto 17
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        16: pop
      StackMap locals:
      StackMap stack:
        17: aload 0
            dup
            putstatic org.apache.commons.collections4.functors.ComparatorPredicate.$SWITCH_TABLE$org$apache$commons$collections4$functors$ComparatorPredicate$Criterion:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
          11    12      13  Class java.lang.NoSuchFieldError
          14    15      16  Class java.lang.NoSuchFieldError
}
Signature: <T:Ljava/lang/Object;>Ljava/lang/Object;Lorg/apache/commons/collections4/Predicate<TT;>;Ljava/io/Serializable;
SourceFile: "ComparatorPredicate.java"
NestMembers:
  org.apache.commons.collections4.functors.ComparatorPredicate$Criterion
InnerClasses:
  public final Criterion = org.apache.commons.collections4.functors.ComparatorPredicate$Criterion of org.apache.commons.collections4.functors.ComparatorPredicate