T - type of factoriesR - type of reflective factoriespublic abstract class AbstractFactoryRegistryImpl<T extends Factory,R extends ReflectiveFactory> extends Object
| Modifier and Type | Field and Description |
|---|---|
protected Map<String,T> |
factories |
protected Class<T> |
factoryType |
protected Class<R> |
reflectiveFactoryType |
| Constructor and Description |
|---|
AbstractFactoryRegistryImpl(Class<T> factoryType,
Class<R> reflectiveFactoryType)
Creates a new factory registry.
|
| Modifier and Type | Method and Description |
|---|---|
T |
get(String name)
Get the factory registered under the given name.
|
T |
getDefault()
Get the default factory.
|
protected abstract T |
getDefault(List<T> filteredFactories)
Get the default factory from given list of available factories.
|
protected abstract void |
handleNoFactoryAvailable(String name)
Handle the case when no factory is available for given name
|
protected abstract R |
newReflectiveInstance(String name)
Creates an instance of reflective factory.
|
void |
register(T factory)
Register a new factory.
|
protected final Class<R extends ReflectiveFactory> reflectiveFactoryType
public T getDefault()
protected abstract T getDefault(List<T> filteredFactories)
filteredFactories - available factoriespublic T get(String name)
name - name of the factoryprotected abstract void handleNoFactoryAvailable(String name)
name - request factory nameprotected abstract R newReflectiveInstance(String name)
name - name of the instance to create.public final void register(T factory)
It will use FactoryName value as the default name.
It will also register the factory under names returned by FactoryNames.getNames()} if
it implements FactoryNames.
factory - factory to registerCopyright © 2016 FluentLenium. All Rights Reserved.