Package org.apache.uima.resource

# Interface DataResource

All Superinterfaces:
  `Resource`

All Known Implementing Classes:
  `ConfigurableDataResource_impl`, `DataResource_impl`

public interface DataResource extends Resource
`DataResource` is a simple resource that provides access to data. All `DataResource`s will implement the `getInputStream()` method to provide access to their data.

`DataResource`s may optionally implement `getUrl()`, which would return the URL where the data is located. This may be necessary for some applications, but it is strongly recommended the `getInputStream()` be used whenever possible, because accessing the data directly via the URL does not allow the ResourceManager to assist in caching or sharing of data.

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final String`
  `PARAM_RELATIVE_PATH_RESOLVER`
  Key for the initialization parameter whose value is a reference to the `RelativePathResolver` that this DataResource should use to resolve relative resource URLs.

  ### 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

  Modifier and Type
  Method
  Description
  `boolean`
  `equals(Object aObj)`
  Determines if this `DataResource` is equal to another `DataResource`.
  `InputStream`
  `getInputStream()`
  Gets an `InputStream` to the data.
  `URI`
  `getUri()`
  Gets the URI of the data.
  `URL`
  `getUrl()`
  Gets the URL where the data is stored.
  `int`
  `hashCode()`
  Gest the hash code for this `DataResource`.

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

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

- ## Field Details

  - ### PARAM_RELATIVE_PATH_RESOLVER

    static final String PARAM_RELATIVE_PATH_RESOLVER
    Key for the initialization parameter whose value is a reference to the `RelativePathResolver` that this DataResource should use to resolve relative resource URLs. This value is used as a key in the `aAdditionalParams` Map that is passed to the `Resource.initialize(ResourceSpecifier,Map)` method.
    See Also:
      - Constant Field Values

- ## Method Details

  - ### getInputStream

    InputStream getInputStream() throws IOException
    Gets an `InputStream` to the data. It is the caller's responsibility to close this input stream when finished with it.
    Returns:
      an InputStream to the data
    Throws:
      `IOException` - if an I/O error occurred when trying to open the stream

  - ### getUri

    URI getUri()
    Gets the URI of the data. In general, this method will return a URI that is equivalent to the URL returned by `getUrl()`. However, in the case where `getUrl()` returns null (indicating no URL available), this method may still return a URI. This can be the case if the URI does not use a standard protocol such as http or file.
    Returns:
      The URI of the data

  - ### getUrl

    URL getUrl()
    Gets the URL where the data is stored. This method may return null if there is no appropriate URL (for example if the data is stored in a relational database). It is recommended that the `getInputStream()` method be used whenever possible - see the class comment for more information.
    Returns:
      the URL where the data is stored, or null if this is not available.

  - ### equals

    boolean equals(Object aObj)
    Determines if this `DataResource` is equal to another `DataResource`. It is important that `DataResource` implementations override this method appropriately, because the `ResourceManager` can make use of this method to determine when cached data can be reused. Two `DataResource`s that are `equal` according to this method will be considered to provide access to the same data; therefore, a common cache can be used.
    Overrides:
      `equals` in class `Object`
    Parameters:
      `aObj` - the object to compare to
    Returns:
      true if and only if `aObj` is a `DataResource` and provides access to the same data as this object.

  - ### hashCode

    int hashCode()
    Gest the hash code for this `DataResource`. As always, if the `equals(Object)` method is overridden, this method should also be overridden. Two objects that are `equal` must have the same hash code.
    Overrides:
      `hashCode` in class `Object`
    Returns:
      the hash code for this object