## com.google.common.reflect
Class MutableTypeToInstanceMap<B>

    java.lang.Object
      com.google.common.collect.ForwardingObject
          com.google.common.collect.ForwardingMap<TypeToken<? extends B>,B>
              com.google.common.reflect.MutableTypeToInstanceMap<B>

All Implemented Interfaces:
  TypeToInstanceMap<B>, Map<TypeToken<? extends B>,B>

    @Beta
    public final class MutableTypeToInstanceMap<B>

extends ForwardingMap<TypeToken<? extends B>,B>
implements TypeToInstanceMap<B>

A mutable type-to-instance map. See also `ImmutableTypeToInstanceMap`.

Since:
  13.0
Author:
  Ben Yu

Nested Class Summary

Nested classes/interfaces inherited from class com.google.common.collect.ForwardingMap
`ForwardingMap.StandardEntrySet, ForwardingMap.StandardKeySet, ForwardingMap.StandardValues`

Nested classes/interfaces inherited from interface java.util.Map
`Map.Entry<K,V>`

Constructor Summary
`MutableTypeToInstanceMap()`

Method Summary
`protected Map<TypeToken<? extends B>,B>` `delegate()` Returns the backing delegate instance that methods are forwarded to.

`

`<T extends B> T`

`

`getInstance(Class<T> type)`
Returns the value the specified class is mapped to, or `null` if no entry for this class is present.

`

`<T extends B> T`

`

`getInstance(TypeToken<T> type)`
Returns the value the specified type is mapped to, or `null` if no entry for this type is present.

`B` `put(TypeToken<? extends B> key, B value)` Not supported.
`void` `putAll(Map<? extends TypeToken<? extends B>,? extends B> map)` Not supported.

`

`<T extends B> T`

`

`putInstance(Class<T> type, T value)`
Maps the specified class to the specified value.

`

`<T extends B> T`

`

`putInstance(TypeToken<T> type, T value)`
Maps the specified type to the specified value.

Methods inherited from class com.google.common.collect.ForwardingMap
`clear, containsKey, containsValue, entrySet, 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`

Methods inherited from class java.lang.Object
`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

Methods inherited from interface java.util.Map
`clear, containsKey, containsValue, entrySet, equals, get, hashCode, isEmpty, keySet, remove, size, values`

Constructor Detail

### MutableTypeToInstanceMap

    public MutableTypeToInstanceMap()

Method Detail

### getInstance

    @Nullable
    public <T extends B> T getInstance(Class<T> type)

  Description copied from interface: `TypeToInstanceMap`
  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(Foo.class)` is equivalent to `getInstance(TypeToken.of(Foo.class))`.

  Specified by:
    `getInstance` in interface `TypeToInstanceMap<B>`

### putInstance

    @Nullable
    public <T extends B> T putInstance(Class<T> type,
                                                @Nullable
                                                T value)

  Description copied from interface: `TypeToInstanceMap`
  Maps the specified class to the specified value. Does not associate this value with any of the class's supertypes.

  `putInstance(Foo.class, foo)` is equivalent to `putInstance(TypeToken.of(Foo.class), foo)`.

  Specified by:
    `putInstance` in interface `TypeToInstanceMap<B>`
  Returns:
    the value previously associated with this class (possibly `null`), or `null` if there was no previous entry.

### getInstance

    @Nullable
    public <T extends B> T getInstance(TypeToken<T> type)

  Description copied from interface: `TypeToInstanceMap`
  Returns the value the specified type is mapped to, or `null` if no entry for this type is present. This will only return a value that was bound to this specific type, not a value that may have been bound to a subtype.

  Specified by:
    `getInstance` in interface `TypeToInstanceMap<B>`

### putInstance

    @Nullable
    public <T extends B> T putInstance(TypeToken<T> type,
                                                @Nullable
                                                T value)

  Description copied from interface: `TypeToInstanceMap`
  Maps the specified type to the specified value. Does not associate this value with any of the type's supertypes.

  Specified by:
    `putInstance` in interface `TypeToInstanceMap<B>`
  Returns:
    the value previously associated with this type (possibly `null`), or `null` if there was no previous entry.

### put

    public B put(TypeToken<? extends B> key,
                 B value)

  Not supported. Use `putInstance(java.lang.Class<T>, T)` instead.

  Specified by:
    `put` in interface `Map<TypeToken<? extends B>,B>`
  Overrides:
    `put` in class `ForwardingMap<TypeToken<? extends B>,B>`

### putAll

    public void putAll(Map<? extends TypeToken<? extends B>,? extends B> map)

  Not supported. Use `putInstance(java.lang.Class<T>, T)` instead.

  Specified by:
    `putAll` in interface `Map<TypeToken<? extends B>,B>`
  Overrides:
    `putAll` in class `ForwardingMap<TypeToken<? extends B>,B>`

### delegate

    protected Map<TypeToken<? extends B>,B> delegate()

  Description copied from class: `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.

  Specified by:
    `delegate` in class `ForwardingMap<TypeToken<? extends B>,B>`

Copyright © 2010-2012. All Rights Reserved.