Package co.aikar.util
Class LoadingMap<K,V> 
java.lang.Object
java.util.AbstractMap<K,V>
 
co.aikar.util.LoadingMap<K,V> 
- Type Parameters:
- K- Key
- V- Value
- All Implemented Interfaces:
- Map<K,- V> 
Allows you to pass a Loader function that when a key is accessed that doesn't exists,
 automatically loads the entry into the map by calling the loader Function.
 .get() Will only return null if the Loader can return null.
 You may pass any backing Map to use.
 This class is not thread safe and should be wrapped with Collections.synchronizedMap on the OUTSIDE of the LoadingMap if needed.
 Do not wrap the backing map with Collections.synchronizedMap.
- 
Nested Class SummaryNested ClassesModifier and TypeClassDescriptionstatic classDue to java stuff, you will need to cast it to (Function) for some casesNested classes/interfaces inherited from class java.util.AbstractMapAbstractMap.SimpleEntry<K extends Object,V extends Object>, AbstractMap.SimpleImmutableEntry<K extends Object, V extends Object> 
- 
Constructor SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescriptionvoidclear()clone()booleancontainsKey(@Nullable Object key) booleancontainsValue(@Nullable Object value) entrySet()booleaninthashCode()booleanisEmpty()keySet()newAutoMap(@NotNull Map<K, V> backingMap, @NotNull Class<? extends V> valueClass) Creates a LoadingMap with an auto instantiating loader.newAutoMap(@NotNull Map<K, V> backingMap, @Nullable Class<? extends K> keyClass, @NotNull Class<? extends V> valueClass) Creates a LoadingMap with an auto instantiating loader.newHashAutoMap(@NotNull Class<? extends V> valueClass) newHashAutoMap(@NotNull Class<? extends V> valueClass, int initialCapacity, float loadFactor) newHashAutoMap(@Nullable Class<? extends K> keyClass, @NotNull Class<? extends V> valueClass) newHashAutoMap(@Nullable Class<? extends K> keyClass, @NotNull Class<? extends V> valueClass, int initialCapacity, float loadFactor) newHashMap(@NotNull Function<K, V> loader) Initializes an auto loading map using a HashMapnewHashMap(@NotNull Function<K, V> loader, int initialCapacity) Initializes an auto loading map using a HashMapnewHashMap(@NotNull Function<K, V> loader, int initialCapacity, float loadFactor) Initializes an auto loading map using a HashMapnewIdentityHashMap(@NotNull Function<K, V> loader) Initializes an auto loading map using an Identity HashMapnewIdentityHashMap(@NotNull Function<K, V> loader, int initialCapacity) Initializes an auto loading map using an Identity HashMapCreates a new LoadingMap with the specified map and loadervoidintsize()values()Methods inherited from class java.util.AbstractMaptoStringMethods inherited from class java.lang.Objectfinalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface java.util.Mapcompute, computeIfAbsent, computeIfPresent, forEach, getOrDefault, merge, putIfAbsent, remove, replace, replace, replaceAll
- 
Constructor Details- 
LoadingMapInitializes an auto loading map using specified loader and backing map- Parameters:
- backingMap- Map to wrap
- loader- Loader
 
 
- 
- 
Method Details- 
of@NotNull public static <K,V> @NotNull Map<K,V> of(@NotNull @NotNull Map<K, V> backingMap, @NotNull @NotNull Function<K, V> loader) Creates a new LoadingMap with the specified map and loader- Type Parameters:
- K- Key Type of the Map
- V- Value Type of the Map
- Parameters:
- backingMap- Actual map being used.
- loader- Loader to use
- Returns:
- Map
 
- 
newAutoMap@NotNull public static <K,V> @NotNull Map<K,V> newAutoMap(@NotNull @NotNull Map<K, V> backingMap, @Nullable @Nullable Class<? extends K> keyClass, @NotNull @NotNull Class<? extends V> valueClass) Creates a LoadingMap with an auto instantiating loader. Will auto construct class of of Value when not found Since this uses Reflection, It is more effecient to define your own static loader than using this helper, but if performance is not critical, this is easier.- Type Parameters:
- K- Key Type of the Map
- V- Value Type of the Map
- Parameters:
- backingMap- Actual map being used.
- keyClass- Class used for the K generic
- valueClass- Class used for the V generic
- Returns:
- Map that auto instantiates on .get()
 
- 
newAutoMap@NotNull public static <K,V> @NotNull Map<K,V> newAutoMap(@NotNull @NotNull Map<K, V> backingMap, @NotNull @NotNull Class<? extends V> valueClass) Creates a LoadingMap with an auto instantiating loader. Will auto construct class of of Value when not found Since this uses Reflection, It is more effecient to define your own static loader than using this helper, but if performance is not critical, this is easier.- Type Parameters:
- K- Key Type of the Map
- V- Value Type of the Map
- Parameters:
- backingMap- Actual map being used.
- valueClass- Class used for the V generic
- Returns:
- Map that auto instantiates on .get()
 
