public class CompositeServiceLoader extends Object implements ServiceLoader
Constructor and Description |
---|
CompositeServiceLoader()
Creates a new empty composite service loader.
|
Modifier and Type | Method and Description |
---|---|
void |
addServiceLoader(ServiceLoader serviceLoader)
Adds a service loader at the end of the list a service loaders used by this composite service loader.
|
<T> T |
getService(Class<T> service)
Gets the instance of the given service.
|
<T> T |
getService(Class<T> service,
boolean singleton)
Gets the registered implementation for the given service.
|
<T> T |
getService(Class<T> service,
Class<? extends T> defaultImplementation)
Gets the registered implementation for the given service.
|
<T> T |
getService(Class<T> service,
Class<? extends T> defaultImplementation,
boolean singleton)
Gets the registered implementation for the given service.
|
public CompositeServiceLoader()
public void addServiceLoader(ServiceLoader serviceLoader)
serviceLoader
- the service loader to add.NullPointerException
- if the given service loader is null
.@Nullable public <T> T getService(Class<T> service)
ServiceLoader
Equivalent to calling ServiceLoader.getService(Class, boolean)
passing @{code true} as @{code singleton}.
getService
in interface ServiceLoader
getService
in interface ServiceProvider
T
- the service type.service
- the service.@Nullable public <T> T getService(Class<T> service, boolean singleton)
ServiceLoader
If a singleton is asked and if an instance of this service has already been created, this instance is returned. Otherwise, creates a new instance of the implementation type.
getService
in interface ServiceLoader
T
- the service type.service
- the service.singleton
- if true
returns an already created instance if any, creates a new one otherwise.null
if no implementation is available.public <T> T getService(Class<T> service, Class<? extends T> defaultImplementation)
ServiceLoader
getService
in interface ServiceLoader
T
- the service type.service
- the service.defaultImplementation
- the default implementation to use.public <T> T getService(Class<T> service, Class<? extends T> defaultImplementation, boolean singleton)
ServiceLoader
If a singleton is asked and if an instance of this service has already been created, this instance is returned. Otherwise, creates a new instance of the implementation type.
getService
in interface ServiceLoader
T
- the service type.service
- the service.defaultImplementation
- the default implementation to use.singleton
- if true
returns an already created instance if any, creates a new one otherwise.