org.apache.uima.collection

## Interface CollectionReader

- All Superinterfaces:
    BaseCollectionReader, ConfigurableResource, Resource
  All Known Implementing Classes:
    CollectionReader_ImplBase

      public interface CollectionReader
      extends BaseCollectionReader, ConfigurableResource

  A `CollectionReader` is used to iterate over the elements of a Collection. Iteration is done using the `BaseCollectionReader.hasNext()` and `getNext(CAS)` methods. Each element of the collection is returned in a `CAS`.

  A consuming `CollectionReader` is one that removes each element from the collection as it is read. To find out whether a `CollectionReader` will consume elements in this way, call the `BaseCollectionReader.isConsuming()` method.

  Users of a `CollectionReader` should always `close` it when they are finished using it.

  `CollectionReader`s are also `ConfigurableResource`s, and can be instantiated from descriptors. See `XMLParser.parseCollectionReaderDescription(XMLInputSource)` and `UIMAFramework.produceCollectionReader(ResourceSpecifier,Map)` for more information.

- - ### Field Summary

    - ### Fields inherited from interface org.apache.uima.resource.Resource

      `PARAM_AGGREGATE_SOFA_MAPPINGS, PARAM_CONFIG_MANAGER, PARAM_CONFIG_PARAM_SETTINGS, PARAM_EXTERNAL_OVERRIDE_SETTINGS, PARAM_PERFORMANCE_TUNING_SETTINGS, PARAM_RESOURCE_MANAGER, PARAM_UIMA_CONTEXT`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Deprecated Methods
    Modifier and Type | Method and Description
    --- | ---
    `CasInitializer` | `getCasInitializer()` Deprecated. As of v2.0 CAS Initializers are deprecated.
    `void` | `getNext(CAS aCAS)` Gets the next element of the collection.
    `void` | `setCasInitializer(CasInitializer aCasInitializer)` Deprecated. As of v2.0 CAS Initializers are deprecated.
    `void` | `typeSystemInit(TypeSystem aTypeSystem)` Informs this CollectionReader that the CAS TypeSystem has changed.

    - ### Methods inherited from interface org.apache.uima.collection.base_cpm.BaseCollectionReader

      `close, getProcessingResourceMetaData, getProgress, hasNext, isConsuming`

    - ### Methods inherited from interface org.apache.uima.resource.ConfigurableResource

      `getConfigParameterValue, getConfigParameterValue, reconfigure, setConfigParameterValue, setConfigParameterValue`

    - ### Methods inherited from interface org.apache.uima.resource.Resource

      `destroy, getLogger, getMetaData, getResourceManager, getUimaContext, getUimaContextAdmin, initialize, setLogger`

- - ### Method Detail

    - #### typeSystemInit

          void typeSystemInit(TypeSystem aTypeSystem)
                       throws ResourceInitializationException

      Informs this CollectionReader that the CAS TypeSystem has changed. The CPM calls this method immediately following the call to `Resource.initialize(ResourceSpecifier,Map)`, and will call it again whenever the CAS TypeSystem changes.

      In this method, the CollectionReader should use the `TypeSystem` to resolve the names of Type and Features to the actual `Type` and `Feature` objects, which can then be used during processing.

      Parameters:
        `aTypeSystem` - the CAS TypeSystem
      Throws:
        `ResourceInitializationException` - if the type system is not compatible with this Collection Reader

    - #### getNext

          void getNext(CAS aCAS)
                throws IOException,
                       CollectionException

      Gets the next element of the collection. The element will be stored in the provided CAS object. If this is a consuming `CollectionReader` (see `BaseCollectionReader.isConsuming()`), this element will also be removed from the collection.
      Parameters:
        `aCAS` - the CAS to populate with the next element of the collection
      Throws:
        `UIMA_IllegalStateException` - if there are no more elements left in the collection
        `IOException` - if an I/O failure occurs
        `CollectionException` - if there is some other problem with reading from the Collection

    - #### getCasInitializer

          @Deprecated
          CasInitializer getCasInitializer()

      Deprecated. As of v2.0 CAS Initializers are deprecated.
      Gets the CAS Initializer that has been assigned to this Collection Reader. Note that CollectionReader implementations are not required to make use of the CAS Initializer - refer to the documentation for your specific Collection Reader.
      Returns:
        the CAS Initializer for this Collection Reader

    - #### setCasInitializer

          @Deprecated
          void setCasInitializer(CasInitializer aCasInitializer)

      Deprecated. As of v2.0 CAS Initializers are deprecated.
      Assigns a CAS Initializer for this Collection Reader to use. Note that CollectionReader implementations are not required to make use of the CAS Initializer - refer to the documentation for your specific Collection Reader.
      Parameters:
        `aCasInitializer` - the CAS Initializer for this Collection Reader

Copyright © 2006–2022 The Apache Software Foundation. All rights reserved.