Package org.glassfish.hk2.utilities
Interface ActiveDescriptorBuilder
-
- All Known Implementing Classes:
ActiveDescriptorBuilderImpl
public interface ActiveDescriptorBuilder
The active descriptor build is for building up a non-reified ActiveDescriptor. Non-reified active descriptors are useful because upon bind the system will not do further analysis of the associated class file, assuming instead that all the information from the ActiveDescriptor is what the user intended. This can be used to supply qualifiers that are not marked withQualifier
or contracts that are not marked withContract
. An unreified ActiveDescriptor given to a bind method need not implement the create or destroy method, as they are automatically created and destroyed by the system.- Author:
- jwells
-
-
Method Summary
All Methods Instance Methods Abstract Methods Deprecated Methods Modifier and Type Method Description ActiveDescriptorBuilder
analyzeWith(String serviceName)
Call this if the descriptor should be analyzed with theClassAnalyzer
service of the given nameActiveDescriptorBuilder
andLoadWith(HK2Loader loader)
Call this if this descriptor should be loaded with the given HK2LoaderActiveDescriptorBuilder
asType(Type t)
Call this if the parameterized type of the implementation class is known.<T> AbstractActiveDescriptor<T>
build()
Generates a descriptor that can be used in binding operations<T> AbstractActiveDescriptor<T>
buildFactory()
Deprecated.Use buildProvideMethod instead<T> AbstractActiveDescriptor<T>
buildProvideMethod()
Generates a descriptor that can be used in binding operations that describes a factorys provide methodActiveDescriptorBuilder
has(String key, String value)
An instance of data to be associated with this descriptorActiveDescriptorBuilder
has(String key, List<String> values)
An instance of data to be associated with this descriptorActiveDescriptorBuilder
in(Annotation scope)
A scope to be associated with this descriptor object.ActiveDescriptorBuilder
in(Class<? extends Annotation> scope)
A scope to be associated with this descriptor object.ActiveDescriptorBuilder
localOnly()
This will cause the descriptorVisibility field of the returned descriptor to return LOCALActiveDescriptorBuilder
named(String name)
The name for this descriptor object.ActiveDescriptorBuilder
ofRank(int rank)
The rank to be associated with this descriptor.ActiveDescriptorBuilder
proxy()
This will cause the isProxiable field of the returned descriptor to return true (it will force this descriptor to use proxies).ActiveDescriptorBuilder
proxy(boolean forceProxy)
This will cause the isProxiable field of the returned descriptor to return the given value.ActiveDescriptorBuilder
proxyForSameScope()
This will cause the isProxyForSameScope field of the returned descriptor to return true (it will force this descriptor to use proxies even when injecting into the same scope).ActiveDescriptorBuilder
proxyForSameScope(boolean forceProxyForSameScope)
This will cause the isProxyForSameScope field of the returned descriptor to return the given value.ActiveDescriptorBuilder
qualifiedBy(Annotation annotation)
A qualifier to be associated with this descriptor objectActiveDescriptorBuilder
to(Type contract)
A contract to be associated with this descriptor object.ActiveDescriptorBuilder
visibility(DescriptorVisibility visibility)
This will set the descriptorVisibility field of the returned descriptor
-
-
-
Method Detail
-
named
ActiveDescriptorBuilder named(String name) throws IllegalArgumentException
The name for this descriptor object. Note that at the current time a descriptor can only have one name, hence this method will throw an IllegalArgumentException if named is called more than once.- Parameters:
name
- The name to be associated with this Descriptor- Returns:
- A DescriptorBuilder with the given name
- Throws:
IllegalArgumentException
- if there is more than one name on the predicate
-
to
ActiveDescriptorBuilder to(Type contract) throws IllegalArgumentException
A contract to be associated with this descriptor object.- Parameters:
contract
- A class that is annotated with Contract to be associated with this Descriptor- Returns:
- A DescriptorBuilder with the given name
- Throws:
IllegalArgumentException
- on failures
-
in
ActiveDescriptorBuilder in(Annotation scope) throws IllegalArgumentException
A scope to be associated with this descriptor object. Note that at the current time a descriptor can only have one scope, hence this method will throw an IllegalArgumentException if in is called more than once.- Parameters:
scope
- The class of the scope this descriptor is to have.- Returns:
- A DescriptorBuilder with the given scope
- Throws:
IllegalArgumentException
- If in is called more than once
-
in
ActiveDescriptorBuilder in(Class<? extends Annotation> scope) throws IllegalArgumentException
A scope to be associated with this descriptor object. Note that at the current time a descriptor can only have one scope, hence this method will throw an IllegalArgumentException if in is called more than once.- Parameters:
scope
- The class of the scope this descriptor is to have.- Returns:
- A DescriptorBuilder with the given scope
- Throws:
IllegalArgumentException
- If in is called more than once
-
qualifiedBy
ActiveDescriptorBuilder qualifiedBy(Annotation annotation) throws IllegalArgumentException
A qualifier to be associated with this descriptor object- Parameters:
annotation
- The annotation to be associated with this descriptor- Returns:
- A DescriptorBuilder with the given annotation
- Throws:
IllegalArgumentException
- on failures
-
has
ActiveDescriptorBuilder has(String key, String value) throws IllegalArgumentException
An instance of data to be associated with this descriptor- Parameters:
key
- The key for the data to be associated with this descriptorvalue
- The value this key should take (single value metadata)- Returns:
- A DescriptorBuilder with the given metadata
- Throws:
IllegalArgumentException
-
has
ActiveDescriptorBuilder has(String key, List<String> values) throws IllegalArgumentException
An instance of data to be associated with this descriptor- Parameters:
key
- The key for the data to be associated with this descriptorvalues
- The values this key should take (single value metadata)- Returns:
- A DescriptorBuilder with the given metadata
- Throws:
IllegalArgumentException
-
ofRank
ActiveDescriptorBuilder ofRank(int rank)
The rank to be associated with this descriptor. The last rank bound wins- Parameters:
rank
- The rank to be associated with this descriptor.- Returns:
- A DescriptorBuilder with the given rank
-
localOnly
ActiveDescriptorBuilder localOnly()
This will cause the descriptorVisibility field of the returned descriptor to return LOCAL- Returns:
- A DescriptorBuilder with the descriptorVisibility field to be set to LOCAL
-
visibility
ActiveDescriptorBuilder visibility(DescriptorVisibility visibility)
This will set the descriptorVisibility field of the returned descriptor- Parameters:
visibility
- The non-null visibility that this descriptor should take- Returns:
- A DescriptorBuilder with the descriptorVisibility field set to the input value
-
proxy
ActiveDescriptorBuilder proxy()
This will cause the isProxiable field of the returned descriptor to return true (it will force this descriptor to use proxies).- Returns:
- A DescriptorBuilder with the proxiable field set to true
-
proxy
ActiveDescriptorBuilder proxy(boolean forceProxy)
This will cause the isProxiable field of the returned descriptor to return the given value.- Parameters:
forceProxy
- if true then this descriptor will be proxied, if false then this descriptor will NOT be proxied- Returns:
- A DescriptorBuilder with the proxiable field set to the given value
-
proxyForSameScope
ActiveDescriptorBuilder proxyForSameScope()
This will cause the isProxyForSameScope field of the returned descriptor to return true (it will force this descriptor to use proxies even when injecting into the same scope).- Returns:
- A DescriptorBuilder with the proxyForSameScope field set to true
-
proxyForSameScope
ActiveDescriptorBuilder proxyForSameScope(boolean forceProxyForSameScope)
This will cause the isProxyForSameScope field of the returned descriptor to return the given value.- Parameters:
forceProxyForSameScope
- if true then this descriptor will be proxied even if the scope of the injectee is the same, if false then this descriptor will NOT be proxied, even if the scope of the injectee is the same- Returns:
- A DescriptorBuilder with the proxyForSameScope field set to the given value
-
andLoadWith
ActiveDescriptorBuilder andLoadWith(HK2Loader loader) throws IllegalArgumentException
Call this if this descriptor should be loaded with the given HK2Loader- Parameters:
loader
- The loader to use with this descriptor- Returns:
- A DescriptorBuilder with the given HK2Loader
- Throws:
IllegalArgumentException
- if the HK2Loader is set non-null more than once
-
analyzeWith
ActiveDescriptorBuilder analyzeWith(String serviceName)
Call this if the descriptor should be analyzed with theClassAnalyzer
service of the given name- Parameters:
serviceName
- the name of theClassAnalyzer
service that should be used to analyze this service- Returns:
- A DescriptorBuilder with the given analysis service
-
asType
ActiveDescriptorBuilder asType(Type t)
Call this if the parameterized type of the implementation class is known. This may be called with any Type, but only a ParameterizedType based on the implementationClass will work- Parameters:
t
- The non-null ParameterizedType describing the implementation- Returns:
- A DescriptorBuilder with the given implementationType
-
build
<T> AbstractActiveDescriptor<T> build() throws IllegalArgumentException
Generates a descriptor that can be used in binding operations- Returns:
- The descriptor that has been built up
- Throws:
IllegalArgumentException
- if the built descriptor is invalid
-
buildFactory
@Deprecated <T> AbstractActiveDescriptor<T> buildFactory() throws IllegalArgumentException
Deprecated.Use buildProvideMethod insteadGenerates a descriptor that can be used in binding operations that describes a factorys provide method- Returns:
- The descriptor that has been built up, of type PROVIDE_METHOD
- Throws:
IllegalArgumentException
- if the built descriptor is invalid
-
buildProvideMethod
<T> AbstractActiveDescriptor<T> buildProvideMethod() throws IllegalArgumentException
Generates a descriptor that can be used in binding operations that describes a factorys provide method- Returns:
- The descriptor that has been built up, of type PROVIDE_METHOD
- Throws:
IllegalArgumentException
- if the built descriptor is invalid
-
-