/**
* <copyright>
* </copyright>
*
* $Id$
*/
package org.geotools.data.efeature;
import com.vividsolutions.jts.geom.Geometry;
import org.opengis.feature.Feature;
import org.opengis.feature.GeometryAttribute;
import org.opengis.feature.Property;
/**
* Generic interface for accessing {@link GeometryAttribute feature geometry} data.
*
* <p>
* The following features are supported:
* <ul>
* <li>{@link EFeatureGeometry#isEmpty <em>Empty</em>}</li>
* <li>{@link EFeatureGeometry#isDefaultGeometry <em>Default</em>}</li>
* <li>{@link EFeatureGeometry#getStructure <em>Structure</em>}</li>
* </ul>
* </p>
*
* @param <V> - Actual {@link Property#getValue() property value} class.
*
* @see EFeatureAttribute
* @see EFeaturePackage#getEFeatureAttribute()
* @see EFeaturePackage#getEFeatureGeometry()
*
* @author kengu
*/
public interface EFeatureGeometry<V extends Geometry> extends
EFeatureProperty<V, GeometryAttribute> {
/**
* Check if the {@link Property#getValue() feature geometry value} is {@link Geometry#isEmpty()
* empty}
*
* @return the value of the '<em>Default</em>' attribute.
*/
boolean isEmpty();
/**
* Check if this is the {@link Feature#getDefaultGeometryProperty() default feature geometry}
*
* @return the value of the '<em>Default</em>' attribute.
*/
boolean isDefault();
/**
* Get the attribute {@link EFeatureGeometryInfo structure} instance.
*
* @return the value of the '<em>Structure</em>' attribute.
*/
@Override
public EFeatureGeometryInfo getStructure();
} // EGeometry