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
- KeyV
- Value
- All Implemented Interfaces:
Map<K,
V>
Deprecated, for removal: This API element is subject to removal in a future version.
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 Summary
Modifier and TypeClassDescriptionstatic class
Deprecated, for removal: This API element is subject to removal in a future version.Due to java stuff, you will need to cast it to (Function) for some casesNested classes/interfaces inherited from class java.util.AbstractMap
AbstractMap.SimpleEntry<K extends Object,
V extends Object>, AbstractMap.SimpleImmutableEntry<K extends Object, V extends Object> -
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
clear()
Deprecated, for removal: This API element is subject to removal in a future version.clone()
Deprecated, for removal: This API element is subject to removal in a future version.boolean
containsKey
(@Nullable Object key) Deprecated, for removal: This API element is subject to removal in a future version.boolean
containsValue
(@Nullable Object value) Deprecated, for removal: This API element is subject to removal in a future version.entrySet()
Deprecated, for removal: This API element is subject to removal in a future version.boolean
Deprecated, for removal: This API element is subject to removal in a future version.Deprecated, for removal: This API element is subject to removal in a future version.int
hashCode()
Deprecated, for removal: This API element is subject to removal in a future version.boolean
isEmpty()
Deprecated, for removal: This API element is subject to removal in a future version.keySet()
Deprecated, for removal: This API element is subject to removal in a future version.newAutoMap
(@NotNull Map<K, V> backingMap, @NotNull Class<? extends V> valueClass) Deprecated, for removal: This API element is subject to removal in a future version.Creates a LoadingMap with an auto instantiating loader.newAutoMap
(@NotNull Map<K, V> backingMap, @Nullable Class<? extends K> keyClass, @NotNull Class<? extends V> valueClass) Deprecated, for removal: This API element is subject to removal in a future version.Creates a LoadingMap with an auto instantiating loader.newHashAutoMap
(@NotNull Class<? extends V> valueClass) Deprecated, for removal: This API element is subject to removal in a future version.newHashAutoMap
(@NotNull Class<? extends V> valueClass, int initialCapacity, float loadFactor) Deprecated, for removal: This API element is subject to removal in a future version.newHashAutoMap
(@Nullable Class<? extends K> keyClass, @NotNull Class<? extends V> valueClass) Deprecated, for removal: This API element is subject to removal in a future version.newHashAutoMap
(@Nullable Class<? extends K> keyClass, @NotNull Class<? extends V> valueClass, int initialCapacity, float loadFactor) Deprecated, for removal: This API element is subject to removal in a future version.newHashMap
(@NotNull Function<K, V> loader) Deprecated, for removal: This API element is subject to removal in a future version.Initializes an auto loading map using a HashMapnewHashMap
(@NotNull Function<K, V> loader, int initialCapacity) Deprecated, for removal: This API element is subject to removal in a future version.Initializes an auto loading map using a HashMapnewHashMap
(@NotNull Function<K, V> loader, int initialCapacity, float loadFactor) Deprecated, for removal: This API element is subject to removal in a future version.Initializes an auto loading map using a HashMapnewIdentityHashMap
(@NotNull Function<K, V> loader) Deprecated, for removal: This API element is subject to removal in a future version.Initializes an auto loading map using an Identity HashMapnewIdentityHashMap
(@NotNull Function<K, V> loader, int initialCapacity) Deprecated, for removal: This API element is subject to removal in a future version.Initializes an auto loading map using an Identity HashMapDeprecated, for removal: This API element is subject to removal in a future version.Creates a new LoadingMap with the specified map and loaderDeprecated, for removal: This API element is subject to removal in a future version.void
Deprecated, for removal: This API element is subject to removal in a future version.Deprecated, for removal: This API element is subject to removal in a future version.int
size()
Deprecated, for removal: This API element is subject to removal in a future version.values()
Deprecated, for removal: This API element is subject to removal in a future version.Methods inherited from class java.util.AbstractMap
toString
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface java.util.Map
compute, computeIfAbsent, computeIfPresent, forEach, getOrDefault, merge, putIfAbsent, remove, replace, replace, replaceAll
-
Constructor Details
-
LoadingMap
Deprecated, for removal: This API element is subject to removal in a future version.Initializes an auto loading map using specified loader and backing map- Parameters:
backingMap
- Map to wraploader
- 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) Deprecated, for removal: This API element is subject to removal in a future version.Creates a new LoadingMap with the specified map and loader- Type Parameters:
K
- Key Type of the MapV
- 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) Deprecated, for removal: This API element is subject to removal in a future version.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 MapV
- Value Type of the Map- Parameters:
backingMap
- Actual map being used.keyClass
- Class used for the K genericvalueClass
- 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) Deprecated, for removal: This API element is subject to removal in a future version.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 MapV
- 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) Deprecated, for removal: This API element is subject to removal in a future version.- Type Parameters:
K
- Key Type of the MapV
- Value Type of the Map- Parameters:
keyClass
- Class used for the K genericvalueClass
- 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) Deprecated, for removal: This API element is subject to removal in a future version.- Type Parameters:
K
- Key Type of the MapV
- 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) Deprecated, for removal: This API element is subject to removal in a future version.- Type Parameters:
K
- Key Type of the MapV
- Value Type of the Map- Parameters:
keyClass
- Class used for the K genericvalueClass
- Class used for the V genericinitialCapacity
- Initial capacity to useloadFactor
- 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) Deprecated, for removal: This API element is subject to removal in a future version.- Type Parameters:
K
- Key Type of the MapV
- Value Type of the Map- Parameters:
valueClass
- Class used for the V genericinitialCapacity
- Initial capacity to useloadFactor
- Load factor to use- Returns:
- Map that auto instantiates on .get()
- See Also:
-
newHashMap
Deprecated, for removal: This API element is subject to removal in a future version.Initializes an auto loading map using a HashMap- Type Parameters:
K
- Key Type of the MapV
- 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) Deprecated, for removal: This API element is subject to removal in a future version.Initializes an auto loading map using a HashMap- Type Parameters:
K
- Key Type of the MapV
- Value Type of the Map- Parameters:
loader
- Loader to useinitialCapacity
- 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) Deprecated, for removal: This API element is subject to removal in a future version.Initializes an auto loading map using a HashMap- Type Parameters:
K
- Key Type of the MapV
- Value Type of the Map- Parameters:
loader
- Loader to useinitialCapacity
- Initial capacity to useloadFactor
- Load factor to use- Returns:
- Map
-
newIdentityHashMap
@NotNull public static <K,V> @NotNull Map<K,V> newIdentityHashMap(@NotNull @NotNull Function<K, V> loader) Deprecated, for removal: This API element is subject to removal in a future version.Initializes an auto loading map using an Identity HashMap- Type Parameters:
K
- Key Type of the MapV
- 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) Deprecated, for removal: This API element is subject to removal in a future version.Initializes an auto loading map using an Identity HashMap- Type Parameters:
K
- Key Type of the MapV
- Value Type of the Map- Parameters:
loader
- Loader to useinitialCapacity
- Initial capacity to use- Returns:
- Map
-
size
public int size()Deprecated, for removal: This API element is subject to removal in a future version. -
isEmpty
public boolean isEmpty()Deprecated, for removal: This API element is subject to removal in a future version. -
containsKey
Deprecated, for removal: This API element is subject to removal in a future version.- Specified by:
containsKey
in interfaceMap<K,
V> - Overrides:
containsKey
in classAbstractMap<K,
V>
-
containsValue
Deprecated, for removal: This API element is subject to removal in a future version.- Specified by:
containsValue
in interfaceMap<K,
V> - Overrides:
containsValue
in classAbstractMap<K,
V>
-
get
Deprecated, for removal: This API element is subject to removal in a future version. -
put
Deprecated, for removal: This API element is subject to removal in a future version. -
remove
Deprecated, for removal: This API element is subject to removal in a future version. -
putAll
Deprecated, for removal: This API element is subject to removal in a future version. -
clear
public void clear()Deprecated, for removal: This API element is subject to removal in a future version. -
keySet
Deprecated, for removal: This API element is subject to removal in a future version. -
values
Deprecated, for removal: This API element is subject to removal in a future version. -
equals
Deprecated, for removal: This API element is subject to removal in a future version. -
hashCode
public int hashCode()Deprecated, for removal: This API element is subject to removal in a future version. -
entrySet
Deprecated, for removal: This API element is subject to removal in a future version. -
clone
Deprecated, for removal: This API element is subject to removal in a future version.- Overrides:
clone
in classAbstractMap<K,
V>
-