T
- The fully qualified type of the set, including Set. For example: MultibinderBinding<Set<Boolean>>
public interface MultibinderBinding<T>
Although Multibinders may be injected through a variety of generic types (Set<V>
and
Collection<Provider<V>>
), a MultibinderBinding exists only on the Binding associated with
the Set<V>
key. Injectable types can be discovered using getSetKey()
(which will
return the Set<V>
key), orgetAlternateSetKeys()
(which will return the other keys
that can inject this data). Other bindings can be validated to be derived from this
MultibinderBinding using containsElement(Element)
.
Modifier and Type | Method and Description |
---|---|
boolean |
containsElement(Element element)
Returns true if this Multibinder uses the given Element.
|
Set<Key<?>> |
getAlternateSetKeys()
Returns the keys of other bindings that represent this set.
|
List<Binding<?>> |
getElements()
Returns all bindings that make up the set.
|
TypeLiteral<?> |
getElementTypeLiteral()
Returns the TypeLiteral that describes the type of elements in the set.
|
Key<T> |
getSetKey()
Returns the key for the set.
|
boolean |
permitsDuplicates()
Returns true if the multibinder permits duplicates.
|
Set<Key<?>> getAlternateSetKeys()
Collection<com.google.inject.Provider<V>>
and Collection<javax.inject.Provider<V>>
.TypeLiteral<?> getElementTypeLiteral()
The elements will always match the type Set's generic type. For example, if getSetKey
returns a key of Set<String>
, then this will always return a
TypeLiteral<String>
.
List<Binding<?>> getElements()
UnsupportedOperationException
if it is called on an element
retrieved from Elements.getElements(com.google.inject.Module...)
.
The elements will always match the type Set's generic type. For example, if getSetKey
returns a key of Set<String>
, then this will always return a list of type
List<Binding<String>>
.
boolean permitsDuplicates()
UnsupportedOperationException
if it is called on a
MultibinderBinding retrieved from Elements.getElements(com.google.inject.Module...)
.boolean containsElement(Element element)
Elements.getElements(com.google.inject.Module...)
.
Usually this is only necessary if you are working with elements retrieved from modules (without
an Injector), otherwise getElements()
and permitsDuplicates()
are better options.
If you need to introspect the details of the set, such as the values or if it permits
duplicates, it is necessary to pass the elements through an Injector and use getElements()
and permitsDuplicates()
.
Copyright © 2006–2020 Google, Inc.. All rights reserved.