org.glassfish.jersey.internal.inject
Class Providers

java.lang.Object
  extended by org.glassfish.jersey.internal.inject.Providers

public class Providers
extends java.lang.Object

Utility class providing a set of utility methods for easier and more type-safe interaction with HK2 injection layer.

Author:
Marek Potociar (marek.potociar at oracle.com), Miroslav Fuksa (miroslav.fuksa at oracle.com)

Method Summary
static
<T> Factory<T>
asFactory(ServiceHandle<T> provider)
          Wrap HK2 service provider into a HK2 service factory.
static java.lang.String contractStringFor(java.lang.Class<?> rawType, java.lang.reflect.Type... types)
          Build a string definition for a generic contract.
static
<T> Factory<T>
factoryOf(T instance)
          Wrap an instance into a HK2 service factory.
static
<T> java.util.List<T>
getAllProviders(ServiceLocator services, java.lang.Class<T> contract)
          Get the set of all providers (custom and default) registered for the given service provider contract in the underlying HK2 services container.
static
<T> java.util.List<T>
getAllProviders(ServiceLocator services, java.lang.Class<T> contract, java.util.Comparator<T> comparator)
          Get the set of all providers (custom and default) registered for the given service provider contract in the underlying HK2 services container ordered based on the given comparator.
static
<T> T
getContract(ServiceLocator services, java.lang.String contract)
          Get a typed service instance for a contract specified as a string.
static
<T> java.util.Set<T>
getCustomProviders(ServiceLocator services, java.lang.Class<T> contract)
          Get the set of all custom providers registered for the given service provider contract in the underlying HK2 services container.
static
<T> Factory<T>
getFactory(ServiceLocator services, java.lang.String contract)
          Get a typed HK2 service factory for a contract specified as string.
static
<T> ServiceHandle<T>
getProvider(ServiceLocator services, java.lang.String contract)
          Get a typed HK2 service provider for a contract specified as string.
static java.util.Set<java.lang.Class<?>> getProviderContracts(java.lang.Class<?> clazz)
          Returns provider contracts recognized by Jersey that are implemented by the clazz.
static
<T> java.util.Set<T>
getProviders(ServiceLocator services, java.lang.Class<T> contract)
          Get the set of default providers registered for the given service provider contract in the underlying HK2 services container.
static
<T> java.util.SortedSet<T>
getProviders(ServiceLocator services, java.lang.Class<T> contract, java.util.Comparator<T> comparator)
          Get the set of all providers registered for the given service provider contract in the underlying HK2 services container.
static boolean isProvider(java.lang.Class<?> clazz)
          Returns true if the given class is a provider (implements specific interfaces).
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

asFactory

public static <T> Factory<T> asFactory(ServiceHandle<T> provider)
Wrap HK2 service provider into a HK2 service factory.

Type Parameters:
T - Java type if the contract produced by the provider and factory.
Parameters:
provider - HK2 service provider to be wrapped.
Returns:
HK2 service factory wrapping the HK2 service provider.

factoryOf

public static <T> Factory<T> factoryOf(T instance)
Wrap an instance into a HK2 service factory.

Type Parameters:
T - Java type if the contract produced by the provider and factory.
Parameters:
instance - instance to be wrapped into (and provided by) the factory.
Returns:
HK2 service factory wrapping and providing the instance.

contractStringFor

public static java.lang.String contractStringFor(java.lang.Class<?> rawType,
                                                 java.lang.reflect.Type... types)
Build a string definition for a generic contract.

Parameters:
rawType - raw generic type.
types - actual generic type arguments.
Returns:
string definition for a generic contract.

getContract

public static <T> T getContract(ServiceLocator services,
                                java.lang.String contract)
Get a typed service instance for a contract specified as a string.

Type Parameters:
T - expected contract type.
Parameters:
services - HK2 services.
contract - string definition of the contract Java type.
Returns:
typed service instance for the contract.

getProvider

public static <T> ServiceHandle<T> getProvider(ServiceLocator services,
                                               java.lang.String contract)
Get a typed HK2 service provider for a contract specified as string.

Type Parameters:
T - expected contract type.
Parameters:
services - HK2 services.
contract - string definition of the contract Java type.
Returns:
typed HK2 service provider for the contract.

getFactory

public static <T> Factory<T> getFactory(ServiceLocator services,
                                        java.lang.String contract)
Get a typed HK2 service factory for a contract specified as string.

Type Parameters:
T - expected contract type.
Parameters:
services - HK2 services.
contract - string definition of the contract Java type.
Returns:
typed HK2 service factory for the contract.

getProviders

public static <T> java.util.Set<T> getProviders(ServiceLocator services,
                                                java.lang.Class<T> contract)
Get the set of default providers registered for the given service provider contract in the underlying HK2 services container.

Type Parameters:
T - service provider contract Java type.
Parameters:
services - underlying HK2 services container.
contract - service provider contract.
Returns:
set of all available default service provider instances for the contract.

getCustomProviders

public static <T> java.util.Set<T> getCustomProviders(ServiceLocator services,
                                                      java.lang.Class<T> contract)
Get the set of all custom providers registered for the given service provider contract in the underlying HK2 services container.

Type Parameters:
T - service provider contract Java type.
Parameters:
services - underlying HK2 services container.
contract - service provider contract.
Returns:
set of all available service provider instances for the contract.

getAllProviders

public static <T> java.util.List<T> getAllProviders(ServiceLocator services,
                                                    java.lang.Class<T> contract)
Get the set of all providers (custom and default) registered for the given service provider contract in the underlying HK2 services container.

Type Parameters:
T - service provider contract Java type.
Parameters:
services - underlying HK2 services container.
contract - service provider contract.
Returns:
set of all available service provider instances for the contract.

getAllProviders

public static <T> java.util.List<T> getAllProviders(ServiceLocator services,
                                                    java.lang.Class<T> contract,
                                                    java.util.Comparator<T> comparator)
Get the set of all providers (custom and default) registered for the given service provider contract in the underlying HK2 services container ordered based on the given comparator.

Type Parameters:
T - service provider contract Java type.
Parameters:
services - underlying HK2 services container.
contract - service provider contract.
Returns:
set of all available service provider instances for the contract ordered using the given comparator.

getProviders

public static <T> java.util.SortedSet<T> getProviders(ServiceLocator services,
                                                      java.lang.Class<T> contract,
                                                      java.util.Comparator<T> comparator)
Get the set of all providers registered for the given service provider contract in the underlying HK2 services container.

Type Parameters:
T - service provider contract Java type.
Parameters:
services - underlying HK2 services container.
contract - service provider contract.
comparator - contract comparator used for ordering contracts in the set.
Returns:
set of all available service provider instances for the contract.

getProviderContracts

public static java.util.Set<java.lang.Class<?>> getProviderContracts(java.lang.Class<?> clazz)
Returns provider contracts recognized by Jersey that are implemented by the clazz. Recognized provider contracts include all JAX-RS providers as well as all Jersey SPI components annotated with @Contract annotation.

Parameters:
clazz - class to extract the provider interfaces from.
Returns:
set of provider contracts implemented by the given class.

isProvider

public static boolean isProvider(java.lang.Class<?> clazz)
Returns true if the given class is a provider (implements specific interfaces). See getProviderContracts(java.lang.Class).

Parameters:
clazz - class to test.
Returns:
true if the class is provider, false otherwise.


Copyright © 2007-2012 Oracle Corporation. All Rights Reserved. Use is subject to license terms.