org.opengis.metadata.ExtendedElementInformation Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of gt-opengis Show documentation
Show all versions of gt-opengis Show documentation
Standard interfaces implemented throughout the library.
/*
* GeoTools - The Open Source Java GIS Toolkit
* http://geotools.org
*
* (C) 2011, Open Source Geospatial Foundation (OSGeo)
* (C) 2004-2005, Open Geospatial Consortium Inc.
*
* All Rights Reserved. http://www.opengis.org/legal/
*/
package org.opengis.metadata;
import static org.opengis.annotation.Obligation.*;
import static org.opengis.annotation.Specification.*;
import java.util.Collection;
import org.opengis.annotation.UML;
import org.opengis.metadata.citation.ResponsibleParty;
import org.opengis.util.InternationalString;
/**
* New metadata element, not found in ISO 19115, which is required to describe geographic data.
*
* @version ISO 19115
* @author Martin Desruisseaux (IRD)
* @since GeoAPI 2.0
*/
@UML(identifier = "MD_ExtendedElementInformation", specification = ISO_19115)
public interface ExtendedElementInformation {
/**
* Name of the extended metadata element.
*
* @return Name of the extended metadata element.
*/
@UML(identifier = "name", obligation = MANDATORY, specification = ISO_19115)
String getName();
/**
* Short form suitable for use in an implementation method such as XML or SGML. Returns {@code
* null} if the {@linkplain #getDataType data type} is {@linkplain Datatype#CODE_LIST_ELEMENT
* code list element}, in which case {@link #getDomainCode} may be used instead.
*
* @return Short form suitable for use in an implementation method such as XML or SGML, or
* {@code null}.
*/
@UML(identifier = "shortName", obligation = CONDITIONAL, specification = ISO_19115)
String getShortName();
/**
* Three digit code assigned to the extended element. Returns a non-null value only if the
* {@linkplain #getDataType data type} is {@linkplain Datatype#CODE_LIST_ELEMENT code list
* element}, in which case {@link #getShortName} may be used instead.
*
* @return Three digit code assigned to the extended element, or {@code null}.
*/
@UML(identifier = "domainCode", obligation = CONDITIONAL, specification = ISO_19115)
Integer getDomainCode();
/**
* Definition of the extended element.
*
* @return Definition of the extended element.
*/
@UML(identifier = "definition", obligation = MANDATORY, specification = ISO_19115)
InternationalString getDefinition();
/**
* Obligation of the extended element.
*
* @return Obligation of the extended element, or {@code null}.
*/
@UML(identifier = "obligation", obligation = CONDITIONAL, specification = ISO_19115)
Obligation getObligation();
/**
* Condition under which the extended element is mandatory. Returns a non-null value only if the
* {@linkplain #getObligation obligation} is {@linkplain Obligation#CONDITIONAL conditional}.
*
* @return The condition under which the extended element is mandatory, or {@code null}.
*/
@UML(identifier = "condition", obligation = CONDITIONAL, specification = ISO_19115)
InternationalString getCondition();
/**
* Code which identifies the kind of value provided in the extended element.
*
* @return The kind of value provided in the extended element.
*/
@UML(identifier = "dataType", obligation = MANDATORY, specification = ISO_19115)
Datatype getDataType();
/**
* Maximum occurrence of the extended element. Returns {@code null} if it doesn't apply, for
* example if the {@linkplain #getDataType data type} is {@linkplain Datatype#ENUMERATION
* enumeration}, {@linkplain Datatype#CODE_LIST code list} or {@linkplain
* Datatype#CODE_LIST_ELEMENT code list element}.
*
* @return Maximum occurrence of the extended element, or {@code null}.
*/
@UML(identifier = "maximumOccurrence", obligation = CONDITIONAL, specification = ISO_19115)
Integer getMaximumOccurrence();
/**
* Valid values that can be assigned to the extended element. Returns {@code null} if it doesn't
* apply, for example if the {@linkplain #getDataType data type} is {@linkplain
* Datatype#ENUMERATION enumeration}, {@linkplain Datatype#CODE_LIST code list} or {@linkplain
* Datatype#CODE_LIST_ELEMENT code list element}.
*
* @return Valid values that can be assigned to the extended element, or {@code null}.
*/
@UML(identifier = "domainValue", obligation = CONDITIONAL, specification = ISO_19115)
InternationalString getDomainValue();
/**
* Name of the metadata entity(s) under which this extended metadata element may appear. The
* name(s) may be standard metadata element(s) or other extended metadata element(s).
*
* @return Name of the metadata entity(s) under which this extended metadata element may appear.
*/
@UML(identifier = "parentEntity", obligation = MANDATORY, specification = ISO_19115)
Collection getParentEntity();
/**
* Specifies how the extended element relates to other existing elements and entities.
*
* @return How the extended element relates to other existing elements and entities.
*/
@UML(identifier = "rule", obligation = MANDATORY, specification = ISO_19115)
InternationalString getRule();
/**
* Reason for creating the extended element.
*
* @return Reason for creating the extended element.
*/
@UML(identifier = "rationale", obligation = OPTIONAL, specification = ISO_19115)
Collection extends InternationalString> getRationales();
/**
* Name of the person or organization creating the extended element.
*
* @return Name of the person or organization creating the extended element.
*/
@UML(identifier = "source", obligation = MANDATORY, specification = ISO_19115)
Collection extends ResponsibleParty> getSources();
}