Class TypeComparators


  • public class TypeComparators
    extends TypeHolder<java.util.Comparator<?>>
    An internal holder of the comparators for type. It is used to store comparators for registered classes. When looking for a Comparator for a given class the holder returns the most relevant comparator.
    • Field Detail

      • DOUBLE_COMPARATOR_PRECISION

        private static final double DOUBLE_COMPARATOR_PRECISION
        See Also:
        Constant Field Values
      • DEFAULT_DOUBLE_COMPARATOR

        private static final DoubleComparator DEFAULT_DOUBLE_COMPARATOR
      • FLOAT_COMPARATOR_PRECISION

        private static final float FLOAT_COMPARATOR_PRECISION
        See Also:
        Constant Field Values
      • DEFAULT_FLOAT_COMPARATOR

        private static final FloatComparator DEFAULT_FLOAT_COMPARATOR
      • DEFAULT_PATH_COMPARATOR

        private static final java.util.Comparator<java.nio.file.Path> DEFAULT_PATH_COMPARATOR
    • Constructor Detail

      • TypeComparators

        public TypeComparators()
    • Method Detail

      • defaultTypeComparators

        public static TypeComparators defaultTypeComparators()
      • getComparatorForType

        public java.util.Comparator<?> getComparatorForType​(java.lang.Class<?> clazz)
        This method returns the most relevant comparator for the given class. The most relevant comparator is the comparator which is registered for the class that is closest in the inheritance chain of the given clazz. The order of checks is the following: 1. If there is a registered comparator for clazz then this one is used 2. We check if there is a registered comparator for a superclass of clazz 3. We check if there is a registered comparator for an interface of clazz
        Parameters:
        clazz - the class for which to find a comparator
        Returns:
        the most relevant comparator, or null if no comparator could be found
      • hasComparatorForType

        public boolean hasComparatorForType​(java.lang.Class<?> type)
        Checks, whether an any custom comparator is associated with the giving type.
        Parameters:
        type - the type for which to check a comparator
        Returns:
        is the giving type associated with any custom comparator
      • registerComparator

        public <T> void registerComparator​(java.lang.Class<T> clazz,
                                           java.util.Comparator<? super T> comparator)
        Puts the comparator for the given clazz.
        Type Parameters:
        T - the type of the objects for the comparator
        Parameters:
        clazz - the class for the comparator
        comparator - the comparator itself
      • comparatorByTypes

        public java.util.stream.Stream<java.util.Map.Entry<java.lang.Class<?>,​java.util.Comparator<?>>> comparatorByTypes()
        Returns a sequence of all type-comparator pairs which the current holder supplies.
        Returns:
        sequence of field-comparator pairs