Package com.google.common.collect
Class MutableClassToInstanceMap<B>
- java.lang.Object
-
- com.google.common.collect.ForwardingObject
-
- com.google.common.collect.ForwardingMap<java.lang.Class<? extends B>,B>
-
- com.google.common.collect.MutableClassToInstanceMap<B>
-
- All Implemented Interfaces:
ClassToInstanceMap<B>,java.io.Serializable,java.util.Map<java.lang.Class<? extends B>,B>
public final class MutableClassToInstanceMap<B> extends ForwardingMap<java.lang.Class<? extends B>,B> implements ClassToInstanceMap<B>, java.io.Serializable
A mutable class-to-instance map backed by an arbitrary user-provided map. See alsoImmutableClassToInstanceMap.See the Guava User Guide article on
ClassToInstanceMap.- Since:
- 2.0
- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static classMutableClassToInstanceMap.SerializedForm<B>Serialized form of the map, to avoid serializing the constraint.-
Nested classes/interfaces inherited from class com.google.common.collect.ForwardingMap
ForwardingMap.StandardEntrySet, ForwardingMap.StandardKeySet, ForwardingMap.StandardValues
-
-
Constructor Summary
Constructors Modifier Constructor Description privateMutableClassToInstanceMap(java.util.Map<java.lang.Class<? extends B>,B> delegate)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private static <B,T extends B>
Tcast(java.lang.Class<T> type, B value)private static <B> java.util.Map.Entry<java.lang.Class<? extends B>,B>checkedEntry(java.util.Map.Entry<java.lang.Class<? extends B>,B> entry)Wraps thesetValueimplementation of anEntryto enforce the class constraint.static <B> MutableClassToInstanceMap<B>create()Returns a newMutableClassToInstanceMapinstance backed by aHashMapusing the default initial capacity and load factor.static <B> MutableClassToInstanceMap<B>create(java.util.Map<java.lang.Class<? extends B>,B> backingMap)Returns a newMutableClassToInstanceMapinstance backed by a given emptybackingMap.protected java.util.Map<java.lang.Class<? extends B>,B>delegate()Returns the backing delegate instance that methods are forwarded to.java.util.Set<java.util.Map.Entry<java.lang.Class<? extends B>,B>>entrySet()<T extends B>
TgetInstance(java.lang.Class<T> type)Returns the value the specified class is mapped to, ornullif no entry for this class is present.Bput(java.lang.Class<? extends B> key, B value)voidputAll(java.util.Map<? extends java.lang.Class<? extends B>,? extends B> map)<T extends B>
TputInstance(java.lang.Class<T> type, T value)Maps the specified class to the specified value.private java.lang.ObjectwriteReplace()-
Methods inherited from class com.google.common.collect.ForwardingMap
clear, containsKey, containsValue, equals, get, hashCode, isEmpty, keySet, remove, size, standardClear, standardContainsKey, standardContainsValue, standardEquals, standardHashCode, standardIsEmpty, standardPutAll, standardRemove, standardToString, values
-
Methods inherited from class com.google.common.collect.ForwardingObject
toString
-
-
-
-
Method Detail
-
create
public static <B> MutableClassToInstanceMap<B> create()
Returns a newMutableClassToInstanceMapinstance backed by aHashMapusing the default initial capacity and load factor.
-
create
public static <B> MutableClassToInstanceMap<B> create(java.util.Map<java.lang.Class<? extends B>,B> backingMap)
Returns a newMutableClassToInstanceMapinstance backed by a given emptybackingMap. The caller surrenders control of the backing map, and thus should not allow any direct references to it to remain accessible.
-
delegate
protected java.util.Map<java.lang.Class<? extends B>,B> delegate()
Description copied from class:ForwardingObjectReturns the backing delegate instance that methods are forwarded to. Abstract subclasses generally override this method with an abstract method that has a more specific return type, such asForwardingSet.delegate(). Concrete subclasses override this method to supply the instance being decorated.- Specified by:
delegatein classForwardingMap<java.lang.Class<? extends B>,B>
-
checkedEntry
private static <B> java.util.Map.Entry<java.lang.Class<? extends B>,B> checkedEntry(java.util.Map.Entry<java.lang.Class<? extends B>,B> entry)
Wraps thesetValueimplementation of anEntryto enforce the class constraint.
-
putInstance
public <T extends B> T putInstance(java.lang.Class<T> type, T value)
Description copied from interface:ClassToInstanceMapMaps the specified class to the specified value. Does not associate this value with any of the class's supertypes.- Specified by:
putInstancein interfaceClassToInstanceMap<B>- Returns:
- the value previously associated with this class (possibly
null), ornullif there was no previous entry.
-
getInstance
public <T extends B> T getInstance(java.lang.Class<T> type)
Description copied from interface:ClassToInstanceMapReturns the value the specified class is mapped to, ornullif no entry for this class is present. This will only return a value that was bound to this specific class, not a value that may have been bound to a subtype.- Specified by:
getInstancein interfaceClassToInstanceMap<B>
-
cast
private static <B,T extends B> T cast(java.lang.Class<T> type, B value)
-
writeReplace
private java.lang.Object writeReplace()
-
-