org.apache.uima.util
Class SimpleResourceFactory

java.lang.Object
  extended by org.apache.uima.util.SimpleResourceFactory
All Implemented Interfaces:
ResourceFactory

public class SimpleResourceFactory
extends Object
implements ResourceFactory

A simple implementation of a 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 Resources or ResourceSpecifiers 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);


Field Summary
protected  Map<Class<? extends ResourceSpecifier>,List<Class<? extends Resource>>> mClassMap
          Map from ResourceSpecifier Class to List of Resource Classes.
 
Constructor Summary
SimpleResourceFactory()
           
 
Method Summary
 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.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

mClassMap

protected Map<Class<? extends ResourceSpecifier>,List<Class<? extends Resource>>> mClassMap
Map from ResourceSpecifier Class to List of Resource Classes. Resource initialization is attempted in reverse order through this List, so more recently registered classes are tried first.

Constructor Detail

SimpleResourceFactory

public SimpleResourceFactory()
Method Detail

produceResource

public Resource produceResource(Class<? extends Resource> aResourceClass,
                                ResourceSpecifier aSpecifier,
                                Map<String,Object> aAdditionalParams)
                         throws ResourceInitializationException
Produces an appropriate Resource instance from a ResourceSpecifier.

Specified by:
produceResource in interface ResourceFactory
Parameters:
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.
Returns:
a Resource instance. Returns null if this factory does not know how to create a Resource from the ResourceSpecifier provided.
Throws:
ResourceInitializationException - if a failure occurred during production of the resource
See Also:
ResourceFactory.produceResource(Class, ResourceSpecifier,Map)

addMapping

public 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.

Parameters:
aSpecifierInterface - the subinterface of ResourceSpecifier.
aResourceClass - a subclass of Resource that is to be instantiated from resource specifiers of the given class.

addMapping

public void addMapping(String aSpecifierInterfaceName,
                       String aResourceClassName)
                throws ClassNotFoundException
Configures this SimpleResourceFactory by adding a new mapping between a ResourceSpecifier class and a Resource class.

Parameters:
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.
Throws:
ClassNotFoundException


Copyright © 2010 The Apache Software Foundation. All Rights Reserved.