Package com.google.common.collect
Class ImmutableClassToInstanceMap.Builder<B>
- java.lang.Object
-
- com.google.common.collect.ImmutableClassToInstanceMap.Builder<B>
-
- Enclosing class:
- ImmutableClassToInstanceMap<B>
public static final class ImmutableClassToInstanceMap.Builder<B> extends java.lang.Object
A builder for creating immutable class-to-instance maps. Example:static final ImmutableClassToInstanceMap<Handler> HANDLERS = new ImmutableClassToInstanceMap.Builder<Handler>() .put(FooHandler.class, new FooHandler()) .put(BarHandler.class, new SubBarHandler()) .put(Handler.class, new QuuxHandler()) .build();
After invoking
build()
it is still possible to add more entries and build again. Thus each map generated by this builder will be a superset of any map generated before it.- Since:
- 2.0
-
-
Field Summary
Fields Modifier and Type Field Description private ImmutableMap.Builder<java.lang.Class<? extends B>,B>
mapBuilder
-
Constructor Summary
Constructors Constructor Description Builder()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description ImmutableClassToInstanceMap<B>
build()
Returns a new immutable class-to-instance map containing the entries provided to this builder.private static <B,T extends B>
Tcast(java.lang.Class<T> type, B value)
<T extends B>
ImmutableClassToInstanceMap.Builder<B>put(java.lang.Class<T> key, T value)
Associateskey
withvalue
in the built map.<T extends B>
ImmutableClassToInstanceMap.Builder<B>putAll(java.util.Map<? extends java.lang.Class<? extends T>,? extends T> map)
Associates all ofmap's
keys and values in the built map.
-
-
-
Field Detail
-
mapBuilder
private final ImmutableMap.Builder<java.lang.Class<? extends B>,B> mapBuilder
-
-
Method Detail
-
put
public <T extends B> ImmutableClassToInstanceMap.Builder<B> put(java.lang.Class<T> key, T value)
Associateskey
withvalue
in the built map. Duplicate keys are not allowed, and will causebuild()
to fail.
-
putAll
public <T extends B> ImmutableClassToInstanceMap.Builder<B> putAll(java.util.Map<? extends java.lang.Class<? extends T>,? extends T> map)
Associates all ofmap's
keys and values in the built map. Duplicate keys are not allowed, and will causebuild()
to fail.- Throws:
java.lang.NullPointerException
- if any key or value inmap
is nulljava.lang.ClassCastException
- if any value is not an instance of the type specified by its key
-
cast
private static <B,T extends B> T cast(java.lang.Class<T> type, B value)
-
build
public ImmutableClassToInstanceMap<B> build()
Returns a new immutable class-to-instance map containing the entries provided to this builder.- Throws:
java.lang.IllegalArgumentException
- if duplicate keys were added
-
-