T - type of factoriesR - type of reflective factoriespublic abstract class AbstractFactoryRegistryImpl<T extends Factory,R extends ReflectiveFactory>
extends java.lang.Object
| Modifier and Type | Field and Description |
|---|---|
protected java.util.Map<java.lang.String,T> |
factories |
protected java.lang.Class<T> |
factoryType |
protected java.lang.Class<R> |
reflectiveFactoryType |
| Constructor and Description |
|---|
AbstractFactoryRegistryImpl(java.lang.Class<T> factoryType,
java.lang.Class<R> reflectiveFactoryType)
Creates a new factory registry.
|
| Modifier and Type | Method and Description |
|---|---|
T |
get(java.lang.String name)
Get the factory registered under the given name.
|
T |
getDefault()
Get the default factory.
|
protected abstract T |
getDefault(java.util.List<T> filteredFactories)
Get the default factory from given list of available factories.
|
protected abstract void |
handleNoFactoryAvailable(java.lang.String name)
Handle the case when no factory is available for given name
|
protected abstract R |
newReflectiveInstance(java.lang.String name)
Creates an instance of reflective factory.
|
void |
register(T factory)
Register a new factory.
|
protected final java.lang.Class<R extends ReflectiveFactory> reflectiveFactoryType
public T getDefault()
protected abstract T getDefault(java.util.List<T> filteredFactories)
filteredFactories - available factoriespublic T get(java.lang.String name)
name - name of the factoryprotected abstract void handleNoFactoryAvailable(java.lang.String name)
name - request factory nameprotected abstract R newReflectiveInstance(java.lang.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 © 2018 FluentLenium. All Rights Reserved.