/*
* OSGeom -- Geometry Collab
*
* (C) 2009, Open Source Geospatial Foundation (OSGeo)
* (C) 2001-2009 Department of Geography, University of Bonn
* (C) 2001-2009 lat/lon GmbH
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation;
* version 2.1 of the License.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*/
package org.osgeo.commons;
import org.osgeo.geometry.Geometry;
/**
* Placeholder interface for properties that can be attached to {@link Geometry} objects.
* <p>
* One important use case are the GML standard properties that each GML geometry object allows for.
* <h4>Properties allowed in GML 3.1.1 / 3.2.1 geometry elements</h4>
* </p>
* <p>
* <table border="1">
* <tr>
* <th>Property name</th>
* <th>Multiplicity</th>
* <th>Description (from GML 3.1.1/3.2.1 schemas)</th>
* </tr>
* <tr>
* <td><code>gml:metaDataProperty</code></td>
* <td><code>0...*</code></td>
* <td>Contains or refers to a metadata package that contains metadata properties. <i>NOTE: This property is deprecated
* in GML 3.2.1.</i></td>
* </tr>
* <tr>
* <td><code>gml:description</code></td>
* <td><code>0...1</code></td>
* <td>The value of this property is a text description of the object. <code>gml:description</code> uses
* <code>gml:StringOrRefType</code> as its content model, so it may contain a simple text string content, or carry a
* reference to an external description. The use of gml:description to reference an external description has been
* deprecated and replaced by the <code>gml:descriptionReference</code> property.</td>
* </tr>
* <tr>
* <td><code>gml:descriptionReference</code></td>
* <td><code>0...1</code></td>
* <td>The value of this property is a remote text description of the object. The <code>xlink:href</code> attribute of
* the <code>gml:descriptionReference</code> property references the external description.</td>
* </tr>
* <tr>
* <td><code>gml:identifier</code></td>
* <td><code>0...1</code></td>
* <td>Often, a special identifier is assigned to an object by the maintaining authority with the intention that it is
* used in references to the object For such cases, the codeSpace shall be provided. That identifier is usually unique
* either globally or within an application domain. <code>gml:identifier</code> is a pre-defined property for such
* identifiers.</td>
* </tr>
* <tr>
* <td><code>gml:name</code></td>
* <td><code>0...*</code></td>
* <td>The <code>gml:name</code> property provides a label or identifier for the object, commonly a descriptive name. An
* object may have several names, typically assigned by different authorities. <code>gml:name</code> uses the
* <code>gml:CodeType</code> content model. The authority for a name is indicated by the value of its (optional)
* <code>codeSpace</code> attribute. The name may or may not be unique, as determined by the rules of the organization
* responsible for the codeSpace. In common usage there will be one name per authority, so a processing application may
* select the name from its preferred codeSpace.</td>
* </tr>
* </table>
* </p>
*
* @author <a href="mailto:schneider@lat-lon.de">Markus Schneider</a>
* @author last edited by: $Author$
*
* @version. $Revision$, $Date$
*/
public interface ObjectProperties {
// just a placeholder interface at the moment
}