org.glassfish.hk2.utilities
Interface DescriptorBuilder

All Known Implementing Classes:
DescriptorBuilderImpl

public interface DescriptorBuilder

This is an object that uses the Builder pattern in order to generate a Descriptor (for binding) or a Filter (for searching). It is intended to facilitate query strings of method calls that is simple to understand and read.


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(Class<? extends Annotation> factoryScope)
          Generates a factory descriptor that can be used in binding operations.
 FactoryDescriptors buildFactory(String factoryScope)
          Generates a factory descriptor that can be used in binding operations.
 DescriptorBuilder has(String key, List<String> values)
          An instance of data to be associated with this descriptor
 DescriptorBuilder has(String key, String value)
          An instance of data to be associated with this descriptor
 DescriptorBuilder in(Class<? extends Annotation> scope)
          A scope to be associated with this descriptor object.
 DescriptorBuilder in(String scope)
          A scope to be associated with this descriptor object.
 DescriptorBuilder named(String name)
          The name for this descriptor object.
 DescriptorBuilder ofRank(int rank)
          The rank to be associated with this descriptor.
 DescriptorBuilder qualifiedBy(Annotation annotation)
          A qualifier to be associated with this descriptor object
 DescriptorBuilder qualifiedBy(String annotation)
          A qualifier to be associated with this descriptor object
 DescriptorBuilder to(Class<?> contract)
          A contract to be associated with this descriptor object.
 DescriptorBuilder to(String contract)
          A contract to be associated with this descriptor object.
 

Method Detail

named

DescriptorBuilder 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

DescriptorBuilder to(Class<?> 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

to

DescriptorBuilder to(String contract)
                     throws IllegalArgumentException
A contract to be associated with this descriptor object.

Parameters:
contract - The fully qualified name of a class that is annotated with Contract.
Returns:
A DescriptorBuilder with the given name
Throws:
IllegalArgumentException - on failures

in

DescriptorBuilder 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

in

DescriptorBuilder in(String 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 fully qualified class name of the scope this predicate is to have.
Returns:
A DescriptorBuilder with the given scope
Throws:
IllegalArgumentException - If in is called more than once

qualifiedBy

DescriptorBuilder 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

qualifiedBy

DescriptorBuilder qualifiedBy(String annotation)
                              throws IllegalArgumentException
A qualifier to be associated with this descriptor object

Parameters:
annotation - The fully qualified class name of an annotation to be associated with this descriptor
Returns:
A DescriptorBuilder with the given annotation
Throws:
IllegalArgumentException - on failures

has

DescriptorBuilder 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 descriptor
value - The value this key should take (single value metadata)
Returns:
A DescriptorBuilder with the given metadata
Throws:
IllegalArgumentException

has

DescriptorBuilder 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 descriptor
values - The values this key should take (single value metadata)
Returns:
A DescriptorBuilder with the given metadata
Throws:
IllegalArgumentException

ofRank

DescriptorBuilder 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

andLoadWith

DescriptorBuilder 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

build

DescriptorImpl build()
                     throws IllegalArgumentException
Generates a descriptor that can be used in binding operations

Returns:
The descriptor that has been built up with this DescriptorBuilder
Throws:
IllegalArgumentException - if the built descriptor is invalid

buildFactory

FactoryDescriptors buildFactory()
                                throws IllegalArgumentException
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

Returns:
The descriptor that has been built up with this DescriptorBuilder
Throws:
IllegalArgumentException - if the built descriptor is invalid

buildFactory

FactoryDescriptors buildFactory(String factoryScope)
                                throws IllegalArgumentException
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

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

buildFactory

FactoryDescriptors buildFactory(Class<? extends Annotation> factoryScope)
                                throws IllegalArgumentException
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

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:
IllegalArgumentException - if the built descriptor is invalid


Copyright © 2013 Oracle Corporation. All Rights Reserved.