org.glassfish.hk2.internal
Class DescriptorBuilderImpl

java.lang.Object
  extended by org.glassfish.hk2.internal.DescriptorBuilderImpl
All Implemented Interfaces:
DescriptorBuilder

public class DescriptorBuilderImpl
extends java.lang.Object
implements DescriptorBuilder

This is a simple implementation of the DescriptorBuilder

Author:
jwells

Constructor Summary
DescriptorBuilderImpl()
          The basid constructor
DescriptorBuilderImpl(java.lang.String implementation, boolean addToContracts)
          A descriptor builder with the given implementation
 
Method Summary
 DescriptorBuilder andLoadWith(HK2Loader loader)
          Call this if this descriptor should be loaded with the given HK2Loader
 DescriptorImpl build()
          Generates a descriptor that can be used in binding operations
 FactoryDescriptors buildFactory()
          Generates a factory descriptor that can be used in binding operations.
 FactoryDescriptors buildFactory(java.lang.Class<? extends java.lang.annotation.Annotation> factoryScope)
          Generates a factory descriptor that can be used in binding operations.
 FactoryDescriptors buildFactory(java.lang.String factoryScope)
          Generates a factory descriptor that can be used in binding operations.
 DescriptorBuilder has(java.lang.String key, java.util.List<java.lang.String> values)
          An instance of data to be associated with this descriptor
 DescriptorBuilder has(java.lang.String key, java.lang.String value)
          An instance of data to be associated with this descriptor
 DescriptorBuilder in(java.lang.Class<? extends java.lang.annotation.Annotation> scope)
          A scope to be associated with this descriptor object.
 DescriptorBuilder in(java.lang.String scope)
          A scope to be associated with this descriptor object.
 DescriptorBuilder localOnly()
          This will cause the descriptorVisibility field of the returned descriptor to return LOCAL
 DescriptorBuilder named(java.lang.String name)
          The name for this descriptor object.
 DescriptorBuilder ofRank(int rank)
          The rank to be associated with this descriptor.
 DescriptorBuilder proxy()
          This will cause the isProxiable field of the returned descriptor to return true (it will force this descriptor to use proxies).
 DescriptorBuilder proxy(boolean forceProxy)
          This will cause the isProxiable field of the returned descriptor to return the given value.
 DescriptorBuilder qualifiedBy(java.lang.annotation.Annotation annotation)
          A qualifier to be associated with this descriptor object
 DescriptorBuilder qualifiedBy(java.lang.String annotation)
          A qualifier to be associated with this descriptor object
 DescriptorBuilder to(java.lang.Class<?> contract)
          A contract to be associated with this descriptor object.
 DescriptorBuilder to(java.lang.String contract)
          A contract to be associated with this descriptor object.
 DescriptorBuilder visibility(DescriptorVisibility visibility)
          This will set the descriptorVisibility field of the returned descriptor
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DescriptorBuilderImpl

public DescriptorBuilderImpl()
The basid constructor


DescriptorBuilderImpl

public DescriptorBuilderImpl(java.lang.String implementation,
                             boolean addToContracts)
A descriptor builder with the given implementation

Parameters:
implementation - The implementation this should take
addToContracts - Whether or not to add the implementation to the set of contracts
Method Detail

named

public DescriptorBuilder named(java.lang.String name)
                        throws java.lang.IllegalArgumentException
Description copied from interface: DescriptorBuilder
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.

Specified by:
named in interface DescriptorBuilder
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 DescriptorBuilder to(java.lang.Class<?> contract)
                     throws java.lang.IllegalArgumentException
Description copied from interface: DescriptorBuilder
A contract to be associated with this descriptor object.

Specified by:
to in interface DescriptorBuilder
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

to

public DescriptorBuilder to(java.lang.String contract)
                     throws java.lang.IllegalArgumentException
Description copied from interface: DescriptorBuilder
A contract to be associated with this descriptor object.

Specified by:
to in interface DescriptorBuilder
Parameters:
contract - The fully qualified name of a class that is annotated with Contract.
Returns:
A DescriptorBuilder with the given name
Throws:
java.lang.IllegalArgumentException - on failures

in

public DescriptorBuilder in(java.lang.Class<? extends java.lang.annotation.Annotation> scope)
                     throws java.lang.IllegalArgumentException
Description copied from interface: DescriptorBuilder
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.

Specified by:
in in interface DescriptorBuilder
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

in

public DescriptorBuilder in(java.lang.String scope)
                     throws java.lang.IllegalArgumentException
Description copied from interface: DescriptorBuilder
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.

Specified by:
in in interface DescriptorBuilder
Parameters:
scope - The fully qualified class name of the scope this predicate is to have.
Returns:
A DescriptorBuilder with the given scope
Throws:
java.lang.IllegalArgumentException - If in is called more than once

qualifiedBy

public DescriptorBuilder qualifiedBy(java.lang.annotation.Annotation annotation)
                              throws java.lang.IllegalArgumentException
Description copied from interface: DescriptorBuilder
A qualifier to be associated with this descriptor object

Specified by:
qualifiedBy in interface DescriptorBuilder
Parameters:
annotation - The annotation to be associated with this descriptor
Returns:
A DescriptorBuilder with the given annotation
Throws:
java.lang.IllegalArgumentException - on failures

qualifiedBy

public DescriptorBuilder qualifiedBy(java.lang.String annotation)
                              throws java.lang.IllegalArgumentException
Description copied from interface: DescriptorBuilder
A qualifier to be associated with this descriptor object

