Package dev.hypera.chameleon.extension
Class ExtensionMap
- java.lang.Object
-
- java.util.AbstractMap<K,V>
-
- java.util.concurrent.ConcurrentHashMap<Class<? extends ChameleonExtension>,Pair<ChameleonPlatformExtension,Collection<ChameleonExtensionDependency>>>
-
- dev.hypera.chameleon.extension.ExtensionMap
-
- All Implemented Interfaces:
Serializable,ConcurrentMap<Class<? extends ChameleonExtension>,Pair<ChameleonPlatformExtension,Collection<ChameleonExtensionDependency>>>,Map<Class<? extends ChameleonExtension>,Pair<ChameleonPlatformExtension,Collection<ChameleonExtensionDependency>>>
@Internal public final class ExtensionMap extends ConcurrentHashMap<Class<? extends ChameleonExtension>,Pair<ChameleonPlatformExtension,Collection<ChameleonExtensionDependency>>>
Extension map.- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class java.util.concurrent.ConcurrentHashMap
ConcurrentHashMap.KeySetView<K extends Object,V extends Object>
-
Nested 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
Constructors Constructor Description ExtensionMap()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description <T extends ChameleonExtension>
Optional<T>getExtension(Class<T> key)Get the extension with the given class.@NotNull List<ChameleonPlatformExtension>loadSort()Attempt to sort all extensions to be loaded by Chameleon in dependency order, using a depth-first search.-
Methods inherited from class java.util.concurrent.ConcurrentHashMap
clear, compute, computeIfAbsent, computeIfPresent, contains, containsKey, containsValue, elements, entrySet, equals, forEach, forEach, forEach, forEachEntry, forEachEntry, forEachKey, forEachKey, forEachValue, forEachValue, get, getOrDefault, hashCode, isEmpty, keys, keySet, keySet, mappingCount, merge, newKeySet, newKeySet, put, putAll, putIfAbsent, reduce, reduceEntries, reduceEntries, reduceEntriesToDouble, reduceEntriesToInt, reduceEntriesToLong, reduceKeys, reduceKeys, reduceKeysToDouble, reduceKeysToInt, reduceKeysToLong, reduceToDouble, reduceToInt, reduceToLong, reduceValues, reduceValues, reduceValuesToDouble, reduceValuesToInt, reduceValuesToLong, remove, remove, replace, replace, replaceAll, search, searchEntries, searchKeys, searchValues, size, toString, values
-
Methods inherited from class java.util.AbstractMap
clone
-
-
-
-
Method Detail
-
getExtension
@Contract(value="_ -> _", pure=true) public <T extends ChameleonExtension> Optional<T> getExtension(Class<T> key)Get the extension with the given class.- Type Parameters:
T- Extension type.- Parameters:
key- Extension class.- Returns:
- extension.
-
loadSort
@NotNull public @NotNull List<ChameleonPlatformExtension> loadSort()
Attempt to sort all extensions to be loaded by Chameleon in dependency order, using a depth-first search.- Returns:
- sorted extensions.
- Throws:
ChameleonExtensionException- if a circular dependency was detected.
-
-