All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.opengis.metadata.Metadata Maven / Gradle / Ivy

Go to download

The development community in building GIS solutions is sustaining an enormous level of effort. The GeoAPI project aims to reduce duplication and increase interoperability by providing neutral, interface-only APIs derived from OGC/ISO Standards.

There is a newer version: 3.0.2
Show newest version
/*
 *    GeoAPI - Java interfaces for OGC/ISO standards
 *    http://www.geoapi.org
 *
 *    Copyright (C) 2004-2011 Open Geospatial Consortium, Inc.
 *    All Rights Reserved. http://www.opengeospatial.org/ogc/legal
 *
 *    Permission to use, copy, and modify this software and its documentation, with
 *    or without modification, for any purpose and without fee or royalty is hereby
 *    granted, provided that you include the following on ALL copies of the software
 *    and documentation or portions thereof, including modifications, that you make:
 *
 *    1. The full text of this NOTICE in a location viewable to users of the
 *       redistributed or derivative work.
 *    2. Notice of any changes or modifications to the OGC files, including the
 *       date changes were made.
 *
 *    THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE
 *    NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
 *    TO, WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT
 *    THE USE OF THE SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE ANY THIRD PARTY
 *    PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.
 *
 *    COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR
 *    CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR DOCUMENTATION.
 *
 *    The name and trademarks of copyright holders may NOT be used in advertising or
 *    publicity pertaining to the software without specific, written prior permission.
 *    Title to copyright in this software and any associated documentation will at all
 *    times remain with copyright holders.
 */
package org.opengis.metadata;

import java.util.Collection;
import java.util.Date;
import java.util.Locale;

import org.opengis.metadata.acquisition.AcquisitionInformation;
import org.opengis.metadata.quality.DataQuality;
import org.opengis.metadata.maintenance.ScopeCode;
import org.opengis.metadata.constraint.Constraints;
import org.opengis.metadata.distribution.Distribution;
import org.opengis.metadata.citation.ResponsibleParty;
import org.opengis.metadata.content.ContentInformation;
import org.opengis.metadata.spatial.SpatialRepresentation;
import org.opengis.metadata.identification.CharacterSet;
import org.opengis.metadata.identification.Identification;
import org.opengis.metadata.maintenance.MaintenanceInformation;
import org.opengis.referencing.ReferenceSystem;
import org.opengis.annotation.UML;
import org.opengis.annotation.Profile;

import static org.opengis.annotation.Obligation.*;
import static org.opengis.annotation.Specification.*;
import static org.opengis.annotation.ComplianceLevel.*;


/**
 * Root entity which defines metadata about a resource or resources.
 *
 * @author  Martin Desruisseaux (IRD)
 * @author  Cory Horner (Refractions Research)
 * @version 3.0
 * @since   2.0
 *
 * @navassoc 1 - - CharacterSet
 * @navassoc - - - ScopeCode
 * @navassoc - - - ResponsibleParty
 * @navassoc - - - SpatialRepresentation
 * @navassoc - - - ReferenceSystem
 * @navassoc - - - MetadataExtensionInformation
 * @navassoc - - - Identification
 * @navassoc - - - ContentInformation
 * @navassoc 1 - - Distribution
 * @navassoc - - - DataQuality
 * @navassoc - - - PortrayalCatalogueReference
 * @navassoc - - - Constraints
 * @navassoc - - - ApplicationSchemaInformation
 * @navassoc 1 - - MaintenanceInformation
 * @navassoc - - - AcquisitionInformation
 */
@UML(identifier="MD_Metadata", specification=ISO_19115)
public interface Metadata {
    /**
     * Unique identifier for this metadata file, or {@code null} if none.
     *
     * @return Unique identifier for this metadata file, or {@code null}.
     */
    @Profile(level=CORE)
    @UML(identifier="fileIdentifier", obligation=OPTIONAL, specification=ISO_19115)
    String getFileIdentifier();

    /**
     * Language used for documenting metadata.
     *
     * @return Language used for documenting metadata, or {@code null}.
     *
     * @condition Not defined by encoding.
     */
    @Profile(level=CORE)
    @UML(identifier="language", obligation=CONDITIONAL, specification=ISO_19115)
    Locale getLanguage();

    /**
     * Full name of the character coding standard used for the metadata set.
     *
     * @return character coding standard used for the metadata, or {@code null}.
     *
     * @condition Not used and not defined by encoding.
     */
    @Profile(level=CORE)
    @UML(identifier="characterSet", obligation=CONDITIONAL, specification=ISO_19115)
    CharacterSet getCharacterSet();

    /**
     * File identifier of the metadata to which this metadata is a subset (child).
     *
     * @return Identifier of the metadata to which this metadata is a subset, or {@code null}.
     *
     * @condition {@linkplain #getHierarchyLevels() Hierarchy level} is not equal to
     *            {@link ScopeCode#DATASET}.
     */
    @UML(identifier="parentIdentifier", obligation=CONDITIONAL, specification=ISO_19115)
    String getParentIdentifier();

    /**
     * Scope to which the metadata applies.
     *
     * @return Scope to which the metadata applies.
     *
     * @condition {@linkplain #getHierarchyLevels() Hierarchy level} is not equal to
     *            {@link ScopeCode#DATASET}.
     */
    @UML(identifier="hierarchyLevel", obligation=CONDITIONAL, specification=ISO_19115)
    Collection getHierarchyLevels();

