public static final class ImmutableClassToInstanceMap.Builder<B> extends 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.
Constructor and Description |
---|
Builder() |
Modifier and Type | Method and Description |
---|---|
ImmutableClassToInstanceMap<B> |
build()
Returns a new immutable class-to-instance map containing the entries provided to this builder.
|
<T extends B> |
put(Class<T> key,
T value)
Associates
key with value in the built map. |
<T extends B> |
putAll(Map<? extends Class<? extends T>,? extends T> map)
Associates all of
map's keys and values in the built map. |
public <T extends B> ImmutableClassToInstanceMap.Builder<B> put(Class<T> key, T value)
Associates key
with value
in the built map. Duplicate keys are not allowed, and will cause build()
to fail.
public <T extends B> ImmutableClassToInstanceMap.Builder<B> putAll(Map<? extends Class<? extends T>,? extends T> map)
Associates all of map's
keys and values in the built map. Duplicate keys are not allowed, and will cause build()
to fail.
NullPointerException
- if any key or value in map
is nullClassCastException
- if any value is not an instance of the type specified by its keypublic ImmutableClassToInstanceMap<B> build()
Returns a new immutable class-to-instance map containing the entries provided to this builder.
IllegalArgumentException
- if duplicate keys were added