Class ChainedComparator

java.lang.Object
org.moeaframework.core.comparator.ChainedComparator
All Implemented Interfaces:
DominanceComparator
Direct Known Subclasses:
LinearDominanceComparator, MinMaxDominanceComparator, NondominatedSortingComparator, ParetoDominanceComparator

public class ChainedComparator extends Object implements DominanceComparator
Applies any number of comparators in succession, returning the result from the first comparator producing a non-zero return value. If no comparators produce a non-zero return value, 0 is returned.

For example, the following:

   Comparator comparator = new ChainedComparator(comparator1, comparator2);
   return comparator.compare(s1, s2);
 
is equivalent to
   int flag1 = comparator1.compare(s1, s2);
   if (flag1 == 0) {
     return comparator2.compare(s1, s2);
   } else {
     return flag1;
   }
 
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    The comparators in the order they are to be applied.
  • Constructor Summary

    Constructors
    Constructor
    Description
    Constructs a chained comparator for applying the specified comparators in order, returning the result from the first comparator producing a non-zero return value.
  • Method Summary

    Modifier and Type
    Method
    Description
    int
    compare(Solution solution1, Solution solution2)
    Compares the two solutions using a dominance relation, returning -1 if solution1 dominates solution2, 1 if solution2 dominates solution1, and 0 if the solutions are non-dominated.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • comparators

      protected DominanceComparator[] comparators
      The comparators in the order they are to be applied.
  • Constructor Details

    • ChainedComparator

      public ChainedComparator(DominanceComparator... comparators)
      Constructs a chained comparator for applying the specified comparators in order, returning the result from the first comparator producing a non-zero return value. If no comparators produce a non-zero return value, 0 is returned.
      Parameters:
      comparators - the comparators in the order they are to be applied
  • Method Details

    • compare

      public int compare(Solution solution1, Solution solution2)
      Description copied from interface: DominanceComparator
      Compares the two solutions using a dominance relation, returning -1 if solution1 dominates solution2, 1 if solution2 dominates solution1, and 0 if the solutions are non-dominated.
      Specified by:
      compare in interface DominanceComparator
      Parameters:
      solution1 - the first solution
      solution2 - the second solution
      Returns:
      -1 if solution1 dominates solution2, 1 if solution2 dominates solution1, and 0 if the solutions are non-dominated