Class PreferExplicitOrderComparator
java.lang.Object
net.shibboleth.idp.consent.logic.impl.PreferExplicitOrderComparator
- All Implemented Interfaces:
Comparator<String>
public class PreferExplicitOrderComparator extends Object implements Comparator<String>
Comparator which prefers to order strings according to the order in which they appear in a list, and which falls back
to natural ordering for strings not present in the list.
Relies on Guava's
Ordering.explicit(List)
to compare strings present in the list. Strings not present in the
list are treated as greater than strings present in the list and are compared according to their natural ordering.
Does not support comparing null values. Is not serializable, and such should not be used as part of a TreeMap, for
example, which is serialized.-
Field Summary
Fields Modifier and Type Field Description private List<String>
explicitOrder
Strings in order.private Ordering<String>
explicitOrdering
Explicit ordering. -
Constructor Summary
Constructors Constructor Description PreferExplicitOrderComparator(List<String> order)
Constructor. -
Method Summary
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface java.util.Comparator
equals, reversed, thenComparing, thenComparing, thenComparing, thenComparingDouble, thenComparingInt, thenComparingLong
-
Field Details
-
explicitOrdering
Explicit ordering. -
explicitOrder
Strings in order.
-
-
Constructor Details
-
PreferExplicitOrderComparator
Constructor.- Parameters:
order
- the desired order, null and empty strings are ignored, duplicates are removed
-
-
Method Details
-
compare
- Specified by:
compare
in interfaceComparator<String>
- Throws:
NullPointerException
- if either argument is null
-