org.apache.sis.storage

## Interface Resource

- All Known Subinterfaces:
    Aggregate, DataSet, FeatureSet
  All Known Implementing Classes:
    DataStore, GeoTiffStore, LandsatStore, NetcdfStore

      public interface Resource

  Provides access to geospatial data in a `DataStore`. The ISO 19115 specification defines resource as an “identifiable asset or means that fulfills a requirement”. For example a resource can be a coverage of Sea Surface Temperature, or a coverage of water salinity, or the set of all buoys in a harbor, or an aggregation of all the above. A resource is not necessarily digital; it can be a paper document or an organization, in which case only metadata are provided. If the resource is digital, then `Resource`s should be instances of sub-types like `Aggregate` or `FeatureSet`.

  `DataStore`s are themselves closeable resources. If the data store contains resources for many feature types or coverages, then the data store will be an instance of `Aggregate`. The components of an aggregate can be themselves other aggregates, thus forming a tree.

  Relationship with ISO 19115: this type is closely related to the `DS_Resource` type defined by ISO 19115. The Apache SIS type differs from the ISO type by being more closely related to data extraction, as can been seen from the checked `DataStoreException` thrown by most methods. Convenience methods for frequently requested information – for example `DataSet​.getEnvelope()` – were added. The sub-types performing the actual data extraction – for example `FeatureSet` – are specific to Apache SIS.
  Since:
    0.8
  See Also:
    `Aggregate​.components()`

  Defined in the `sis-storage` module

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `Metadata` | `getMetadata()` Returns information about this resource.

- - ### Method Detail

    - #### getMetadata

          Metadata getMetadata()
                        throws DataStoreException

      Returns information about this resource. If this resource is an `Aggregate`, then the metadata may enumerate characteristics (spatio-temporal extents, feature types, range dimensions, etc.) of all components in the aggregate, or summarize them (for example by omitting extents that are fully included in larger extents). If this resource is a `DataSet`, then the metadata shall contain only the information that apply to that particular dataset, optionally with a reference to the parent metadata (see below).

      Some relationships between metadata and resources are:

      - `metadata` / `parentMetadata` / `title`:
        a human-readable caption for `DataStore​.getMetadata()` (if not redundant with this metadata).
      - `metadata` / `identificationInfo` / `citation` / `title`:
        a human-readable designation for this resource.
      - `metadata` / `identificationInfo` / `associatedResource` / `name` / `title`:
        a human-readable designation for parent, children or other related resources. May be omitted if too expensive to compute.
      - `metadata` / `metadataScope` / `resourceScope`:
        `ScopeCode​.DATASET` if the resource is a `DataSet`, or `ScopeCode​.SERVICE` if the resource is a web service, or `ScopeCode​.SERIES` or `ScopeCode​.INITIATIVE` if the resource is an `Aggregate` other than a transfer aggregate.
      - `metadata` / `contentInfo` / `featureType` / `featureTypeName`:
        names of feature types included in this resource. Example: “bridge”, “road”, “river”. etc.
      - `metadata` / `contentInfo` / `attributeGroup` / `attribute` / `sequenceIdentifier`:
        sample dimension names (or band numbers in simpler cases) of coverages or rasters included in this resource.
      Returns:
        information about this resource. Should not be `null`.
      Throws:
        `DataStoreException` - if an error occurred while reading the metadata.
      See Also:
        `DataStore​.getMetadata()`

Copyright © 2010–2017 The Apache Software Foundation. All rights reserved.