public final class MutableClassToInstanceMap<B> extends ForwardingMap<java.lang.Class<? extends B>,B> implements ClassToInstanceMap<B>, java.io.Serializable
ImmutableClassToInstanceMap.
See the Guava User Guide article on ClassToInstanceMap.
This implementation does support null values, despite how it is annotated; see
discussion at ClassToInstanceMap.
| Modifier and Type | Class and Description |
|---|---|
private static class |
MutableClassToInstanceMap.SerializedForm<B>
Serialized form of the map, to avoid serializing the constraint.
|
ForwardingMap.StandardEntrySet, ForwardingMap.StandardKeySet, ForwardingMap.StandardValues| Modifier and Type | Field and Description |
|---|---|
private java.util.Map<java.lang.Class<? extends B>,B> |
delegate |
| Modifier | Constructor and Description |
|---|---|
private |
MutableClassToInstanceMap(java.util.Map<java.lang.Class<? extends B>,B> delegate) |
| Modifier and Type | Method and Description |
|---|---|
private static <B,T extends B> |
cast(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 the
setValue implementation of an Entry to enforce the class constraint. |
static <B> MutableClassToInstanceMap<B> |
create()
Returns a new
MutableClassToInstanceMap instance backed by a HashMap using the
default initial capacity and load factor. |
static <B> MutableClassToInstanceMap<B> |
create(java.util.Map<java.lang.Class<? extends B>,B> backingMap)
Returns a new
MutableClassToInstanceMap instance backed by a given empty backingMap. |
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> |
getInstance(java.lang.Class<T> type)
Returns the value the specified class is mapped to, or
null if no entry for this class
is present. |
B |
put(java.lang.Class<? extends B> key,
B value) |
void |
putAll(java.util.Map<? extends java.lang.Class<? extends B>,? extends B> map) |
<T extends B> |
putInstance(java.lang.Class<T> type,
T value)
Maps the specified class to the specified value.
|
private java.lang.Object |
writeReplace() |
clear, containsKey, containsValue, equals, get, hashCode, isEmpty, keySet, remove, size, standardClear, standardContainsKey, standardContainsValue, standardEquals, standardHashCode, standardIsEmpty, standardPutAll, standardRemove, standardToString, valuestoStringpublic static <B> MutableClassToInstanceMap<B> create()
MutableClassToInstanceMap instance backed by a HashMap using the
default initial capacity and load factor.public static <B> MutableClassToInstanceMap<B> create(java.util.Map<java.lang.Class<? extends B>,B> backingMap)
MutableClassToInstanceMap instance backed by a given empty backingMap. The caller surrenders control of the backing map, and thus should not allow any
direct references to it to remain accessible.protected java.util.Map<java.lang.Class<? extends B>,B> delegate()
ForwardingObjectForwardingSet.delegate(). Concrete subclasses override this method to supply the
instance being decorated.delegate in class ForwardingMap<java.lang.Class<? extends B>,B>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)
setValue implementation of an Entry to enforce the class constraint.@CheckForNull public <T extends B> T putInstance(java.lang.Class<T> type, T value)
ClassToInstanceMapputInstance in interface ClassToInstanceMap<B>null), or null if there was no previous entry.@CheckForNull public <T extends B> T getInstance(java.lang.Class<T> type)
ClassToInstanceMapnull if 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.getInstance in interface ClassToInstanceMap<B>@CheckForNull
private static <B,T extends B> T cast(java.lang.Class<T> type,
@CheckForNull
B value)
private java.lang.Object writeReplace()