/**
* <copyright>
* </copyright>
*
* $Id$
*/
package net.opengis.wcs10;
import java.util.List;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.util.FeatureMap;
import com.vividsolutions.jts.geom.Envelope;
/**
* <!-- begin-user-doc -->
* A representation of the model object '<em><b>Spatial Domain Type</b></em>'.
* <!-- end-user-doc -->
*
* <!-- begin-model-doc -->
* Defines the spatial domain of a coverage offering. A server shall describe the spatial domain by its edges, using one or more gml:Envelope elements. The gml:EnvelopeWithTimePeriod element may be used in place of gml:Envelope, to add the time bounds of the coverage offering. Each of these elements describes a bounding box defined by two points in space (or two positions in space and two in time). This bounding box could simply duplicate the information in the lonLatEnvelope of CoverageOfferingBrief; but the intent is to describe the locations in more detail (e.g., in several different CRSs, or several rectangular areas instead of one overall bounding box).
*
* In addition, a server can describe the internal grid structure of a coverage offering, using a gml:Grid (or gml:RectifiedGrid) in addition to a gml:Envelope. This element can help clients assess the fitness of the gridded data for their use (e.g. its native resolution, inferred from the offsetVector of a gml:RectifiedGrid), and to formulate grid coverage requests expressed in the internal grid coordinate reference system.
*
* Finally, a server can describe the spatial domain by means of a (repeatable) gml:Polygon, representing the polygon(s) covered by the coverage spatial domain. This is particularly useful for areas that are poorly approximated by a gml:Envelope (such as satellite image swaths, island groups, other non-convex areas).
* <!-- end-model-doc -->
*
* <p>
* The following features are supported:
* <ul>
* <li>{@link net.opengis.wcs10.SpatialDomainType#getEnvelope <em>Envelope</em>}</li>
* <li>{@link net.opengis.wcs10.SpatialDomainType#getGridGroup <em>Grid Group</em>}</li>
* <li>{@link net.opengis.wcs10.SpatialDomainType#getGrid <em>Grid</em>}</li>
* <li>{@link net.opengis.wcs10.SpatialDomainType#getPolygon <em>Polygon</em>}</li>
* </ul>
* </p>
*
* @see net.opengis.wcs10.Wcs10Package#getSpatialDomainType()
* @model extendedMetaData="name='SpatialDomainType' kind='elementOnly'"
* @generated
*/
public interface SpatialDomainType extends EObject {
/**
* Returns the value of the '<em><b>Envelope Group</b></em>' attribute list.
* The list contents are of type {@link org.eclipse.emf.ecore.util.FeatureMap.Entry}.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Envelope Group</em>' attribute list isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Envelope Group</em>' attribute list.
* @see net.opengis.wcs10.Wcs10Package#getSpatialDomainType_EnvelopeGroup()
* @model unique="false" dataType="org.eclipse.emf.ecore.EFeatureMapEntry" required="true" many="true"
* extendedMetaData="kind='group' name='Envelope:group' namespace='http://www.opengis.net/gml'"
*/
//FeatureMap getEnvelopeGroup();
/**
* Returns the value of the '<em><b>Envelope</b></em>' containment reference list.
* The list contents are of type {@link net.opengis.gml.EnvelopeType}.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Envelope</em>' containment reference list isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Envelope</em>' containment reference list.
* @see net.opengis.wcs10.Wcs10Package#getSpatialDomainType_Envelope()
* @model type="org.geotools.geometry.GeneralEnvelope"
*/
EList getEnvelope();
/**
* Returns the value of the '<em><b>Grid Group</b></em>' attribute list.
* The list contents are of type {@link org.eclipse.emf.ecore.util.FeatureMap.Entry}.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Grid Group</em>' attribute list isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Grid Group</em>' attribute list.
* @see net.opengis.wcs10.Wcs10Package#getSpatialDomainType_GridGroup()
* @model unique="false" dataType="org.eclipse.emf.ecore.EFeatureMapEntry" many="true"
* extendedMetaData="kind='group' name='Grid:group' namespace='http://www.opengis.net/gml'"
* @generated
*/
FeatureMap getGridGroup();
/**
* Returns the value of the '<em><b>Grid</b></em>' containment reference list.
* The list contents are of type {@link net.opengis.gml.GridType}.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Grid</em>' containment reference list isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Grid</em>' containment reference list.
* @see net.opengis.wcs10.Wcs10Package#getSpatialDomainType_Grid()
* @model type="net.opengis.gml.GridType" containment="true" transient="true" volatile="true" derived="true"
* extendedMetaData="kind='element' name='Grid' namespace='http://www.opengis.net/gml' group='http://www.opengis.net/gml#Grid:group'"
* @generated
*/
EList getGrid();
/**
* Returns the value of the '<em><b>Polygon</b></em>' containment reference list.
* The list contents are of type {@link net.opengis.gml.PolygonType}.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Polygon</em>' containment reference list isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Polygon</em>' containment reference list.
* @see net.opengis.wcs10.Wcs10Package#getSpatialDomainType_Polygon()
* @model type="net.opengis.gml.PolygonType" containment="true"
* extendedMetaData="kind='element' name='Polygon' namespace='http://www.opengis.net/gml'"
* @generated
*/
EList getPolygon();
} // SpatialDomainType