public abstract class BasePluggableProviderService<T> extends java.lang.Object implements PluggableProviderService<T>
Modifier and Type | Field and Description |
---|---|
protected java.lang.Class<? extends T> |
implementationClass |
protected java.lang.String |
name |
Constructor and Description |
---|
BasePluggableProviderService(java.lang.String name,
java.lang.Class<? extends T> implementationClass) |
Modifier and Type | Method and Description |
---|---|
<X> ProviderService<X> |
adapter(Converter<T,X> converter)
Create an adapted form of this service given a converter.
|
T |
createProviderInstance(java.lang.Class<T> clazz,
java.lang.String name)
Create provider instance from a class
|
protected T |
createProviderInstanceFromType(java.lang.Class<? extends T> execClass,
java.lang.String providerName) |
T |
createScriptProviderInstance(ScriptPluginProvider provider)
Return the instance for a ScriptPluginProvider definition
|
java.lang.String |
getName()
Return the name used to identify the service
|
abstract ServiceProviderLoader |
getPluginManager()
Return the plugin manager to use
|
protected boolean |
hasValidProviderSignature(java.lang.Class clazz) |
boolean |
isScriptPluggable()
default implementation returns false, subclasses should override to
|
boolean |
isValidProviderClass(java.lang.Class clazz)
Return true if the class is a valid provider class for the service
|
java.util.List<ProviderIdent> |
listDescribableProviders()
default implementation of listDescribableProviders that can be used if subclasses implement
DescribableService |
java.util.List<Description> |
listDescriptions()
default implementation of listDescriptions that can be used if subclasses implement
DescribableService |
java.util.List<ProviderIdent> |
listProviders() |
T |
providerOfType(java.lang.String providerName)
Return the provider instance of the given name.
|
protected java.lang.Class<? extends T> implementationClass
protected java.lang.String name
public BasePluggableProviderService(java.lang.String name, java.lang.Class<? extends T> implementationClass)
public boolean isValidProviderClass(java.lang.Class clazz)
PluggableService
isValidProviderClass
in interface PluggableService<T>
clazz
- the classpublic T createProviderInstance(java.lang.Class<T> clazz, java.lang.String name) throws PluginException, ProviderCreationException
PluggableService
createProviderInstance
in interface PluggableService<T>
clazz
- the classname
- the provider namePluginException
ProviderCreationException
public T providerOfType(java.lang.String providerName) throws ExecutionServiceException
ProviderService
providerOfType
in interface ProviderService<T>
ExecutionServiceException
public abstract ServiceProviderLoader getPluginManager()
public java.util.List<ProviderIdent> listProviders()
listProviders
in interface ProviderService<T>
public boolean isScriptPluggable()
isScriptPluggable
in interface PluggableService<T>
public T createScriptProviderInstance(ScriptPluginProvider provider) throws PluginException
PluggableService
createScriptProviderInstance
in interface PluggableService<T>
provider
- the script plugin providerPluginException
protected T createProviderInstanceFromType(java.lang.Class<? extends T> execClass, java.lang.String providerName) throws ProviderCreationException
ProviderCreationException
protected boolean hasValidProviderSignature(java.lang.Class clazz)
public java.util.List<Description> listDescriptions()
DescribableService
listDescriptions
in interface DescribableService
public java.util.List<ProviderIdent> listDescribableProviders()
DescribableService
listDescribableProviders
in interface DescribableService
public <X> ProviderService<X> adapter(Converter<T,X> converter)
public java.lang.String getName()
FrameworkSupportService
getName
in interface FrameworkSupportService