Package org.apache.sis.metadata.iso

## Class DefaultMetadata

- Object
- - AbstractMetadata
  - - ModifiableMetadata
    - - ISOMetadata
      - - DefaultMetadata

- All Implemented Interfaces:
    `Serializable`, `Emptiable`, `LenientComparable`, `IdentifiedObject`, `Metadata`

      public class DefaultMetadata
      extends ISOMetadata
      implements Metadata

  Root entity which defines metadata about a resource or resources. The following properties are mandatory or conditional (i.e. mandatory under some circumstances) in a well-formed metadata according ISO 19115:
  `MD_Metadata` `├─language…………………………………………………` Language used for documenting metadata. `├─characterSet………………………………………` Full name of the character coding standard used for the metadata set. `├─contact……………………………………………………` Parties responsible for the metadata information. `│ ├─party………………………………………………` Information about the parties. `│ │ └─name………………………………………` Name of the party. `│ └─role…………………………………………………` Function performed by the responsible party. `├─identificationInfo………………………` Basic information about the resource(s) to which the metadata applies. `│ ├─citation………………………………………` Citation data for the resource(s). `│ │ ├─title……………………………………` Name by which the cited resource is known. `│ │ └─date………………………………………` Reference date for the cited resource. `│ ├─abstract………………………………………` Brief narrative summary of the content of the resource(s). `│ ├─extent……………………………………………` Bounding polygon, vertical, and temporal extent of the dataset. `│ │ ├─description……………………` The spatial and temporal extent for the referring object. `│ │ ├─geographicElement……` Geographic component of the extent of the referring object. `│ │ ├─temporalElement…………` Temporal component of the extent of the referring object. `│ │ └─verticalElement…………` Vertical component of the extent of the referring object. `│ └─topicCategory…………………………` Main theme(s) of the dataset. `├─dateInfo…………………………………………………` Date(s) associated with the metadata. `├─metadataScope……………………………………` The scope or type of resource for which metadata is provided. `│ └─resourceScope…………………………` Resource scope `└─parentMetadata…………………………………` Identification of the parent metadata record. `├─title………………………………………………` Name by which the cited resource is known. `└─date…………………………………………………` Reference date for the cited resource.
  Localization
  When this object is marshalled as an ISO 19139 compliant XML document, the value given to the `setLanguage(Locale)` method will be used for the localization of `InternationalString` and `CodeList` instances of in this `DefaultMetadata` object and every children, as required by INSPIRE rules. If no language were specified, then the default locale will be the one defined in the `XML​.LOCALE` marshaller property, if any.
  Limitations
  - Instances of this class are not synchronized for multi-threading. Synchronization, if needed, is caller's responsibility.
  - Serialized objects of this class are not guaranteed to be compatible with future Apache SIS releases. Serialization support is appropriate for short term storage or RMI between applications running the same version of Apache SIS. For long term storage, use `XML` instead.
  Since:
    0.3
  See Also:
    Serialized Form

  Defined in the `sis-metadata` module

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class ModifiableMetadata

      `ModifiableMetadata​.State`

  - ### Field Summary

    - ### Fields inherited from class ISOMetadata

      `identifiers`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `DefaultMetadata()` | Creates an initially empty metadata.
    `DefaultMetadata​(ResponsibleParty contact, Date dateStamp, Identification identificationInfo)` | Creates a meta data initialized to the specified values.
    `DefaultMetadata​(Metadata object)` | Constructs a new instance initialized with the values from the specified metadata object.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `static DefaultMetadata` | `castOrCopy​(Metadata object)` | Returns a SIS metadata implementation with the values of the given arbitrary implementation.
    `Collection<AcquisitionInformation>` | `getAcquisitionInformation()` | Returns information about the acquisition of the data.
    `Collection<Citation>` | `getAlternativeMetadataReferences()` | Returns reference(s) to alternative metadata or metadata in a non-ISO standard for the same resource.
    `Collection<ApplicationSchemaInformation>` | `getApplicationSchemaInfo()` | Returns information about the conceptual schema of a dataset.
    `CharacterSet` | `getCharacterSet()` | Deprecated. Replaced by `getLocalesAndCharsets().values()`.
    `Collection<Charset>` | `getCharacterSets()` | Deprecated. Replaced by `getLocalesAndCharsets().values()`.
    `Collection<ResponsibleParty>` | `getContacts()` | Returns the parties responsible for the metadata information.
    `Collection<ContentInformation>` | `getContentInfo()` | Returns information about the feature catalogue and describes the coverage and image data characteristics.
    `Collection<DataQuality>` | `getDataQualityInfo()` | Returns overall assessment of quality of a resource(s).
    `String` | `getDataSetUri()` | Deprecated. As of ISO 19115:2014, replaced by `getIdentificationInfo()` followed by `AbstractIdentification​.getCitation()` followed by `DefaultCitation​.getOnlineResources()`.
    `Collection<CitationDate>` | `getDateInfo()` | Returns the date(s) associated with the metadata.
    `Date` | `getDateStamp()` | Deprecated. As of ISO 19115:2014, replaced by `getDateInfo()`.
    `Distribution` | `getDistributionInfo()` | Returns information about the distributor of and options for obtaining the resource(s).
    `String` | `getFileIdentifier()` | Deprecated. As of ISO 19115:2014, replaced by `getMetadataIdentifier()` in order to include the codespace attribute.
    `Collection<String>` | `getHierarchyLevelNames()` | Deprecated. As of ISO 19115:2014, replaced by `getMetadataScopes()` followed by `DefaultMetadataScope​.getName()`.
    `Collection<ScopeCode>` | `getHierarchyLevels()` | Deprecated. As of ISO 19115:2014, replaced by `getMetadataScopes()` followed by `DefaultMetadataScope​.getResourceScope()`.
    `Collection<Identification>` | `getIdentificationInfo()` | Returns basic information about the resource(s) to which the metadata applies.
    `Locale` | `getLanguage()` | Deprecated. Replaced by `getLocalesAndCharsets().keySet()`.
    `Collection<Locale>` | `getLanguages()` | Deprecated. Replaced by `getLocalesAndCharsets().keySet()`.
    `Collection<Locale>` | `getLocales()` | Deprecated. Replaced by `getLocalesAndCharsets().keySet()`.
    `Map<Locale,​Charset>` | `getLocalesAndCharsets()` | Returns the language(s) and character set(s) used for documenting metadata.
    `Collection<Constraints>` | `getMetadataConstraints()` | Returns restrictions on the access and use of metadata.
    `Collection<MetadataExtensionInformation>` | `getMetadataExtensionInfo()` | Returns information describing metadata extensions.
    `Identifier` | `getMetadataIdentifier()` | Returns a unique identifier for this metadata record.
    `Collection<OnlineResource>` | `getMetadataLinkages()` | Returns the online location(s) where the metadata is available.
    `MaintenanceInformation` | `getMetadataMaintenance()` | Returns information about the frequency of metadata updates, and the scope of those updates.
    `Collection<Citation>` | `getMetadataProfiles()` | Returns the citation(s) for the profile(s) of the metadata standard to which the metadata conform.
    `Collection<DefaultMetadataScope>` | `getMetadataScopes()` | Returns the scope or type of resource for which metadata is provided.
    `String` | `getMetadataStandardName()` | Deprecated. As of ISO 19115:2014, replaced by `getMetadataStandards()` followed by `DefaultCitation​.getTitle()`.
    `Collection<Citation>` | `getMetadataStandards()` | Returns the citation(s) for the standard(s) to which the metadata conform.
    `String` | `getMetadataStandardVersion()` | Deprecated. As of ISO 19115:2014, replaced by `getMetadataStandards()` followed by `DefaultCitation​.getEdition()`.
    `String` | `getParentIdentifier()` | Deprecated. As of ISO 19115:2014, replaced by `getParentMetadata()`.
    `Citation` | `getParentMetadata()` | Returns an identification of the parent metadata record.
    `Collection<PortrayalCatalogueReference>` | `getPortrayalCatalogueInfo()` | Returns information about the catalogue of rules defined for the portrayal of a resource(s).
    `Collection<ReferenceSystem>` | `getReferenceSystemInfo()` | Returns the description of the spatial and temporal reference systems used in the dataset.
    `Collection<Lineage>` | `getResourceLineages()` | Returns information about the provenance, sources and/or the production processes applied to the resource.
    `Collection<SpatialRepresentation>` | `getSpatialRepresentationInfo()` | Returns the digital representation of spatial information in the dataset.
    `void` | `setAcquisitionInformation​(Collection<? extends AcquisitionInformation> newValues)` | Sets information about the acquisition of the data.
    `void` | `setAlternativeMetadataReferences​(Collection<? extends Citation> newValues)` | Set reference(s) to alternative metadata or metadata in a non-ISO standard for the same resource.
    `void` | `setApplicationSchemaInfo​(Collection<? extends ApplicationSchemaInformation> newValues)` | Returns information about the conceptual schema of a dataset.
    `void` | `setCharacterSet​(CharacterSet newValue)` | Deprecated. Replaced by `getLocalesAndCharsets().put(…, newValue)`.
    `void` | `setCharacterSets​(Collection<? extends Charset> newValues)` | Deprecated. Replaced by putting values in `getLocalesAndCharsets()` map.
    `void` | `setContacts​(Collection<? extends ResponsibleParty> newValues)` | Sets the parties responsible for the metadata information.
    `void` | `setContentInfo​(Collection<? extends ContentInformation> newValues)` | Sets information about the feature catalogue and describes the coverage and image data characteristics.
    `void` | `setDataQualityInfo​(Collection<? extends DataQuality> newValues)` | Sets overall assessment of quality of a resource(s).
    `void` | `setDataSetUri​(String newValue)` | Deprecated. As of ISO 19115:2014, replaced by `getIdentificationInfo()` followed by `AbstractIdentification​.getCitation()` followed by `DefaultCitation​.setOnlineResources(Collection)`.
    `void` | `setDateInfo​(Collection<? extends CitationDate> newValues)` | Sets the date(s) associated with the metadata.
    `void` | `setDateStamp​(Date newValue)` | Deprecated. As of ISO 19115:2014, replaced by `setDateInfo(Collection)`.
    `void` | `setDistributionInfo​(Distribution newValue)` | Sets information about the distributor of and options for obtaining the resource(s).
    `void` | `setFileIdentifier​(String newValue)` | Deprecated. As of ISO 19115:2014, replaced by `setMetadataIdentifier(Identifier)`
    `void` | `setHierarchyLevelNames​(Collection<? extends String> newValues)` | Deprecated. As of ISO 19115:2014, replaced by `setMetadataScopes(Collection)` and `DefaultMetadataScope​.setName(InternationalString)`.
    `void` | `setHierarchyLevels​(Collection<? extends ScopeCode> newValues)` | Deprecated. As of ISO 19115:2014, replaced by `setMetadataScopes(Collection)` and `DefaultMetadataScope​.setResourceScope(ScopeCode)`.
    `void` | `setIdentificationInfo​(Collection<? extends Identification> newValues)` | Sets basic information about the resource(s) to which the metadata applies.
    `void` | `setLanguage​(Locale newValue)` | Deprecated. Replaced by `getLocalesAndCharsets().put(newValue, …)`.
    `void` | `setLanguages​(Collection<Locale> newValues)` | Deprecated. Replaced by putting keys in `getLocalesAndCharsets()` map.
    `void` | `setLocales​(Collection<? extends Locale> newValues)` | Deprecated. Replaced by putting keys in `getLocalesAndCharsets()`.
    `void` | `setLocalesAndCharsets​(Map<? extends Locale,​? extends Charset> newValues)` | Sets the language(s) and character set(s) used within the dataset.
    `void` | `setMetadataConstraints​(Collection<? extends Constraints> newValues)` | Sets restrictions on the access and use of metadata.
    `void` | `setMetadataExtensionInfo​(Collection<? extends MetadataExtensionInformation> newValues)` | Sets information describing metadata extensions.
    `void` | `setMetadataIdentifier​(Identifier newValue)` | Sets the unique identifier for this metadata record.
    `void` | `setMetadataLinkages​(Collection<? extends OnlineResource> newValues)` | Sets the online location(s) where the metadata is available.
    `void` | `setMetadataMaintenance​(MaintenanceInformation newValue)` | Sets information about the frequency of metadata updates, and the scope of those updates.
    `void` | `setMetadataProfiles​(Collection<? extends Citation> newValues)` | Set the citation(s) for the profile(s) of the metadata standard to which the metadata conform.
    `void` | `setMetadataScopes​(Collection<? extends DefaultMetadataScope> newValues)` | Sets the scope or type of resource for which metadata is provided.
    `void` | `setMetadataStandardName​(String newValue)` | Deprecated. As of ISO 19115:2014, replaced by `getMetadataStandards()` followed by `DefaultCitation​.setTitle(InternationalString)`.
    `void` | `setMetadataStandards​(Collection<? extends Citation> newValues)` | Sets the citation(s) for the standard(s) to which the metadata conform.
    `void` | `setMetadataStandardVersion​(String newValue)` | Deprecated. As of ISO 19115:2014, replaced by `getMetadataStandards()` followed by `DefaultCitation​.setEdition(InternationalString)`.
    `void` | `setParentIdentifier​(String newValue)` | Deprecated. As of ISO 19115:2014, replaced by `getParentMetadata()`.
    `void` | `setParentMetadata​(Citation newValue)` | Sets an identification of the parent metadata record.
    `void` | `setPortrayalCatalogueInfo​(Collection<? extends PortrayalCatalogueReference> newValues)` | Sets information about the catalogue of rules defined for the portrayal of a resource(s).
    `void` | `setReferenceSystemInfo​(Collection<? extends ReferenceSystem> newValues)` | Sets the description of the spatial and temporal reference systems used in the dataset.
    `void` | `setResourceLineages​(Collection<? extends Lineage> newValues)` | Sets information about the provenance, sources and/or the production processes applied to the resource.
    `void` | `setSpatialRepresentationInfo​(Collection<? extends SpatialRepresentation> newValues)` | Sets the digital representation of spatial information in the dataset.

    - ### Methods inherited from class ISOMetadata

      `getIdentifier, getIdentifierMap, getIdentifiers, getStandard, setIdentifier, transitionTo`

    - ### Methods inherited from class ModifiableMetadata

      `checkWritePermission, checkWritePermission, collectionType, copyCollection, copyList, copyMap, copySet, freeze, isModifiable, nonNullCollection, nonNullList, nonNullMap, nonNullSet, singleton, state, unmodifiable, writeCollection, writeList, writeMap, writeSet`

    - ### Methods inherited from class AbstractMetadata

      `asMap, asTreeTable, equals, equals, getInterface, hashCode, isEmpty, prune, toString`

    - ### Methods inherited from class Object

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### DefaultMetadata

          public DefaultMetadata()

      Creates an initially empty metadata.

    - #### DefaultMetadata

          public DefaultMetadata​(ResponsibleParty contact,
                                 Date dateStamp,
                                 Identification identificationInfo)

      Creates a meta data initialized to the specified values.
      Parameters:
        `contact` - party responsible for the metadata information.
        `dateStamp` - date that the metadata was created.
        `identificationInfo` - basic information about the resource to which the metadata applies.

    - #### DefaultMetadata

          public DefaultMetadata​(Metadata object)

      Constructs a new instance initialized with the values from the specified metadata object. This is a shallow copy constructor, since the other metadata contained in the given object are not recursively copied.
      Parameters:
        `object` - the metadata to copy values from, or `null` if none.
      See Also:
        `castOrCopy(Metadata)`

  - ### Method Detail

    - #### castOrCopy

          public static DefaultMetadata castOrCopy​(Metadata object)

      Returns a SIS metadata implementation with the values of the given arbitrary implementation. This method performs the first applicable action in the following choices:
      - If the given object is `null`, then this method returns `null`.
      - Otherwise if the given object is already an instance of `DefaultMetadata`, then it is returned unchanged.
      - Otherwise a new `DefaultMetadata` instance is created using the copy constructor and returned. Note that this is a shallow copy operation, since the other metadata contained in the given object are not recursively copied.
      Parameters:
        `object` - the object to get as a SIS implementation, or `null` if none.
      Returns:
        a SIS implementation containing the values of the given object (may be the given object itself), or `null` if the argument was null.

    - #### getMetadataIdentifier

          @UML(identifier="metadataIdentifier",
               obligation=OPTIONAL,
               specification=ISO_19115)
          public Identifier getMetadataIdentifier()

      Returns a unique identifier for this metadata record.
      Note: OGC 07-045 (Catalog Service Specification — ISO metadata application profile) recommends usage of a UUID (Universal Unique Identifier) as specified by IETF to ensure identifier’s uniqueness.
      Returns:
        unique identifier for this metadata record, or `null`.
      Since:
        0.5

    - #### setMetadataIdentifier

          public void setMetadataIdentifier​(Identifier newValue)

      Sets the unique identifier for this metadata record.
      Parameters:
        `newValue` - the new identifier, or `null` if none.
      Since:
        0.5

    - #### getFileIdentifier

          @Deprecated
          public String getFileIdentifier()

      Deprecated.
      As of ISO 19115:2014, replaced by `getMetadataIdentifier()` in order to include the codespace attribute.
      Returns the unique identifier for this metadata file.
      Specified by:
        `getFileIdentifier` in interface `Metadata`
      Returns:
        unique identifier for this metadata file, or `null`.

    - #### setFileIdentifier

          @Deprecated
          public void setFileIdentifier​(String newValue)

      Deprecated.
      As of ISO 19115:2014, replaced by `setMetadataIdentifier(Identifier)`
      Sets the unique identifier for this metadata file.
      Parameters:
        `newValue` - the new identifier, or `null` if none.

    - #### getLocalesAndCharsets

          @UML(identifier="defaultLocale+otherLocale",
               obligation=CONDITIONAL,
               specification=ISO_19115)
          public Map<Locale,​Charset> getLocalesAndCharsets()

      Returns the language(s) and character set(s) used for documenting metadata. The first entry in iteration order is the default language and its character set. All other entries, if any, are alternate language(s) and character set(s) used within the resource.

      Unless another locale has been specified with the `XML​.LOCALE` property, this `DefaultMetadata` instance and its children will use the first locale returned by this method for marshalling `InternationalString` and `CodeList` instances in ISO 19115-2 compliant XML documents.

      Each (`Locale`, `Charset`) entry is equivalent to an instance of ISO 19115 `PT_Locale` class. The language code and the character set are mandatory elements in ISO standard. Consequently this map should not contain null key or null values, but Apache SIS implementations is tolerant for historical reasons. The same character set may be associated to many languages.

      Returns:
        language(s) and character set(s) used for documenting metadata.
      Since:
        1.0

    - #### setLocalesAndCharsets

          public void setLocalesAndCharsets​(Map<? extends Locale,​? extends Charset> newValues)

      Sets the language(s) and character set(s) used within the dataset. The first element in iteration order should be the default language. All other elements, if any, are alternate language(s) used within the resource.
      Parameters:
        `newValues` - the new language(s) and character set(s) used for documenting metadata.
      Since:
        1.0
      See Also:
        `XML​.LOCALE`

    - #### getLanguages

          @Deprecated
          public Collection<Locale> getLanguages()

      Deprecated.
      Replaced by `getLocalesAndCharsets().keySet()`.
      Returns the language(s) used for documenting metadata. The first element in iteration order is the default language. All other elements, if any, are alternate language(s) used within the resource.
      Returns:
        language(s) used for documenting metadata.
      Since:
        0.5

    - #### setLanguages

          @Deprecated
          public void setLanguages​(Collection<Locale> newValues)

      Deprecated.
      Replaced by putting keys in `getLocalesAndCharsets()` map.
      Sets the language(s) used for documenting metadata. The first element in iteration order shall be the default language. All other elements, if any, are alternate language(s) used within the resource.
      Parameters:
        `newValues` - the new languages.
      Since:
        0.5

    - #### getLanguage

          @Deprecated
          public Locale getLanguage()

      Deprecated.
      Replaced by `getLocalesAndCharsets().keySet()`.
      Returns the default language used for documenting metadata.
      Specified by:
        `getLanguage` in interface `Metadata`
      Returns:
        language used for documenting metadata, or `null`.

    - #### setLanguage

          @Deprecated
          public void setLanguage​(Locale newValue)

      Deprecated.
      Replaced by `getLocalesAndCharsets().put(newValue, …)`.
      Sets the language used for documenting metadata. This method modifies the collection returned by `getLanguages()` as below:
      - If the languages collection is empty, then this method sets the collection to the given `newValue`.
      - Otherwise the first element in the languages collection is replaced by the given `newValue`.
      Parameters:
        `newValue` - the new language.

    - #### getLocales

          @Deprecated
          public Collection<Locale> getLocales()

      Deprecated.
      Replaced by `getLocalesAndCharsets().keySet()`.
      Provides information about an alternatively used localized character string for a linguistic extension.
      Specified by:
        `getLocales` in interface `Metadata`
      Returns:
        alternatively used localized character string for a linguistic extension.

    - #### setLocales

          @Deprecated
          public void setLocales​(Collection<? extends Locale> newValues)

      Deprecated.
      Replaced by putting keys in `getLocalesAndCharsets()`.
      Sets information about an alternatively used localized character string for a linguistic extension.
      Parameters:
        `newValues` - the new locales.

    - #### getCharacterSets

          @Deprecated
          public Collection<Charset> getCharacterSets()

      Deprecated.
      Replaced by `getLocalesAndCharsets().values()`.
      Returns the character coding standard used for the metadata set.
      Returns:
        character coding standards used for the metadata.
      Since:
        0.5

    - #### setCharacterSets

          @Deprecated
          public void setCharacterSets​(Collection<? extends Charset> newValues)

      Deprecated.
      Replaced by putting values in `getLocalesAndCharsets()` map.
      Sets the character coding standard used for the metadata set.
      Parameters:
        `newValues` - the new character coding standards.
      Since:
        0.5

    - #### getCharacterSet

          @Deprecated
          public CharacterSet getCharacterSet()

      Deprecated.
      Replaced by `getLocalesAndCharsets().values()`.
      Returns the character coding standard used for the metadata set.
      Specified by:
        `getCharacterSet` in interface `Metadata`
      Returns:
        character coding standard used for the metadata, or `null`.

    - #### setCharacterSet

          @Deprecated
          public void setCharacterSet​(CharacterSet newValue)

      Deprecated.
      Replaced by `getLocalesAndCharsets().put(…, newValue)`.
      Sets the character coding standard used for the metadata set.
      Parameters:
        `newValue` - the new character set.

    - #### getParentMetadata

          @UML(identifier="parentMetadata",
               obligation=CONDITIONAL,
               specification=ISO_19115)
          public Citation getParentMetadata()

      Returns an identification of the parent metadata record. This is non-null if this metadata is a subset (child) of another metadata that is described elsewhere.
      Returns:
        identification of the parent metadata record, or `null` if none.
      Since:
        0.5

    - #### setParentMetadata

          public void setParentMetadata​(Citation newValue)

      Sets an identification of the parent metadata record.
      Parameters:
        `newValue` - the new identification of the parent metadata record.
      Since:
        0.5

    - #### getParentIdentifier

          @Deprecated
          public String getParentIdentifier()

      Deprecated.
      As of ISO 19115:2014, replaced by `getParentMetadata()`.
      Returns the file identifier of the metadata to which this metadata is a subset (child).
      Specified by:
        `getParentIdentifier` in interface `Metadata`
      Returns:
        identifier of the metadata to which this metadata is a subset, or `null`.

    - #### setParentIdentifier

          @Deprecated
          public void setParentIdentifier​(String newValue)

      Deprecated.
      As of ISO 19115:2014, replaced by `getParentMetadata()`.
      Sets the file identifier of the metadata to which this metadata is a subset (child).
      Parameters:
        `newValue` - the new parent identifier.

    - #### getMetadataScopes

          @UML(identifier="metadataScope",
               obligation=CONDITIONAL,
               specification=ISO_19115)
          public Collection<DefaultMetadataScope> getMetadataScopes()

      Returns the scope or type of resource for which metadata is provided.
      Upcoming API change — generalization
      The element type will be changed to the `MetadataScope` interface when GeoAPI will provide it (tentatively in GeoAPI 3.1).
      Returns:
        scope or type of resource for which metadata is provided.
      Since:
        0.5

    - #### setMetadataScopes

          public void setMetadataScopes​(Collection<? extends DefaultMetadataScope> newValues)

      Sets the scope or type of resource for which metadata is provided.
      Upcoming API change — generalization
      The element type will be changed to the `MetadataScope` interface when GeoAPI will provide it (tentatively in GeoAPI 3.1).
      Parameters:
        `newValues` - the new scope or type of resource.
      Since:
        0.5

    - #### getHierarchyLevels

          @Deprecated
          public final Collection<ScopeCode> getHierarchyLevels()

      Deprecated.
      As of ISO 19115:2014, replaced by `getMetadataScopes()` followed by `DefaultMetadataScope​.getResourceScope()`.
      Returns the scope to which the metadata applies.
      Specified by:
        `getHierarchyLevels` in interface `Metadata`
      Returns:
        scope to which the metadata applies.

    - #### setHierarchyLevels

          @Deprecated
          public void setHierarchyLevels​(Collection<? extends ScopeCode> newValues)

      Deprecated.
      As of ISO 19115:2014, replaced by `setMetadataScopes(Collection)` and `DefaultMetadataScope​.setResourceScope(ScopeCode)`.
      Sets the scope to which the metadata applies.
      Parameters:
        `newValues` - the new hierarchy levels.

    - #### getHierarchyLevelNames

          @Deprecated
          public final Collection<String> getHierarchyLevelNames()

      Deprecated.
      As of ISO 19115:2014, replaced by `getMetadataScopes()` followed by `DefaultMetadataScope​.getName()`.
      Returns the name of the hierarchy levels for which the metadata is provided.
      Specified by:
        `getHierarchyLevelNames` in interface `Metadata`
      Returns:
        hierarchy levels for which the metadata is provided.

    - #### setHierarchyLevelNames

          @Deprecated
          public void setHierarchyLevelNames​(Collection<? extends String> newValues)

      Deprecated.
      As of ISO 19115:2014, replaced by `setMetadataScopes(Collection)` and `DefaultMetadataScope​.setName(InternationalString)`.
      Sets the name of the hierarchy levels for which the metadata is provided.
      Parameters:
        `newValues` - the new hierarchy level names.

    - #### getContacts

          public Collection<ResponsibleParty> getContacts()

      Returns the parties responsible for the metadata information.
      Upcoming API change — generalization
      As of ISO 19115:2014, `ResponsibleParty` is replaced by the `Responsibility` parent interface. This change will be tentatively applied in GeoAPI 4.0.
      Specified by:
        `getContacts` in interface `Metadata`
      Returns:
        parties responsible for the metadata information.

    - #### setContacts

          public void setContacts​(Collection<? extends ResponsibleParty> newValues)

      Sets the parties responsible for the metadata information.
      Parameters:
        `newValues` - the new contacts.

    - #### getDateInfo

          @UML(identifier="dateInfo",
               obligation=MANDATORY,
               specification=ISO_19115)
          public Collection<CitationDate> getDateInfo()

      Returns the date(s) associated with the metadata.
      Returns:
        date(s) associated with the metadata.
      Since:
        0.5
      See Also:
        `Citation​.getDates()`

    - #### setDateInfo

          public void setDateInfo​(Collection<? extends CitationDate> newValues)

      Sets the date(s) associated with the metadata. The collection should contains at least an element for `DateType​.CREATION`.
      Parameters:
        `newValues` - new dates associated with the metadata.
      Since:
        0.5

    - #### getDateStamp

          @Deprecated
          public Date getDateStamp()

      Deprecated.
      As of ISO 19115:2014, replaced by `getDateInfo()`.
      Returns the date that the metadata was created.
      Specified by:
        `getDateStamp` in interface `Metadata`
      Returns:
        date that the metadata was created, or `null`.

    - #### setDateStamp

          @Deprecated
          public void setDateStamp​(Date newValue)

      Deprecated.
      As of ISO 19115:2014, replaced by `setDateInfo(Collection)`.
      Sets the date that the metadata was created.
      Parameters:
        `newValue` - the new date stamp.

    - #### getMetadataStandards

          @UML(identifier="metadataStandard",
               obligation=OPTIONAL,
               specification=ISO_19115)
          public Collection<Citation> getMetadataStandards()

      Returns the citation(s) for the standard(s) to which the metadata conform. The collection returned by this method typically contains elements from the `Citations​.ISO_19115` list.
      Returns:
        the standard(s) to which the metadata conform.
      Since:
        0.5
      See Also:
        `getMetadataProfiles()`

    - #### setMetadataStandards

          public void setMetadataStandards​(Collection<? extends Citation> newValues)

      Sets the citation(s) for the standard(s) to which the metadata conform. Metadata standard citations should include an identifier.
      Parameters:
        `newValues` - the new standard(s) to which the metadata conform.
      Since:
        0.5

    - #### getMetadataProfiles

          @UML(identifier="metadataProfile",
               obligation=OPTIONAL,
               specification=ISO_19115)
          public Collection<Citation> getMetadataProfiles()

      Returns the citation(s) for the profile(s) of the metadata standard to which the metadata conform.
      Returns:
        the profile(s) to which the metadata conform.
      Since:
        0.5
      See Also:
        `getMetadataStandards()`, `getMetadataExtensionInfo()`

    - #### setMetadataProfiles

          public void setMetadataProfiles​(Collection<? extends Citation> newValues)

      Set the citation(s) for the profile(s) of the metadata standard to which the metadata conform. Metadata profile standard citations should include an identifier.
      Parameters:
        `newValues` - the new profile(s) to which the metadata conform.
      Since:
        0.5

    - #### getAlternativeMetadataReferences

          @UML(identifier="alternativeMetadataReference",
               obligation=OPTIONAL,
               specification=ISO_19115)
          public Collection<Citation> getAlternativeMetadataReferences()

      Returns reference(s) to alternative metadata or metadata in a non-ISO standard for the same resource.
      Returns:
        reference(s) to alternative metadata (e.g. Dublin core, FGDC).
      Since:
        0.5

    - #### setAlternativeMetadataReferences

          public void setAlternativeMetadataReferences​(Collection<? extends Citation> newValues)

      Set reference(s) to alternative metadata or metadata in a non-ISO standard for the same resource.
      Parameters:
        `newValues` - the new reference(s) to alternative metadata (e.g. Dublin core, FGDC).
      Since:
        0.5

    - #### getMetadataStandardName

          @Deprecated
          public String getMetadataStandardName()

      Deprecated.
      As of ISO 19115:2014, replaced by `getMetadataStandards()` followed by `DefaultCitation​.getTitle()`.
      Returns the name of the metadata standard (including profile name) used.
      Specified by:
        `getMetadataStandardName` in interface `Metadata`
      Returns:
        name of the metadata standard used, or `null`.

    - #### setMetadataStandardName

          @Deprecated
          public void setMetadataStandardName​(String newValue)

      Deprecated.
      As of ISO 19115:2014, replaced by `getMetadataStandards()` followed by `DefaultCitation​.setTitle(InternationalString)`.
      Name of the metadata standard (including profile name) used.
      Parameters:
        `newValue` - the new metadata standard name.

    - #### getMetadataStandardVersion

          @Deprecated
          public String getMetadataStandardVersion()

      Deprecated.
      As of ISO 19115:2014, replaced by `getMetadataStandards()` followed by `DefaultCitation​.getEdition()`.
      Returns the version (profile) of the metadata standard used.
      Specified by:
        `getMetadataStandardVersion` in interface `Metadata`
      Returns:
        version of the metadata standard used, or `null`.

    - #### setMetadataStandardVersion

          @Deprecated
          public void setMetadataStandardVersion​(String newValue)

      Deprecated.
      As of ISO 19115:2014, replaced by `getMetadataStandards()` followed by `DefaultCitation​.setEdition(InternationalString)`.
      Sets the version (profile) of the metadata standard used.
      Parameters:
        `newValue` - the new metadata standard version.

    - #### getMetadataLinkages

          @UML(identifier="metadataLinkage",
               obligation=OPTIONAL,
               specification=ISO_19115)
          public Collection<OnlineResource> getMetadataLinkages()

      Returns the online location(s) where the metadata is available.
      Returns:
        online location(s) where the metadata is available.
      Since:
        0.5

    - #### setMetadataLinkages

          public void setMetadataLinkages​(Collection<? extends OnlineResource> newValues)

      Sets the online location(s) where the metadata is available.
      Parameters:
        `newValues` - the new online location(s).
      Since:
        0.5

    - #### getDataSetUri

          @Deprecated
          public String getDataSetUri()

      Deprecated.
      As of ISO 19115:2014, replaced by `getIdentificationInfo()` followed by `AbstractIdentification​.getCitation()` followed by `DefaultCitation​.getOnlineResources()`.
      Provides the URI of the dataset to which the metadata applies.
      Specified by:
        `getDataSetUri` in interface `Metadata`
      Returns:
        Uniform Resource Identifier of the dataset, or `null`.

    - #### setDataSetUri

          @Deprecated
          public void setDataSetUri​(String newValue)
                             throws URISyntaxException

      Deprecated.
      As of ISO 19115:2014, replaced by `getIdentificationInfo()` followed by `AbstractIdentification​.getCitation()` followed by `DefaultCitation​.setOnlineResources(Collection)`.
      Sets the URI of the dataset to which the metadata applies. This method sets the linkage of the first online resource in the citation of the first identification info.
      Parameters:
        `newValue` - the new data set URI.
      Throws:
        `URISyntaxException` - if the given value can not be parsed as a URI.

    - #### getSpatialRepresentationInfo

          public Collection<SpatialRepresentation> getSpatialRepresentationInfo()

      Returns the digital representation of spatial information in the dataset.
      Specified by:
        `getSpatialRepresentationInfo` in interface `Metadata`
      Returns:
        digital representation of spatial information in the dataset.

    - #### setSpatialRepresentationInfo

          public void setSpatialRepresentationInfo​(Collection<? extends SpatialRepresentation> newValues)

      Sets the digital representation of spatial information in the dataset.
      Parameters:
        `newValues` - the new spatial representation info.

    - #### getReferenceSystemInfo

          public Collection<ReferenceSystem> getReferenceSystemInfo()

      Returns the description of the spatial and temporal reference systems used in the dataset.
      Specified by:
        `getReferenceSystemInfo` in interface `Metadata`
      Returns:
        spatial and temporal reference systems used in the dataset.

    - #### setReferenceSystemInfo

          public void setReferenceSystemInfo​(Collection<? extends ReferenceSystem> newValues)

      Sets the description of the spatial and temporal reference systems used in the dataset.
      Parameters:
        `newValues` - the new reference system info.

    - #### getMetadataExtensionInfo

          public Collection<MetadataExtensionInformation> getMetadataExtensionInfo()

      Returns information describing metadata extensions.
      Specified by:
        `getMetadataExtensionInfo` in interface `Metadata`
      Returns:
        metadata extensions.

    - #### setMetadataExtensionInfo

          public void setMetadataExtensionInfo​(Collection<? extends MetadataExtensionInformation> newValues)

      Sets information describing metadata extensions.
      Parameters:
        `newValues` - the new metadata extension info.

    - #### getIdentificationInfo

          public Collection<Identification> getIdentificationInfo()

      Returns basic information about the resource(s) to which the metadata applies.
      Specified by:
        `getIdentificationInfo` in interface `Metadata`
      Returns:
        the resource(s) to which the metadata applies.

    - #### setIdentificationInfo

          public void setIdentificationInfo​(Collection<? extends Identification> newValues)

      Sets basic information about the resource(s) to which the metadata applies.
      Parameters:
        `newValues` - the new identification info.

    - #### getContentInfo

          public Collection<ContentInformation> getContentInfo()

      Returns information about the feature catalogue and describes the coverage and image data characteristics.
      Specified by:
        `getContentInfo` in interface `Metadata`
      Returns:
        the feature catalogue, coverage descriptions and image data characteristics.

    - #### setContentInfo

          public void setContentInfo​(Collection<? extends ContentInformation> newValues)

      Sets information about the feature catalogue and describes the coverage and image data characteristics.
      Parameters:
        `newValues` - the new content info.

    - #### getDistributionInfo

          public Distribution getDistributionInfo()

      Returns information about the distributor of and options for obtaining the resource(s).
      Upcoming API change — multiplicity
      As of ISO 19115:2014, this singleton has been replaced by a collection. This change will tentatively be applied in GeoAPI 4.0.
      Specified by:
        `getDistributionInfo` in interface `Metadata`
      Returns:
        the distributor of and options for obtaining the resource(s).

    - #### setDistributionInfo

          public void setDistributionInfo​(Distribution newValue)

      Sets information about the distributor of and options for obtaining the resource(s).
      Upcoming API change — multiplicity
      As of ISO 19115:2014, this singleton has been replaced by a collection. This change will tentatively be applied in GeoAPI 4.0.
      Parameters:
        `newValue` - the new distribution info.

    - #### getDataQualityInfo

          public Collection<DataQuality> getDataQualityInfo()

      Returns overall assessment of quality of a resource(s).
      Specified by:
        `getDataQualityInfo` in interface `Metadata`
      Returns:
        overall assessment of quality of a resource(s).

    - #### setDataQualityInfo

          public void setDataQualityInfo​(Collection<? extends DataQuality> newValues)

      Sets overall assessment of quality of a resource(s).
      Parameters:
        `newValues` - the new data quality info.

    - #### getPortrayalCatalogueInfo

          public Collection<PortrayalCatalogueReference> getPortrayalCatalogueInfo()

      Returns information about the catalogue of rules defined for the portrayal of a resource(s).
      Specified by:
        `getPortrayalCatalogueInfo` in interface `Metadata`
      Returns:
        the catalogue of rules defined for the portrayal of a resource(s).

    - #### setPortrayalCatalogueInfo

          public void setPortrayalCatalogueInfo​(Collection<? extends PortrayalCatalogueReference> newValues)

      Sets information about the catalogue of rules defined for the portrayal of a resource(s).
      Parameters:
        `newValues` - the new portrayal catalog info.

    - #### getMetadataConstraints

          public Collection<Constraints> getMetadataConstraints()

      Returns restrictions on the access and use of metadata.
      Specified by:
        `getMetadataConstraints` in interface `Metadata`
      Returns:
        restrictions on the access and use of metadata.
      See Also:
        `AbstractIdentification​.getResourceConstraints()`

    - #### setMetadataConstraints

          public void setMetadataConstraints​(Collection<? extends Constraints> newValues)

      Sets restrictions on the access and use of metadata.
      Parameters:
        `newValues` - the new metadata constraints.
      See Also:
        `AbstractIdentification​.setResourceConstraints(Collection)`

    - #### getApplicationSchemaInfo

          public Collection<ApplicationSchemaInformation> getApplicationSchemaInfo()

      Returns information about the conceptual schema of a dataset.
      Specified by:
        `getApplicationSchemaInfo` in interface `Metadata`
      Returns:
        the conceptual schema of a dataset.

    - #### setApplicationSchemaInfo

          public void setApplicationSchemaInfo​(Collection<? extends ApplicationSchemaInformation> newValues)

      Returns information about the conceptual schema of a dataset.
      Parameters:
        `newValues` - the new application schema info.

    - #### getAcquisitionInformation

          public Collection<AcquisitionInformation> getAcquisitionInformation()

      Returns information about the acquisition of the data.
      Specified by:
        `getAcquisitionInformation` in interface `Metadata`
      Returns:
        the acquisition of data.

    - #### setAcquisitionInformation

          public void setAcquisitionInformation​(Collection<? extends AcquisitionInformation> newValues)

      Sets information about the acquisition of the data.
      Parameters:
        `newValues` - the new acquisition information.

    - #### getMetadataMaintenance

          public MaintenanceInformation getMetadataMaintenance()

      Returns information about the frequency of metadata updates, and the scope of those updates.
      Specified by:
        `getMetadataMaintenance` in interface `Metadata`
      Returns:
        the frequency of metadata updates and their scope, or `null`.
      See Also:
        `AbstractIdentification​.getResourceMaintenances()`

    - #### setMetadataMaintenance

          public void setMetadataMaintenance​(MaintenanceInformation newValue)

      Sets information about the frequency of metadata updates, and the scope of those updates.
      Parameters:
        `newValue` - the new metadata maintenance.
      See Also:
        `AbstractIdentification​.setResourceMaintenances(Collection)`

    - #### getResourceLineages

          @UML(identifier="resourceLineage",
               obligation=OPTIONAL,
               specification=ISO_19115)
          public Collection<Lineage> getResourceLineages()

      Returns information about the provenance, sources and/or the production processes applied to the resource.
      Returns:
        information about the provenance, sources and/or the production processes.
      Since:
        0.5

    - #### setResourceLineages

          public void setResourceLineages​(Collection<? extends Lineage> newValues)

      Sets information about the provenance, sources and/or the production processes applied to the resource.
      Parameters:
        `newValues` - new information about the provenance, sources and/or the production processes.
      Since:
        0.5