Class SimpleResourceFactory

java.lang.Object
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 Details

    • 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 Details

    • SimpleResourceFactory

      public SimpleResourceFactory()
  • Method Details

    • 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:
    • 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 - -