Package opennlp.tools.util

## Class BaseToolFactory

- java.lang.Object
- - opennlp.tools.util.BaseToolFactory

- Direct Known Subclasses:
    `ChunkerFactory`, `DoccatFactory`, `LanguageDetectorFactory`, `LemmatizerFactory`, `POSTaggerFactory`, `SentenceDetectorFactory`, `TokenizerFactory`, `TokenNameFinderFactory`

      public abstract class BaseToolFactory
      extends Object

  Base class for all tool `factories`.

  Extensions of this class should:

  - implement an empty constructor,
  - implement a constructor that takes the `ArtifactProvider`},
  - override `createArtifactMap()` and `createArtifactSerializersMap()` methods if necessary.

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `BaseToolFactory()` | All subclasses should have an empty constructor

  - ### Method Summary

    All Methods Static Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `static BaseToolFactory` | `create​(Class<? extends BaseToolFactory> factoryClass, ArtifactProvider artifactProvider)` | Instantiates a `BaseToolFactory` via a given `subclassName`.
    `static BaseToolFactory` | `create​(String subclassName, ArtifactProvider artifactProvider)` | Instantiates a `BaseToolFactory` via a given `subclassName`.
    `Map<String,​Object>` | `createArtifactMap()` | A model's implementation should call this constructor that creates a model programmatically.
    `Map<String,​ArtifactSerializer>` | `createArtifactSerializersMap()` | Creates a `Map` with pairs of keys and `ArtifactSerializer`.
    `Map<String,​String>` | `createManifestEntries()` |
    `abstract void` | `validateArtifactMap()` | Validates the parsed artifacts.

    - ### Methods inherited from class java.lang.Object

      `equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### BaseToolFactory

          public BaseToolFactory()

      All subclasses should have an empty constructor

  - ### Method Detail

    - #### createArtifactSerializersMap

          public Map<String,​ArtifactSerializer> createArtifactSerializersMap()

      Creates a `Map` with pairs of keys and `ArtifactSerializer`. The models implementation should call this method from `BaseModel#createArtifactSerializersMap`.

      The base implementation will return a `HashMap` that should be populated by subclasses.

    - #### createArtifactMap

          public Map<String,​Object> createArtifactMap()

      A model's implementation should call this constructor that creates a model programmatically.

      The base implementation will return a `HashMap` that should be populated by subclasses.

      Returns:
        Retrieves a `Map` with pairs of keys and objects.

    - #### createManifestEntries

          public Map<String,​String> createManifestEntries()

      Returns:
        Retrieves the manifest entries to be added to the model manifest.

    - #### validateArtifactMap

          public abstract void validateArtifactMap()
                                            throws InvalidFormatException

      Validates the parsed artifacts.

      Note: Subclasses should generally invoke `super.validateArtifactMap` at the beginning of this method.

      Throws:
        `InvalidFormatException` - Thrown if validation found invalid states.

    - #### create

          public static BaseToolFactory create​(String subclassName,
                                               ArtifactProvider artifactProvider)
                                        throws InvalidFormatException

      Instantiates a `BaseToolFactory` via a given `subclassName`.
      Parameters:
        `subclassName` - The class name used for instantiation. The `ExtensionLoader` mechanism is applied to load the requested `subclassName`.
        `artifactProvider` - The `ArtifactProvider` to be used.
      Returns:
        A valid `BaseToolFactory` instance.
      Throws:
        `InvalidFormatException` - Thrown if the `ExtensionLoader` mechanism failed to create the factory associated with `subclassName`.

    - #### create

          public static BaseToolFactory create​(Class<? extends BaseToolFactory> factoryClass,
                                               ArtifactProvider artifactProvider)
                                        throws InvalidFormatException

      Instantiates a `BaseToolFactory` via a given `subclassName`.
      Parameters:
        `factoryClass` - The class used for instantiation. The no-arg constructor of that class will be used to create and init the resulting object.
        `artifactProvider` - The `ArtifactProvider` to be used.
      Returns:
        A valid `BaseToolFactory` instance.
      Throws:
        `InvalidFormatException` - Thrown if the `ExtensionLoader` mechanism failed to create the factory associated with `subclassName`.