Package org.fluentlenium.configuration
Class AbstractFactoryRegistryImpl<T extends Factory,R extends ReflectiveFactory>
- java.lang.Object
-
- org.fluentlenium.configuration.AbstractFactoryRegistryImpl<T,R>
-
- Type Parameters:
T
- type of factoriesR
- type of reflective factories
- Direct Known Subclasses:
CapabilitiesRegistryImpl
,WebDriversRegistryImpl
public abstract class AbstractFactoryRegistryImpl<T extends Factory,R extends ReflectiveFactory> extends java.lang.Object
Abstract registry of FluentLenium factories.
-
-
Field Summary
Fields Modifier and Type Field Description protected java.util.Map<java.lang.String,T>
factories
protected java.lang.Class<T>
factoryType
protected java.lang.Class<R>
reflectiveFactoryType
-
Constructor Summary
Constructors Constructor Description AbstractFactoryRegistryImpl(java.lang.Class<T> factoryType, java.lang.Class<R> reflectiveFactoryType)
Creates a new factory registry.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method 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 nameprotected abstract R
newReflectiveInstance(java.lang.String name)
Creates an instance of reflective factory.void
register(T factory)
Register a new factory.
-
-
-
Method Detail
-
getDefault
public T getDefault()
Get the default factory.- Returns:
- default factory
-
getDefault
protected abstract T getDefault(java.util.List<T> filteredFactories)
Get the default factory from given list of available factories.- Parameters:
filteredFactories
- available factories- Returns:
- default factory
-
get
public T get(java.lang.String name)
Get the factory registered under the given name.- Parameters:
name
- name of the factory- Returns:
- factory
-
handleNoFactoryAvailable
protected abstract void handleNoFactoryAvailable(java.lang.String name)
Handle the case when no factory is available for given name- Parameters:
name
- request factory name
-
newReflectiveInstance
protected abstract R newReflectiveInstance(java.lang.String name)
Creates an instance of reflective factory.- Parameters:
name
- name of the instance to create.- Returns:
- new instance
-
register
public final void register(T factory)
Register a new factory.It will use
FactoryName
value as the default name.It will also register the factory under names returned by
FactoryNames.getNames()
} if it implementsFactoryNames
.- Parameters:
factory
- factory to register
-
-