Package org.glassfish.hk2.internal
Class ActiveDescriptorBuilderImpl
- java.lang.Object
-
- org.glassfish.hk2.internal.ActiveDescriptorBuilderImpl
-
- All Implemented Interfaces:
ActiveDescriptorBuilder
public class ActiveDescriptorBuilderImpl extends java.lang.Object implements ActiveDescriptorBuilder
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static classActiveDescriptorBuilderImpl.BuiltActiveDescriptor<T>
-
Field Summary
Fields Modifier and Type Field Description private java.lang.StringclassAnalysisNameprivate java.util.HashSet<java.lang.reflect.Type>contractsprivate java.lang.Class<?>implementationprivate java.lang.reflect.TypeimplementationTypeprivate HK2Loaderloaderprivate java.util.HashMap<java.lang.String,java.util.List<java.lang.String>>metadatasprivate java.lang.Stringnameprivate java.lang.Booleanproxyprivate java.lang.BooleanproxyForSameScopeprivate java.util.HashSet<java.lang.annotation.Annotation>qualifiersprivate intrankprivate java.lang.Class<? extends java.lang.annotation.Annotation>scopeprivate java.lang.annotation.AnnotationscopeAnnotationprivate DescriptorVisibilityvisibility
-
Constructor Summary
Constructors Constructor Description ActiveDescriptorBuilderImpl(java.lang.Class<?> implementation)constructor with the impl class
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description ActiveDescriptorBuilderanalyzeWith(java.lang.String serviceName)Call this if the descriptor should be analyzed with theClassAnalyzerservice of the given nameActiveDescriptorBuilderandLoadWith(HK2Loader loader)Call this if this descriptor should be loaded with the given HK2LoaderActiveDescriptorBuilderasType(java.lang.reflect.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.<T> AbstractActiveDescriptor<T>buildProvideMethod()Generates a descriptor that can be used in binding operations that describes a factorys provide methodActiveDescriptorBuilderhas(java.lang.String key, java.lang.String value)An instance of data to be associated with this descriptorActiveDescriptorBuilderhas(java.lang.String key, java.util.List<java.lang.String> values)An instance of data to be associated with this descriptorActiveDescriptorBuilderin(java.lang.annotation.Annotation scopeAnnotation)A scope to be associated with this descriptor object.ActiveDescriptorBuilderin(java.lang.Class<? extends java.lang.annotation.Annotation> scope)A scope to be associated with this descriptor object.ActiveDescriptorBuilderlocalOnly()This will cause the descriptorVisibility field of the returned descriptor to return LOCALActiveDescriptorBuildernamed(java.lang.String name)The name for this descriptor object.ActiveDescriptorBuilderofRank(int rank)The rank to be associated with this descriptor.ActiveDescriptorBuilderproxy()This will cause the isProxiable field of the returned descriptor to return true (it will force this descriptor to use proxies).ActiveDescriptorBuilderproxy(boolean forceProxy)This will cause the isProxiable field of the returned descriptor to return the given value.ActiveDescriptorBuilderproxyForSameScope()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).ActiveDescriptorBuilderproxyForSameScope(boolean forceProxyForSameScope)This will cause the isProxyForSameScope field of the returned descriptor to return the given value.ActiveDescriptorBuilderqualifiedBy(java.lang.annotation.Annotation annotation)A qualifier to be associated with this descriptor objectActiveDescriptorBuilderto(java.lang.reflect.Type contract)A contract to be associated with this descriptor object.ActiveDescriptorBuildervisibility(DescriptorVisibility visibility)This will set the descriptorVisibility field of the returned descriptor
-
-
-
Field Detail
-
name
private java.lang.String name
-
contracts
private final java.util.HashSet<java.lang.reflect.Type> contracts
-
scopeAnnotation
private java.lang.annotation.Annotation scopeAnnotation
-
scope
private java.lang.Class<? extends java.lang.annotation.Annotation> scope
-
qualifiers
private final java.util.HashSet<java.lang.annotation.Annotation> qualifiers
-
metadatas
private final java.util.HashMap<java.lang.String,java.util.List<java.lang.String>> metadatas
-
implementation
private final java.lang.Class<?> implementation
-
loader
private HK2Loader loader
-
rank
private int rank
-
proxy
private java.lang.Boolean proxy
-
proxyForSameScope
private java.lang.Boolean proxyForSameScope
-
visibility
private DescriptorVisibility visibility
-
classAnalysisName
private java.lang.String classAnalysisName
-
implementationType
private java.lang.reflect.Type implementationType
-
-
Method Detail
-
named
public ActiveDescriptorBuilder named(java.lang.String name) throws java.lang.IllegalArgumentException
Description copied from interface:ActiveDescriptorBuilderThe 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.- Specified by:
namedin interfaceActiveDescriptorBuilder- Parameters:
name- The name to be associated with this Descriptor- Returns:
- A DescriptorBuilder with the given name
- Throws:
java.lang.IllegalArgumentException- if there is more than one name on the predicate
-
to
public ActiveDescriptorBuilder to(java.lang.reflect.Type contract) throws java.lang.IllegalArgumentException
Description copied from interface:ActiveDescriptorBuilderA contract to be associated with this descriptor object.- Specified by:
toin interfaceActiveDescriptorBuilder- Parameters:
contract- A class that is annotated with Contract to be associated with this Descriptor- Returns:
- A DescriptorBuilder with the given name
- Throws:
java.lang.IllegalArgumentException- on failures
-
in
public ActiveDescriptorBuilder in(java.lang.annotation.Annotation scopeAnnotation) throws java.lang.IllegalArgumentException
Description copied from interface:ActiveDescriptorBuilderA 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.- Specified by:
inin interfaceActiveDescriptorBuilder- Parameters:
scopeAnnotation- The class of the scope this descriptor is to have.- Returns:
- A DescriptorBuilder with the given scope
- Throws:
java.lang.IllegalArgumentException- If in is called more than once
-
in
public ActiveDescriptorBuilder in(java.lang.Class<? extends java.lang.annotation.Annotation> scope) throws java.lang.IllegalArgumentException
Description copied from interface:ActiveDescriptorBuilderA 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.- Specified by:
inin interfaceActiveDescriptorBuilder- Parameters:
scope- The class of the scope this descriptor is to have.- Returns:
- A DescriptorBuilder with the given scope
- Throws:
java.lang.IllegalArgumentException- If in is called more than once
-
qualifiedBy
public ActiveDescriptorBuilder qualifiedBy(java.lang.annotation.Annotation annotation) throws java.lang.IllegalArgumentException
Description copied from interface:ActiveDescriptorBuilderA qualifier to be associated with this descriptor object- Specified by:
qualifiedByin interfaceActiveDescriptorBuilder- Parameters:
annotation- The annotation to be associated with this descriptor- Returns:
- A DescriptorBuilder with the given annotation
- Throws:
java.lang.IllegalArgumentException- on failures
-
has
public ActiveDescriptorBuilder has(java.lang.String key, java.lang.String value) throws java.lang.IllegalArgumentException
Description copied from interface:ActiveDescriptorBuilderAn instance of data to be associated with this descriptor- Specified by:
hasin interfaceActiveDescriptorBuilder- 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:
java.lang.IllegalArgumentException
-
has
public ActiveDescriptorBuilder has(java.lang.String key, java.util.List<java.lang.String> values) throws java.lang.IllegalArgumentException
Description copied from interface:ActiveDescriptorBuilderAn instance of data to be associated with this descriptor- Specified by:
hasin interfaceActiveDescriptorBuilder- 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:
java.lang.IllegalArgumentException
-
ofRank
public ActiveDescriptorBuilder ofRank(int rank)
Description copied from interface:ActiveDescriptorBuilderThe rank to be associated with this descriptor. The last rank bound wins- Specified by:
ofRankin interfaceActiveDescriptorBuilder- Parameters:
rank- The rank to be associated with this descriptor.- Returns:
- A DescriptorBuilder with the given rank
-
proxy
public ActiveDescriptorBuilder proxy()
Description copied from interface:ActiveDescriptorBuilderThis will cause the isProxiable field of the returned descriptor to return true (it will force this descriptor to use proxies).- Specified by:
proxyin interfaceActiveDescriptorBuilder- Returns:
- A DescriptorBuilder with the proxiable field set to true
-
proxy
public ActiveDescriptorBuilder proxy(boolean forceProxy)
Description copied from interface:ActiveDescriptorBuilderThis will cause the isProxiable field of the returned descriptor to return the given value.- Specified by:
proxyin interfaceActiveDescriptorBuilder- 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
public ActiveDescriptorBuilder proxyForSameScope()
Description copied from interface:ActiveDescriptorBuilderThis 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).- Specified by:
proxyForSameScopein interfaceActiveDescriptorBuilder- Returns:
- A DescriptorBuilder with the proxyForSameScope field set to true
-
proxyForSameScope
public ActiveDescriptorBuilder proxyForSameScope(boolean forceProxyForSameScope)
Description copied from interface:ActiveDescriptorBuilderThis will cause the isProxyForSameScope field of the returned descriptor to return the given value.- Specified by:
proxyForSameScopein interfaceActiveDescriptorBuilder- 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
public ActiveDescriptorBuilder andLoadWith(HK2Loader loader) throws java.lang.IllegalArgumentException
Description copied from interface:ActiveDescriptorBuilderCall this if this descriptor should be loaded with the given HK2Loader- Specified by:
andLoadWithin interfaceActiveDescriptorBuilder- Parameters:
loader- The loader to use with this descriptor- Returns:
- A DescriptorBuilder with the given HK2Loader
- Throws:
java.lang.IllegalArgumentException- if the HK2Loader is set non-null more than once
-
analyzeWith
public ActiveDescriptorBuilder analyzeWith(java.lang.String serviceName)
Description copied from interface:ActiveDescriptorBuilderCall this if the descriptor should be analyzed with theClassAnalyzerservice of the given name- Specified by:
analyzeWithin interfaceActiveDescriptorBuilder- Parameters:
serviceName- the name of theClassAnalyzerservice that should be used to analyze this service- Returns:
- A DescriptorBuilder with the given analysis service
-
localOnly
public ActiveDescriptorBuilder localOnly()
Description copied from interface:ActiveDescriptorBuilderThis will cause the descriptorVisibility field of the returned descriptor to return LOCAL- Specified by:
localOnlyin interfaceActiveDescriptorBuilder- Returns:
- A DescriptorBuilder with the descriptorVisibility field to be set to LOCAL
-
visibility
public ActiveDescriptorBuilder visibility(DescriptorVisibility visibility)
Description copied from interface:ActiveDescriptorBuilderThis will set the descriptorVisibility field of the returned descriptor- Specified by:
visibilityin interfaceActiveDescriptorBuilder- Parameters:
visibility- The non-null visibility that this descriptor should take- Returns:
- A DescriptorBuilder with the descriptorVisibility field set to the input value
-
asType
public ActiveDescriptorBuilder asType(java.lang.reflect.Type t)
Description copied from interface:ActiveDescriptorBuilderCall 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- Specified by:
asTypein interfaceActiveDescriptorBuilder- Parameters:
t- The non-null ParameterizedType describing the implementation- Returns:
- A DescriptorBuilder with the given implementationType
-
build
public <T> AbstractActiveDescriptor<T> build() throws java.lang.IllegalArgumentException
Description copied from interface:ActiveDescriptorBuilderGenerates a descriptor that can be used in binding operations- Specified by:
buildin interfaceActiveDescriptorBuilder- Returns:
- The descriptor that has been built up
- Throws:
java.lang.IllegalArgumentException- if the built descriptor is invalid
-
buildFactory
@Deprecated public <T> AbstractActiveDescriptor<T> buildFactory() throws java.lang.IllegalArgumentException
Deprecated.Description copied from interface:ActiveDescriptorBuilderGenerates a descriptor that can be used in binding operations that describes a factorys provide method- Specified by:
buildFactoryin interfaceActiveDescriptorBuilder- Returns:
- The descriptor that has been built up, of type PROVIDE_METHOD
- Throws:
java.lang.IllegalArgumentException- if the built descriptor is invalid
-
buildProvideMethod
public <T> AbstractActiveDescriptor<T> buildProvideMethod() throws java.lang.IllegalArgumentException
Description copied from interface:ActiveDescriptorBuilderGenerates a descriptor that can be used in binding operations that describes a factorys provide method- Specified by:
buildProvideMethodin interfaceActiveDescriptorBuilder- Returns:
- The descriptor that has been built up, of type PROVIDE_METHOD
- Throws:
java.lang.IllegalArgumentException- if the built descriptor is invalid
-
-