- 
newHashAutoMap@NotNull public static <K,V> @NotNull Map<K,V> newHashAutoMap(@Nullable @Nullable Class<? extends K> keyClass, @NotNull @NotNull Class<? extends V> valueClass) - Type Parameters:
- K- Key Type of the Map
- V- Value Type of the Map
- Parameters:
- keyClass- Class used for the K generic
- valueClass- Class used for the V generic
- Returns:
- Map that auto instantiates on .get()
- See Also:
 
- 
newHashAutoMap@NotNull public static <K,V> @NotNull Map<K,V> newHashAutoMap(@NotNull @NotNull Class<? extends V> valueClass) - Type Parameters:
- K- Key Type of the Map
- V- Value Type of the Map
- Parameters:
- valueClass- Class used for the V generic
- Returns:
- Map that auto instantiates on .get()
- See Also:
 
- 
newHashAutoMap@NotNull public static <K,V> @NotNull Map<K,V> newHashAutoMap(@Nullable @Nullable Class<? extends K> keyClass, @NotNull @NotNull Class<? extends V> valueClass, int initialCapacity, float loadFactor) - Type Parameters:
- K- Key Type of the Map
- V- Value Type of the Map
- Parameters:
- keyClass- Class used for the K generic
- valueClass- Class used for the V generic
- initialCapacity- Initial capacity to use
- loadFactor- Load factor to use
- Returns:
- Map that auto instantiates on .get()
- See Also:
 
- 
newHashAutoMap@NotNull public static <K,V> @NotNull Map<K,V> newHashAutoMap(@NotNull @NotNull Class<? extends V> valueClass, int initialCapacity, float loadFactor) - Type Parameters:
- K- Key Type of the Map
- V- Value Type of the Map
- Parameters:
- valueClass- Class used for the V generic
- initialCapacity- Initial capacity to use
- loadFactor- Load factor to use
- Returns:
- Map that auto instantiates on .get()
- See Also:
 
- 
newHashMapInitializes an auto loading map using a HashMap- Type Parameters:
- K- Key Type of the Map
- V- Value Type of the Map
- Parameters:
- loader- Loader to use
- Returns:
- Map
 
- 
newHashMap@NotNull public static <K,V> @NotNull Map<K,V> newHashMap(@NotNull @NotNull Function<K, V> loader, int initialCapacity) Initializes an auto loading map using a HashMap- Type Parameters:
- K- Key Type of the Map
- V- Value Type of the Map
- Parameters:
- loader- Loader to use
- initialCapacity- Initial capacity to use
- Returns:
- Map
 
- 
newHashMap@NotNull public static <K,V> @NotNull Map<K,V> newHashMap(@NotNull @NotNull Function<K, V> loader, int initialCapacity, float loadFactor) Initializes an auto loading map using a HashMap- Type Parameters:
- K- Key Type of the Map
- V- Value Type of the Map
- Parameters:
- loader- Loader to use
- initialCapacity- Initial capacity to use
- loadFactor- Load factor to use
- Returns:
- Map
 
- 
newIdentityHashMap@NotNull public static <K,V> @NotNull Map<K,V> newIdentityHashMap(@NotNull @NotNull Function<K, V> loader) Initializes an auto loading map using an Identity HashMap- Type Parameters:
- K- Key Type of the Map
- V- Value Type of the Map
- Parameters:
- loader- Loader to use
- Returns:
- Map
 
- 
newIdentityHashMap@NotNull public static <K,V> @NotNull Map<K,V> newIdentityHashMap(@NotNull @NotNull Function<K, V> loader, int initialCapacity) Initializes an auto loading map using an Identity HashMap- Type Parameters:
- K- Key Type of the Map
- V- Value Type of the Map
- Parameters:
- loader- Loader to use
- initialCapacity- Initial capacity to use
- Returns:
- Map
 
- 
sizepublic int size()
- 
isEmptypublic boolean isEmpty()
- 
containsKey- Specified by:
- containsKeyin interface- Map<K,- V> 
- Overrides:
- containsKeyin class- AbstractMap<K,- V> 
 
- 
containsValue- Specified by:
- containsValuein interface- Map<K,- V> 
- Overrides:
- containsValuein class- AbstractMap<K,- V> 
 
- 
get
- 
put
- 
remove
- 
putAll
- 
clearpublic void clear()
- 
keySet
- 
values
- 
equals
- 
hashCodepublic int hashCode()
- 
entrySet
- 
clone- Overrides:
- clonein class- AbstractMap<K,- V> 
 
 
-