    /**
     * Name of the hierarchy levels for which the metadata is provided.
     *
     * @return Hierarchy levels for which the metadata is provided.
     *
     * @condition {@linkplain #getHierarchyLevels() Hierarchy level} is not equal to
     *            {@link ScopeCode#DATASET}.
     */
    @UML(identifier="hierarchyLevelName", obligation=CONDITIONAL, specification=ISO_19115)
    Collection getHierarchyLevelNames();

    /**
     * Parties responsible for the metadata information.
     *
     * @return Parties responsible for the metadata information.
     *
     * @since 2.1
     */
    @Profile(level=CORE)
    @UML(identifier="contact", obligation=MANDATORY, specification=ISO_19115)
    Collection getContacts();

    /**
     * Date that the metadata was created.
     * 

*

* *
*

Warning: The return type of this method may change * in GeoAPI 3.1 release. It may be replaced by a type matching more closely * either ISO 19108 (Temporal Schema) or ISO 19103.

*
* * @return Date that the metadata was created. */ @Profile(level=CORE) @UML(identifier="dateStamp", obligation=MANDATORY, specification=ISO_19115) Date getDateStamp(); /** * Name of the metadata standard (including profile name) used. * * @return Name of the metadata standard used, or {@code null}. */ @Profile(level=CORE) @UML(identifier="metadataStandardName", obligation=OPTIONAL, specification=ISO_19115) String getMetadataStandardName(); /** * Version (profile) of the metadata standard used. * * @return Version of the metadata standard used, or {@code null}. */ @Profile(level=CORE) @UML(identifier="metadataStandardVersion", obligation=OPTIONAL, specification=ISO_19115) String getMetadataStandardVersion(); /** * Uniformed Resource Identifier (URI) of the dataset to which the metadata applies. * * @return Uniformed Resource Identifier of the dataset, or {@code null}. * * @since 2.1 */ @UML(identifier="dataSetURI", obligation=OPTIONAL, specification=ISO_19115) String getDataSetUri(); /** * Provides information about an alternatively used localized character * string for a linguistic extension. * * @return Alternatively used localized character string for a linguistic extension. * * @since 2.1 */ @UML(identifier="locale", obligation=OPTIONAL, specification=ISO_19115) Collection getLocales(); /** * Digital representation of spatial information in the dataset. * * @return Digital representation of spatial information in the dataset. */ @UML(identifier="spatialRepresentationInfo", obligation=OPTIONAL, specification=ISO_19115) Collection getSpatialRepresentationInfo(); /** * Description of the spatial and temporal reference systems used in the dataset. * * @return Spatial and temporal reference systems used in the dataset. */ @Profile(level=CORE) @UML(identifier="referenceSystemInfo", obligation=OPTIONAL, specification=ISO_19115) Collection getReferenceSystemInfo(); /** * Information describing metadata extensions. * * @return Metadata extensions. */ @UML(identifier="metadataExtensionInfo", obligation=OPTIONAL, specification=ISO_19115) Collection getMetadataExtensionInfo(); /** * Basic information about the resource(s) to which the metadata applies. * * @return The resource(s) to which the metadata applies. */ @Profile(level=CORE) @UML(identifier="identificationInfo", obligation=MANDATORY, specification=ISO_19115) Collection getIdentificationInfo(); /** * Provides information about the feature catalogue and describes the coverage and * image data characteristics. * * @return The feature catalogue, coverage descriptions and image data characteristics. */ @UML(identifier="contentInfo", obligation=OPTIONAL, specification=ISO_19115) Collection getContentInfo(); /** * Provides information about the distributor of and options for obtaining the resource(s). * * @return The distributor of and options for obtaining the resource(s). */ @Profile(level=CORE) @UML(identifier="distributionInfo", obligation=OPTIONAL, specification=ISO_19115) Distribution getDistributionInfo(); /** * Provides overall assessment of quality of a resource(s). * * @return Overall assessment of quality of a resource(s). */ @Profile(level=CORE) @UML(identifier="dataQualityInfo", obligation=OPTIONAL, specification=ISO_19115) Collection getDataQualityInfo(); /** * Provides information about the catalogue of rules defined for the portrayal of a resource(s). * * @return The catalogue of rules defined for the portrayal of a resource(s). */ @UML(identifier="portrayalCatalogueInfo", obligation=OPTIONAL, specification=ISO_19115) Collection getPortrayalCatalogueInfo(); /** * Provides restrictions on the access and use of data. * * @return Restrictions on the access and use of data. */ @UML(identifier="metadataConstraints", obligation=OPTIONAL, specification=ISO_19115) Collection getMetadataConstraints(); /** * Provides information about the conceptual schema of a dataset. * * @return The conceptual schema of a dataset. */ @UML(identifier="applicationSchemaInfo", obligation=OPTIONAL, specification=ISO_19115) Collection getApplicationSchemaInfo(); /** * Provides information about the frequency of metadata updates, and the scope of those updates. * * @return The frequency of metadata updates and their scope. */ @UML(identifier="metadataMaintenance", obligation=OPTIONAL, specification=ISO_19115) MaintenanceInformation getMetadataMaintenance(); /** * Provides information about the acquisition of the data. * * @return The acquisition of data. */ @UML(identifier="acquisitionInformation", obligation=OPTIONAL, specification=ISO_19115_2) Collection getAcquisitionInformation(); }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy