/*$************************************************************************************************
**
** $Id: ExtendedElementInformation.java 831 2006-05-01 00:27:23Z Desruisseaux $
**
** $URL: http://svn.code.sf.net/p/geoapi/code/branches/2.0.x/geoapi/src/main/java/org/opengis/metadata/ExtendedElementInformation.java $
**
** Copyright (C) 2004-2005 Open GIS Consortium, Inc.
** All Rights Reserved. http://www.opengis.org/legal/
**
*************************************************************************************************/
package org.opengis.metadata;
// J2SE direct dependencies
import java.util.Collection;
// OpenGIS direct dependencies
import org.opengis.util.InternationalString;
import org.opengis.metadata.citation.ResponsibleParty;
// Annotations
import org.opengis.annotation.UML;
import static org.opengis.annotation.Obligation.*;
import static org.opengis.annotation.Specification.*;
/**
* New metadata element, not found in ISO 19115, which is required to describe geographic data.
*
* @version Abstract specification 5.0
* @author Martin Desruisseaux (IRD)
* @since GeoAPI 2.0
*/
@UML(identifier="MD_ExtendedElementInformation", specification=ISO_19115)
public interface ExtendedElementInformation {
/**
* 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.
* NOTE: other methods may be used.
* Returns {@code null} if the {@linkplain #getDataType data type}
* is {@linkplain Datatype#CODE_LIST_ELEMENT code list element}.
*/
@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}.
*/
@UML(identifier="domainCode", obligation=CONDITIONAL, specification=ISO_19115)
Integer getDomainCode();
/**
* Definition of the extended element.
*/
@UML(identifier="definition", obligation=MANDATORY, specification=ISO_19115)
InternationalString getDefinition();
/**
* Obligation of the extended element.
*/
@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}.
*/
@UML(identifier="condition", obligation=CONDITIONAL, specification=ISO_19115)
InternationalString getCondition();
/**
* Code which identifies 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}.
*/
@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}.
*/
@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).
*/
@UML(identifier="parentEntity", obligation=MANDATORY, specification=ISO_19115)
Collection getParentEntity();
/**
* Specifies 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.
*/
@UML(identifier="rationale", obligation=OPTIONAL, specification=ISO_19115)
Collection getRationales();
/**
* Name of the person or organization creating the extended element.
*/
@UML(identifier="source", obligation=MANDATORY, specification=ISO_19115)
Collection getSources();
}
Ads help maintain this website.