T
- bound service type.abstract class AbstractBindingBuilder<T> extends java.lang.Object implements ServiceBindingBuilder<T>, NamedBindingBuilder<T>, ScopedBindingBuilder<T>, ScopedNamedBindingBuilder<T>
Modifier and Type | Class and Description |
---|---|
private static class |
AbstractBindingBuilder.ClassBasedBindingBuilder<T> |
private static class |
AbstractBindingBuilder.FactoryInstanceBasedBindingBuilder<T> |
private static class |
AbstractBindingBuilder.FactoryTypeBasedBindingBuilder<T> |
private static class |
AbstractBindingBuilder.InstanceBasedBindingBuilder<T> |
Modifier and Type | Field and Description |
---|---|
(package private) java.lang.String |
analyzer
Analyzer to use with this descriptor
|
(package private) java.util.Set<java.lang.reflect.Type> |
contracts
Contracts the service should be bound to.
|
(package private) HK2Loader |
loader
Bound service loader.
|
(package private) MultiMap<java.lang.String,java.lang.String> |
metadata
Binding metadata (e.g.
|
(package private) java.lang.String |
name
Binding name (see @Named).
|
(package private) java.lang.Boolean |
proxiable
Injectee is proxiable.
|
(package private) java.lang.Boolean |
proxyForSameScope
Injectee should be proxied even inside the same scope
|
(package private) java.util.Set<java.lang.annotation.Annotation> |
qualifiers
Qualifiers (other than @Named).
|
(package private) java.lang.Integer |
ranked
Binding rank.
|
(package private) java.lang.Class<? extends java.lang.annotation.Annotation> |
scope
Binding scope.
|
(package private) java.lang.annotation.Annotation |
scopeAnnotation
Binding scope as annotation
|
Constructor and Description |
---|
AbstractBindingBuilder() |
Modifier and Type | Method and Description |
---|---|
AbstractBindingBuilder<T> |
analyzeWith(java.lang.String analyzer)
Set the name of the
ClassAnalyzer on the binding. |
(package private) abstract void |
complete(DynamicConfiguration configuration,
HK2Loader defaultLoader)
Build the binding descriptor and bind it in the
dynamic configuration . |
(package private) static <T> AbstractBindingBuilder<T> |
create(java.lang.Class<T> serviceType,
boolean bindAsContract)
Create a new service binding builder.
|
(package private) static <T> AbstractBindingBuilder<T> |
create(T service)
Create a new service binding builder.
|
(package private) static <T> AbstractBindingBuilder<T> |
create(TypeLiteral<T> serviceType,
boolean bindAsContract)
Create a new service binding builder.
|
(package private) static <T> AbstractBindingBuilder<T> |
createFactoryBinder(java.lang.Class<? extends Factory<T>> factoryType,
java.lang.Class<? extends java.lang.annotation.Annotation> factoryScope)
Create a new service binding builder.
|
(package private) static <T> AbstractBindingBuilder<T> |
createFactoryBinder(Factory<T> factory)
Create a new service binding builder.
|
AbstractBindingBuilder<T> |
in(java.lang.annotation.Annotation scopeAnnotation)
Scope a binding.
|
AbstractBindingBuilder<T> |
in(java.lang.Class<? extends java.lang.annotation.Annotation> scopeAnnotation)
Scope a binding.
|
AbstractBindingBuilder<T> |
loadedBy(HK2Loader loader)
Custom HK2 loader to be used when service class is about to be loaded.
|
AbstractBindingBuilder<T> |
named(java.lang.String name)
Name the binding. |
AbstractBindingBuilder<T> |
proxy(boolean proxiable)
Set proxy flag on the binding.
|
AbstractBindingBuilder<T> |
proxyForSameScope(boolean proxyForSameScope)
Set proxyForSameScope flag on the binding
|
AbstractBindingBuilder<T> |
qualifiedBy(java.lang.annotation.Annotation annotation)
Add a binding qualifier annotation.
|
void |
ranked(int rank)
Rank the binding.
|
AbstractBindingBuilder<T> |
to(java.lang.Class<? super T> contract)
Bind a new contract to a service.
|
AbstractBindingBuilder<T> |
to(java.lang.reflect.Type contract)
Bind a new contract to a service.
|
AbstractBindingBuilder<T> |
to(TypeLiteral<?> contract)
Bind a new contract to a service.
|
AbstractBindingBuilder<T> |
withMetadata(java.lang.String key,
java.util.List<java.lang.String> values)
Add binding descriptor metadata.
|
AbstractBindingBuilder<T> |
withMetadata(java.lang.String key,
java.lang.String value)
Add binding descriptor metadata.
|
java.util.Set<java.lang.reflect.Type> contracts
HK2Loader loader
final MultiMap<java.lang.String,java.lang.String> metadata
java.util.Set<java.lang.annotation.Annotation> qualifiers
java.lang.annotation.Annotation scopeAnnotation
java.lang.Class<? extends java.lang.annotation.Annotation> scope
java.lang.Integer ranked
java.lang.String name
java.lang.Boolean proxiable
java.lang.Boolean proxyForSameScope
java.lang.String analyzer
public AbstractBindingBuilder<T> proxy(boolean proxiable)
ServiceBindingBuilder
proxy
in interface NamedBindingBuilder<T>
proxy
in interface ScopedBindingBuilder<T>
proxy
in interface ScopedNamedBindingBuilder<T>
proxy
in interface ServiceBindingBuilder<T>
proxiable
- flag to determine if the binding should be proxiable.public AbstractBindingBuilder<T> proxyForSameScope(boolean proxyForSameScope)
ServiceBindingBuilder
proxyForSameScope
in interface ScopedBindingBuilder<T>
proxyForSameScope
in interface ServiceBindingBuilder<T>
proxyForSameScope
- flag to determine if proxies should be generated
even within the same scopepublic AbstractBindingBuilder<T> analyzeWith(java.lang.String analyzer)
ServiceBindingBuilder
ClassAnalyzer
on the binding.analyzeWith
in interface ScopedBindingBuilder<T>
analyzeWith
in interface ScopedNamedBindingBuilder<T>
analyzeWith
in interface ServiceBindingBuilder<T>
analyzer
- The name of the analyzer that should be used. May be null
to indicate the default class analzyerpublic AbstractBindingBuilder<T> to(java.lang.Class<? super T> contract)
ServiceBindingBuilder
to
in interface NamedBindingBuilder<T>
to
in interface ScopedBindingBuilder<T>
to
in interface ScopedNamedBindingBuilder<T>
to
in interface ServiceBindingBuilder<T>
contract
- contract type.public AbstractBindingBuilder<T> to(TypeLiteral<?> contract)
ServiceBindingBuilder
to
in interface NamedBindingBuilder<T>
to
in interface ScopedBindingBuilder<T>
to
in interface ScopedNamedBindingBuilder<T>
to
in interface ServiceBindingBuilder<T>
contract
- contract type.public AbstractBindingBuilder<T> to(java.lang.reflect.Type contract)
ServiceBindingBuilder
to
in interface ServiceBindingBuilder<T>
contract
- contract type.public AbstractBindingBuilder<T> loadedBy(HK2Loader loader)
ServiceBindingBuilder
loadedBy
in interface NamedBindingBuilder<T>
loadedBy
in interface ScopedBindingBuilder<T>
loadedBy
in interface ScopedNamedBindingBuilder<T>
loadedBy
in interface ServiceBindingBuilder<T>
loader
- custom service loader.public AbstractBindingBuilder<T> withMetadata(java.lang.String key, java.lang.String value)
ServiceBindingBuilder
filter
binding
descriptors. If this is for Factory
descriptors the metadata
will be placed on both the Factory as a service and on the
Factories Factory.provide()
methodwithMetadata
in interface NamedBindingBuilder<T>
withMetadata
in interface ScopedBindingBuilder<T>
withMetadata
in interface ScopedNamedBindingBuilder<T>
withMetadata
in interface ServiceBindingBuilder<T>
key
- metadata key.value
- metadata value.public AbstractBindingBuilder<T> withMetadata(java.lang.String key, java.util.List<java.lang.String> values)
ServiceBindingBuilder
filter
binding
descriptors. If this is for Factory
descriptors the metadata
will be placed on both the Factory as a service and on the
Factories Factory.provide()
methodwithMetadata
in interface NamedBindingBuilder<T>
withMetadata
in interface ScopedBindingBuilder<T>
withMetadata
in interface ScopedNamedBindingBuilder<T>
withMetadata
in interface ServiceBindingBuilder<T>
key
- metadata key.values
- metadata values.public AbstractBindingBuilder<T> qualifiedBy(java.lang.annotation.Annotation annotation)
ServiceBindingBuilder
Factory
then both the
Factory Service and the Factory.provide()
method will get the qualifierqualifiedBy
in interface NamedBindingBuilder<T>
qualifiedBy
in interface ScopedBindingBuilder<T>
qualifiedBy
in interface ScopedNamedBindingBuilder<T>
qualifiedBy
in interface ServiceBindingBuilder<T>
annotation
- qualifier annotation.public AbstractBindingBuilder<T> in(java.lang.annotation.Annotation scopeAnnotation)
ServiceBindingBuilder
in
in interface ServiceBindingBuilder<T>
scopeAnnotation
- scope annotation.public AbstractBindingBuilder<T> in(java.lang.Class<? extends java.lang.annotation.Annotation> scopeAnnotation)
ServiceBindingBuilder
in
in interface NamedBindingBuilder<T>
in
in interface ServiceBindingBuilder<T>
scopeAnnotation
- scope annotation.public AbstractBindingBuilder<T> named(java.lang.String name)
ServiceBindingBuilder
Name
the binding.named
in interface ScopedBindingBuilder<T>
named
in interface ServiceBindingBuilder<T>
name
- new name value.public void ranked(int rank)
ServiceBindingBuilder
iterable provider
for a contract.ranked
in interface NamedBindingBuilder<T>
ranked
in interface ScopedBindingBuilder<T>
ranked
in interface ScopedNamedBindingBuilder<T>
ranked
in interface ServiceBindingBuilder<T>
rank
- binding rank to be used to resolve ordering in case of multiple services
are bound to the same contract.abstract void complete(DynamicConfiguration configuration, HK2Loader defaultLoader)
dynamic configuration
.configuration
- dynamic binding configuration.defaultLoader
- default HK2 loader that should be used in case a custom loader
was not set.static <T> AbstractBindingBuilder<T> create(java.lang.Class<T> serviceType, boolean bindAsContract)
T
- service type.serviceType
- service class.bindAsContract
- if true
, the service class will be bound as one of the contracts.static <T> AbstractBindingBuilder<T> create(TypeLiteral<T> serviceType, boolean bindAsContract)
T
- service type.serviceType
- generic service type.bindAsContract
- if true
, the service class will be bound as one of the contracts.static <T> AbstractBindingBuilder<T> create(T service)
service
- service instance.static <T> AbstractBindingBuilder<T> createFactoryBinder(Factory<T> factory)
factory
- service factory instance.static <T> AbstractBindingBuilder<T> createFactoryBinder(java.lang.Class<? extends Factory<T>> factoryType, java.lang.Class<? extends java.lang.annotation.Annotation> factoryScope)
factoryType
- service factory class.factoryScope
- service factory scope.