public class SimpleResourceFactory extends Object implements ResourceFactory
ResourceFactory
. This implementation
maintains a Map between the ResourceSpecifier
sub-interface name (e.g.
AnalysisEngineDescription
) and the class name of the resource to be constructed
from specifiers of that type.
UIMA developers who introduce new types of Resource
s or ResourceSpecifier
s may
create an instance of this class and use the addMapping(Class,Class)
method to register
a mapping between the ResourceSpecifier interface and the Class of the Resource that is to be
constructed from it. The SimpleResourceFactory
should then be registered with the
framework by calling
UIMAFramework.getResourceFactory()
.registerFactory(Class,ResourceFactory)
;
Modifier and Type | Field and Description |
---|---|
protected Map<Class<? extends ResourceSpecifier>,List<Class<? extends Resource>>> |
mClassMap
Map from ResourceSpecifier Class to List of Resource Classes.
|
Constructor and Description |
---|
SimpleResourceFactory() |
Modifier and Type | Method and Description |
---|---|
void |
addMapping(Class<? extends ResourceSpecifier> aSpecifierInterface,
Class<? extends Resource> aResourceClass)
Configures this
SimpleResourceFactory by adding a new mapping between a
ResourceSpecifier class and a Resource class. |
void |
addMapping(String aSpecifierInterfaceName,
String aResourceClassName)
Configures this
SimpleResourceFactory by adding a new mapping between a
ResourceSpecifier class and a Resource class. |
Resource |
produceResource(Class<? extends Resource> aResourceClass,
ResourceSpecifier aSpecifier,
Map<String,Object> aAdditionalParams)
Produces an appropriate
Resource instance from a ResourceSpecifier . |
public Resource produceResource(Class<? extends Resource> aResourceClass, ResourceSpecifier aSpecifier, Map<String,Object> aAdditionalParams) throws ResourceInitializationException
Resource
instance from a ResourceSpecifier
.produceResource
in interface ResourceFactory
aResourceClass
- the interface of the resource to be produced. This is intended to be a standard UIMA
interface such as TextAnalysisEngine
or ASB
.aSpecifier
- an object that specifies how to acquire an instance of a Resource
.aAdditionalParams
- a Map containing additional parameters to pass to the
Resource.initialize(ResourceSpecifier,Map)
method. May be null
if there are no parameters.Resource
instance. Returns null
if this factory does
not know how to create a Resource from the ResourceSpecifier
provided.ResourceInitializationException
- if a failure occurred during production of the resourceResourceFactory.produceResource(Class, ResourceSpecifier,Map)
public void addMapping(Class<? extends ResourceSpecifier> aSpecifierInterface, Class<? extends Resource> aResourceClass)
SimpleResourceFactory
by adding a new mapping between a
ResourceSpecifier
class and a Resource
class.aSpecifierInterface
- the subinterface of ResourceSpecifier
.aResourceClass
- a subclass of Resource
that is to be instantiated from resource
specifiers of the given class.public void addMapping(String aSpecifierInterfaceName, String aResourceClassName) throws ClassNotFoundException
SimpleResourceFactory
by adding a new mapping between a
ResourceSpecifier
class and a Resource
class.aSpecifierInterfaceName
- name of the subinterface of ResourceSpecifier
.aResourceClassName
- the name of a subclass of Resource
that is to be instantiated from
resource specifiers of the given class.ClassNotFoundException
- -Copyright © 2006–2017 The Apache Software Foundation. All rights reserved.