public final class ImmutableClassToInstanceMap<B> extends ForwardingMap<Class<? extends B>,B> implements ClassToInstanceMap<B>, Serializable
A ClassToInstanceMap
whose contents will never change, with many other important properties detailed at ImmutableCollection
.
Modifier and Type | Class and Description |
---|---|
static class |
ImmutableClassToInstanceMap.Builder<B>
A builder for creating immutable class-to-instance maps.
|
ForwardingMap.StandardEntrySet, ForwardingMap.StandardKeySet, ForwardingMap.StandardValues
Modifier and Type | Method and Description |
---|---|
static <B> ImmutableClassToInstanceMap.Builder<B> |
builder()
Returns a new builder.
|
static <B,S extends B> |
copyOf(Map<? extends Class<? extends S>,? extends S> map)
Returns an immutable map containing the same entries as
map . |
protected Map<Class<? extends B>,B> |
delegate()
Returns the backing delegate instance that methods are forwarded to.
|
<T extends B> |
getInstance(Class<T> type)
Returns the value the specified class is mapped to, or
null if no entry for this class is present. |
static <B> ImmutableClassToInstanceMap<B> |
of()
Returns an empty
ImmutableClassToInstanceMap . |
static <B,T extends B> |
of(Class<T> type,
T value)
Returns an
ImmutableClassToInstanceMap containing a single entry. |
<T extends B> |
putInstance(Class<T> type,
T value)
Deprecated.
Unsupported operation.
|
clear, containsKey, containsValue, entrySet, equals, get, hashCode, isEmpty, keySet, put, putAll, remove, size, standardClear, standardContainsKey, standardContainsValue, standardEquals, standardHashCode, standardIsEmpty, standardPutAll, standardRemove, standardToString, values
toString
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
clear, compute, computeIfAbsent, computeIfPresent, containsKey, containsValue, entrySet, equals, forEach, get, getOrDefault, hashCode, isEmpty, keySet, merge, put, putAll, putIfAbsent, remove, remove, replace, replace, replaceAll, size, values
public static <B> ImmutableClassToInstanceMap<B> of()
Returns an empty ImmutableClassToInstanceMap
.
public static <B,T extends B> ImmutableClassToInstanceMap<B> of(Class<T> type, T value)
Returns an ImmutableClassToInstanceMap
containing a single entry.
public static <B> ImmutableClassToInstanceMap.Builder<B> builder()
Returns a new builder. The generated builder is equivalent to the builder created by the ImmutableClassToInstanceMap.Builder
constructor.
public static <B,S extends B> ImmutableClassToInstanceMap<B> copyOf(Map<? extends Class<? extends S>,? extends S> map)
Returns an immutable map containing the same entries as map
. If map
somehow contains entries with duplicate keys (for example, if it is a SortedMap
whose comparator is not consistent with equals), the results of this method are undefined.
Note: Despite what the method name suggests, if map
is an ImmutableClassToInstanceMap
, no copy will actually be performed.
NullPointerException
- if any key or value in map
is nullClassCastException
- if any value is not an instance of the type specified by its keyprotected Map<Class<? extends B>,B> delegate()
ForwardingObject
Returns 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 as ForwardingSet.delegate()
. Concrete subclasses override this method to supply the instance being decorated.
delegate
in class ForwardingMap<Class<? extends B>,B>
@Nullable public <T extends B> T getInstance(Class<T> type)
ClassToInstanceMap
Returns the value the specified class is mapped to, or null
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>
@Deprecated public <T extends B> T putInstance(Class<T> type, T value)
Guaranteed to throw an exception and leave the map unmodified.
putInstance
in interface ClassToInstanceMap<B>
null
), or null
if there was no previous entry.UnsupportedOperationException
- always