public final class ServiceHelper extends Object
IServiceProvider.| Modifier and Type | Method and Description | 
|---|---|
static <T> T | 
getOptionalService(TypeLiteral<T> typeLiteralT,
                  IServiceProvider serviceProvider)
Gets a service from a given service provider, or  
null if the service does not exist. | 
static <T> T | 
getService(TypeLiteral<T> typeLiteralT,
          IServiceProvider serviceProvider)
Gets a service from a given service provider, throwing a  
ServiceNotAvailableException
    if the service is not available. | 
static <T> T | 
getService(TypeLiteral<T> typeLiteralT,
          IServiceProvider serviceProvider,
          boolean throwIfNotAvailable)
Gets a service from a given service provider. 
 | 
static <T> T | 
getService(TypeLiteral<T> typeLiteralT,
          IServiceProvider serviceProvider,
          String exceptionMessage)
Gets a service from a given service provider, throwing a  
ServiceNotAvailableException
    if the service is not available. | 
static boolean | 
hasService(IServiceProvider serviceProvider,
          Class<?> serviceType)
Checks whether a service provider has a given service. 
 | 
static Object | 
locateService(Class<?> serviceType,
             Object candidate)
Convenience method for implementing  
IServiceProvider objects. | 
static <T extends IServiceProvider> | 
locateService(Class<?> serviceType,
             Object candidate,
             Iterable<T> additionalServiceProviders)
Convenience method for implementing  
IServiceProvider objects. | 
static <T extends IServiceProvider> | 
locateService(Class<?> serviceType,
             Object candidate,
             T... additionalServiceProviders)
Convenience method for implementing  
IServiceProvider objects. | 
@Nonnull public static <T> T getService(TypeLiteral<T> typeLiteralT, @Nonnull IServiceProvider serviceProvider)
ServiceNotAvailableException
    if the service is not available.T - The type of service to obtain.typeLiteralT - A TypeLiteral object representing the generic type T.serviceProvider - The service provider from which to obtain the service.ArgumentNullException - Thrown when the serviceProvider is null.ServiceNotAvailableException - Thrown when the requested service is not available from the service provider.@Nonnull public static <T> T getService(TypeLiteral<T> typeLiteralT, @Nonnull IServiceProvider serviceProvider, String exceptionMessage)
ServiceNotAvailableException
    if the service is not available.T - The type of service to obtain.typeLiteralT - A TypeLiteral object representing the generic type T.serviceProvider - The service provider from which to obtain the service.exceptionMessage - An error message to include in the exception if the service is unavailable.ArgumentNullException - Thrown when the serviceProvider is null.ServiceNotAvailableException - Thrown when the requested service is not available from the service provider.public static <T> T getService(TypeLiteral<T> typeLiteralT, @Nonnull IServiceProvider serviceProvider, boolean throwIfNotAvailable)
T - The type of service to obtain.typeLiteralT - A TypeLiteral object representing the generic type T.serviceProvider - The service provider from which to obtain the service.throwIfNotAvailable - true if this method should throw a ServiceNotAvailableException if
    the requested service is not available from the service provider, or  false if this
    method should simply return null if the service does not exist.ArgumentNullException - Thrown when the serviceProvider is null.ServiceNotAvailableException - Thrown when throwIfNotAvailable is true,
    and the requested service is not available from the service provider.@Nullable public static <T> T getOptionalService(TypeLiteral<T> typeLiteralT, @Nonnull IServiceProvider serviceProvider)
null if the service does not exist.T - The type of service to obtain.typeLiteralT - A TypeLiteral object representing the generic type T.serviceProvider - The service provider from which to obtain the service.null if the service does not exist.ArgumentNullException - Thrown when the serviceProvider is null.public static boolean hasService(@Nonnull IServiceProvider serviceProvider, @Nonnull Class<?> serviceType)
serviceProvider - The service provider from which to obtain the service.serviceType - The type of the service that is requested.true if the service provider returns a non-null service of the given type.ArgumentNullException - Thrown when serviceProvider or serviceType is null.@Nullable public static Object locateService(@Nonnull Class<?> serviceType, @Nonnull Object candidate)
IServiceProvider objects.
    If candidate is an instance of serviceType,
    returns candidate, otherwise returns null.candidate - A candidate object that could be of the requested serviceType.serviceType - The type of the service that is requested.candidate if it is of type serviceType; otherwise null.ArgumentNullException - Thrown when serviceType or candidate is null.@Nullable public static <T extends IServiceProvider> Object locateService(@Nonnull Class<?> serviceType, @Nonnull Object candidate, @Nonnull T... additionalServiceProviders)
IServiceProvider objects.
    If candidate is an instance of serviceType, returns candidate.
    Otherwise, checks additional IServiceProvider objects for any that return a non-null result for serviceType.
    Otherwise, returns null.T - The type of additional service providers to search.candidate - A candidate object that could be of the requested serviceType.serviceType - The type of the service that is requested.additionalServiceProviders - Additional service providers that will be checked, in order, for the requested service. The first non-null
    result will be returned.null if not found.ArgumentNullException - Thrown when serviceType, candidate, or additionalServiceProviders is null.@Nullable public static <T extends IServiceProvider> Object locateService(@Nonnull Class<?> serviceType, @Nonnull Object candidate, @Nonnull Iterable<T> additionalServiceProviders)
IServiceProvider objects.
    If candidate is an instance of serviceType, returns candidate.
    Otherwise, checks additional IServiceProvider objects for any that return a non-null result for serviceType.
    Otherwise, returns null.T - The type of additional service providers to search.candidate - A candidate object that could be of the requested serviceType.serviceType - The type of the service that is requested.additionalServiceProviders - Additional service providers that will be checked, in order, for the requested service. The first non-null
    result will be returned.null if not found.ArgumentNullException - Thrown when serviceType, candidate, or additionalServiceProviders is null.