Class ImmutableClassToInstanceMap<B>

java.lang.Object
com.google.common.collect.ForwardingObject
com.google.common.collect.ForwardingMap<Class<? extends @NonNull B>,B>
com.google.common.collect.ImmutableClassToInstanceMap<B>
All Implemented Interfaces:
ClassToInstanceMap<B>, Serializable, Map<Class<? extends B>,B>

A ClassToInstanceMap whose contents will never change, with many other important properties detailed at ImmutableCollection.
Since:
2.0
Author:
Kevin Bourrillion
See Also:
  • Method Details

    • of

      public static <B> ImmutableClassToInstanceMap<B> of()
      Returns an empty ImmutableClassToInstanceMap.

      Performance note: the instance returned is a singleton.

      Since:
      19.0
    • of

      public static <B, T extends B> ImmutableClassToInstanceMap<B> of(Class<T> type, T value)
      Returns an ImmutableClassToInstanceMap containing a single entry.
      Since:
      19.0
    • builder

      Returns a new builder. The generated builder is equivalent to the builder created by the ImmutableClassToInstanceMap.Builder constructor.
    • copyOf

      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.

      Throws:
      NullPointerException - if any key or value in map is null
      ClassCastException - if any value is not an instance of the type specified by its key
    • delegate

      protected Map<Class<? 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<Class<? extends @NonNull B>,B>
    • getInstance

      public <T extends B> @Nullable T getInstance(Class<T> type)
      Description copied from interface: 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.
      Specified by:
      getInstance in interface ClassToInstanceMap<B>
    • putInstance

      @CanIgnoreReturnValue @Deprecated public <T extends B> @Nullable T putInstance(Class<T> type, T value)
      Deprecated.
      Unsupported operation.
      Guaranteed to throw an exception and leave the map unmodified.
      Specified by:
      putInstance in interface ClassToInstanceMap<B>
      Returns:
      the value previously associated with this class (possibly null), or null if there was no previous entry.
      Throws:
      UnsupportedOperationException - always