Specified by:
qualifiedBy in interface DescriptorBuilder
Parameters:
annotation - The fully qualified class name of an annotation to be associated with this descriptor
Returns:
A DescriptorBuilder with the given annotation
Throws:
java.lang.IllegalArgumentException - on failures

has

public DescriptorBuilder has(java.lang.String key,
                             java.lang.String value)
                      throws java.lang.IllegalArgumentException
Description copied from interface: DescriptorBuilder
An instance of data to be associated with this descriptor

Specified by:
has in interface DescriptorBuilder
Parameters:
key - The key for the data to be associated with this descriptor
value - The value this key should take (single value metadata)
Returns:
A DescriptorBuilder with the given metadata
Throws:
java.lang.IllegalArgumentException

has

public DescriptorBuilder has(java.lang.String key,
                             java.util.List<java.lang.String> values)
                      throws java.lang.IllegalArgumentException
Description copied from interface: DescriptorBuilder
An instance of data to be associated with this descriptor

Specified by:
has in interface DescriptorBuilder
Parameters:
key - The key for the data to be associated with this descriptor
values - The values this key should take (single value metadata)
Returns:
A DescriptorBuilder with the given metadata
Throws:
java.lang.IllegalArgumentException

ofRank

public DescriptorBuilder ofRank(int rank)
Description copied from interface: DescriptorBuilder
The rank to be associated with this descriptor. The last rank bound wins

Specified by:
ofRank in interface DescriptorBuilder
Parameters:
rank - The rank to be associated with this descriptor.
Returns:
A DescriptorBuilder with the given rank

proxy

public DescriptorBuilder proxy()
Description copied from interface: DescriptorBuilder
This will cause the isProxiable field of the returned descriptor to return true (it will force this descriptor to use proxies).

Specified by:
proxy in interface DescriptorBuilder
Returns:
A DescriptorBuilder with the proxiable field set to true

proxy

public DescriptorBuilder proxy(boolean forceProxy)
Description copied from interface: DescriptorBuilder
This will cause the isProxiable field of the returned descriptor to return the given value.

Specified by:
proxy in interface DescriptorBuilder
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

localOnly

public DescriptorBuilder localOnly()
Description copied from interface: DescriptorBuilder
This will cause the descriptorVisibility field of the returned descriptor to return LOCAL

Specified by:
localOnly in interface DescriptorBuilder
Returns:
A DescriptorBuilder with the descriptorVisibility field to be set to LOCAL

visibility

public DescriptorBuilder visibility(DescriptorVisibility visibility)
Description copied from interface: DescriptorBuilder
This will set the descriptorVisibility field of the returned descriptor

Specified by:
visibility in interface DescriptorBuilder
Parameters:
visibility - The non-null visibility that this descriptor should take
Returns:
A DescriptorBuilder with the descriptorVisibility field set to the input value

andLoadWith

public DescriptorBuilder andLoadWith(HK2Loader loader)
                              throws java.lang.IllegalArgumentException
Description copied from interface: DescriptorBuilder
Call this if this descriptor should be loaded with the given HK2Loader

Specified by:
andLoadWith in interface DescriptorBuilder
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

build

public DescriptorImpl build()
                     throws java.lang.IllegalArgumentException
Description copied from interface: DescriptorBuilder
Generates a descriptor that can be used in binding operations

Specified by:
build in interface DescriptorBuilder
Returns:
The descriptor that has been built up with this DescriptorBuilder
Throws:
java.lang.IllegalArgumentException - if the built descriptor is invalid

buildFactory

public FactoryDescriptors buildFactory(java.lang.String factoryScope)
                                throws java.lang.IllegalArgumentException
Description copied from interface: DescriptorBuilder
Generates a factory descriptor that can be used in binding operations. The generated factory service will have no name, no qualifiers and the same metadata as given to this builder. The generated service will have had the implementation class removed from its set of advertised contracts

Specified by:
buildFactory in interface DescriptorBuilder
Parameters:
factoryScope - The scope the factory service itself is in.
Returns:
The descriptor that has been built up with this DescriptorBuilder
Throws:
java.lang.IllegalArgumentException - if the built descriptor is invalid

buildFactory

public FactoryDescriptors buildFactory()
                                throws java.lang.IllegalArgumentException
Description copied from interface: DescriptorBuilder
Generates a factory descriptor that can be used in binding operations. The generated factory service will have no name, no qualifiers and the same metadata as given to this builder. The factory will be put into PerLookup scope

Specified by:
buildFactory in interface DescriptorBuilder
Returns:
The descriptor that has been built up with this DescriptorBuilder
Throws:
java.lang.IllegalArgumentException - if the built descriptor is invalid

buildFactory

public FactoryDescriptors buildFactory(java.lang.Class<? extends java.lang.annotation.Annotation> factoryScope)
                                throws java.lang.IllegalArgumentException
Description copied from interface: DescriptorBuilder
Generates a factory descriptor that can be used in binding operations. The generated factory service will have no name, no qualifiers and the same metadata as given to this builder. The generated service will have had the implementation class removed from its set of advertised contracts

Specified by:
buildFactory in interface DescriptorBuilder
Parameters:
factoryScope - The scope the factory service itself is in. If this is null the PerLookup scope will be used
Returns:
The descriptor that has been built up with this DescriptorBuilder
Throws:
java.lang.IllegalArgumentException - if the built descriptor is invalid


Copyright © 2012 Oracle Corporation. All Rights Reserved.