Package org.apache.sshd.common.util
Class MapEntryUtils
- java.lang.Object
-
- org.apache.sshd.common.util.MapEntryUtils
-
public final class MapEntryUtils extends java.lang.Object
Represents an un-modifiable pair of values
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
MapEntryUtils.EnumMapBuilder<K extends java.lang.Enum<K>,V>
static class
MapEntryUtils.GenericMapPopulator<K,V,M extends java.util.Map<K,V>>
static class
MapEntryUtils.MapBuilder<K,V>
static class
MapEntryUtils.NavigableMapBuilder<K,V>
-
Field Summary
Fields Modifier and Type Field Description private static java.util.Comparator<java.util.Map.Entry<java.lang.Comparable,?>>
BY_KEY_COMPARATOR
private static java.util.function.Supplier
CASE_INSENSITIVE_MAP_FACTORY
-
Constructor Summary
Constructors Modifier Constructor Description private
MapEntryUtils()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static <K extends java.lang.Comparable<K>,V>
java.util.Comparator<java.util.Map.Entry<K,V>>byKeyEntryComparator()
static <V> java.util.function.Supplier<java.util.NavigableMap<java.lang.String,V>>
caseInsensitiveMap()
static <K,V,M extends java.util.Map<V,K>>
MflipMap(java.util.Map<? extends K,? extends V> map, java.util.function.Supplier<? extends M> mapCreator, boolean allowDuplicates)
Flips between keys and values of an input mapstatic boolean
isEmpty(java.util.Map<?,?> m)
static boolean
isNotEmpty(java.util.Map<?,?> m)
static <K,V,M extends java.util.Map<K,V>>
MmapValues(java.util.function.Function<? super V,? extends K> keyMapper, java.util.function.Supplier<? extends M> mapCreator, java.util.Collection<? extends V> values)
Creates a map out of a group of valuesstatic <K,V,M extends java.util.Map<K,V>>
MmapValues(java.util.function.Function<? super V,? extends K> keyMapper, java.util.function.Supplier<? extends M> mapCreator, V... values)
static int
size(java.util.Map<?,?> m)
static <T> java.util.function.BinaryOperator<T>
throwingMerger()
static <T,K,U>
java.util.NavigableMap<K,U>toSortedMap(java.lang.Iterable<? extends T> values, java.util.function.Function<? super T,? extends K> keyMapper, java.util.function.Function<? super T,? extends U> valueMapper, java.util.Comparator<? super K> comparator)
static <T,K,U>
java.util.stream.Collector<T,?,java.util.NavigableMap<K,U>>toSortedMap(java.util.function.Function<? super T,? extends K> keyMapper, java.util.function.Function<? super T,? extends U> valueMapper, java.util.Comparator<? super K> comparator)
-
-
-
Method Detail
-
byKeyEntryComparator
public static <K extends java.lang.Comparable<K>,V> java.util.Comparator<java.util.Map.Entry<K,V>> byKeyEntryComparator()
- Type Parameters:
K
- TheComparable
key typeV
- The associated entry value- Returns:
- A
Comparator
forMap.Entry
-ies that compares the key values
-
size
public static int size(java.util.Map<?,?> m)
-
isEmpty
public static boolean isEmpty(java.util.Map<?,?> m)
-
isNotEmpty
public static boolean isNotEmpty(java.util.Map<?,?> m)
-
caseInsensitiveMap
public static <V> java.util.function.Supplier<java.util.NavigableMap<java.lang.String,V>> caseInsensitiveMap()
- Type Parameters:
V
- Type of mapped value- Returns:
- A
Supplier
that returns a newNavigableMap
whenever itsget()
method is invoked
-
flipMap
public static <K,V,M extends java.util.Map<V,K>> M flipMap(java.util.Map<? extends K,? extends V> map, java.util.function.Supplier<? extends M> mapCreator, boolean allowDuplicates)
Flips between keys and values of an input map- Type Parameters:
K
- Original map key typeV
- Original map value typeM
- Flipped map type- Parameters:
map
- The original map to flipmapCreator
- The creator of the target mapallowDuplicates
- Whether to ignore duplicates on flip- Returns:
- The flipped map result
- Throws:
java.lang.IllegalArgumentException
- if allowDuplicates isfalse
and a duplicate value found in the original map.
-
mapValues
@SafeVarargs public static <K,V,M extends java.util.Map<K,V>> M mapValues(java.util.function.Function<? super V,? extends K> keyMapper, java.util.function.Supplier<? extends M> mapCreator, V... values)
-
mapValues
public static <K,V,M extends java.util.Map<K,V>> M mapValues(java.util.function.Function<? super V,? extends K> keyMapper, java.util.function.Supplier<? extends M> mapCreator, java.util.Collection<? extends V> values)
Creates a map out of a group of values- Type Parameters:
K
- The key typeV
- The value typeM
- The resultMap
type- Parameters:
keyMapper
- TheFunction
that generates a key for a given value. If the returned key isnull
then the value is not mappedmapCreator
- TheSupplier
used to create/retrieve the result map - provided non-empty group of valuesvalues
- The values to be mapped- Returns:
- The resulting
Map
- Note: no validation is made to ensure that 2 (or more) values are not mapped to the same key
-
toSortedMap
public static <T,K,U> java.util.NavigableMap<K,U> toSortedMap(java.lang.Iterable<? extends T> values, java.util.function.Function<? super T,? extends K> keyMapper, java.util.function.Function<? super T,? extends U> valueMapper, java.util.Comparator<? super K> comparator)
-
toSortedMap
public static <T,K,U> java.util.stream.Collector<T,?,java.util.NavigableMap<K,U>> toSortedMap(java.util.function.Function<? super T,? extends K> keyMapper, java.util.function.Function<? super T,? extends U> valueMapper, java.util.Comparator<? super K> comparator)
-
throwingMerger
public static <T> java.util.function.BinaryOperator<T> throwingMerger()
-
-