com.dtolabs.rundeck.core.plugins
Class BaseProviderRegistryService<T>

java.lang.Object
  extended by com.dtolabs.rundeck.core.plugins.BaseProviderRegistryService<T>
All Implemented Interfaces:
FrameworkSupportService, ProviderService<T>
Direct Known Subclasses:
NodeDispatcherService, PluggableProviderRegistryService, WorkflowExecutionService

public abstract class BaseProviderRegistryService<T>
extends java.lang.Object
implements ProviderService<T>

BaseProviderRegistryService is an abstract base that provides a registry of available service providers based on simple names. The service providers classes must have a no-arg constructor or a single-argument constructor with a Framework argument


Field Summary
protected  Framework framework
           
protected  java.util.HashMap<java.lang.String,T> instanceregistry
           
protected  java.util.HashMap<java.lang.String,java.lang.Class<? extends T>> registry
           
 
Constructor Summary
BaseProviderRegistryService(Framework framework)
           
 
Method Summary
protected  T createProviderInstanceFromType(java.lang.Class<? extends T> execClass, java.lang.String providerName)
           
protected  boolean hasValidProviderSignature(java.lang.Class clazz)
           
 java.util.List<ProviderIdent> listProviders()
           
 T providerOfType(java.lang.String providerName)
          Return the provider instance of the given name.
 void registerClass(java.lang.String name, java.lang.Class<? extends T> clazz)
           
 void registerInstance(java.lang.String name, T object)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface com.dtolabs.rundeck.core.common.FrameworkSupportService
getName
 

Field Detail

registry

protected java.util.HashMap<java.lang.String,java.lang.Class<? extends T>> registry

instanceregistry

protected java.util.HashMap<java.lang.String,T> instanceregistry

framework

protected final Framework framework
Constructor Detail

BaseProviderRegistryService

public BaseProviderRegistryService(Framework framework)
Method Detail

registerClass

public void registerClass(java.lang.String name,
                          java.lang.Class<? extends T> clazz)

registerInstance

public void registerInstance(java.lang.String name,
                             T object)

providerOfType

public T providerOfType(java.lang.String providerName)
                 throws ExecutionServiceException
Return the provider instance of the given name.

Specified by:
providerOfType in interface ProviderService<T>
Throws:
ExecutionServiceException

listProviders

public java.util.List<ProviderIdent> listProviders()
Specified by:
listProviders in interface ProviderService<T>

createProviderInstanceFromType

protected T createProviderInstanceFromType(java.lang.Class<? extends T> execClass,
                                           java.lang.String providerName)
                                    throws ProviderCreationException
Throws:
ProviderCreationException

hasValidProviderSignature

protected boolean hasValidProviderSignature(java.lang.Class clazz)