001: //$HeadURL: https://svn.wald.intevation.org/svn/deegree/base/trunk/src/org/deegree/model/feature/schema/FeatureType.java $
002: /*---------------- FILE HEADER ------------------------------------------
003:
004: This file is part of deegree.
005: Copyright (C) 2001-2008 by:
006: EXSE, Department of Geography, University of Bonn
007: http://www.giub.uni-bonn.de/deegree/
008: lat/lon GmbH
009: http://www.lat-lon.de
010:
011: This library is free software; you can redistribute it and/or
012: modify it under the terms of the GNU Lesser General Public
013: License as published by the Free Software Foundation; either
014: version 2.1 of the License, or (at your option) any later version.
015:
016: This library is distributed in the hope that it will be useful,
017: but WITHOUT ANY WARRANTY; without even the implied warranty of
018: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
019: Lesser General Public License for more details.
020:
021: You should have received a copy of the GNU Lesser General Public
022: License along with this library; if not, write to the Free Software
023: Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
024:
025: Contact:
026:
027: Andreas Poth
028: lat/lon GmbH
029: Aennchenstr. 19
030: 53115 Bonn
031: Germany
032: E-Mail: poth@lat-lon.de
033:
034: Prof. Dr. Klaus Greve
035: Department of Geography
036: University of Bonn
037: Meckenheimer Allee 166
038: 53115 Bonn
039: Germany
040: E-Mail: greve@giub.uni-bonn.de
041:
042:
043: ---------------------------------------------------------------------------*/
044:
045: package org.deegree.model.feature.schema;
046:
047: import java.net.URI;
048:
049: import org.deegree.datatypes.QualifiedName;
050:
051: /**
052: * The FeatureType interface is intended to provide details of the type of a Feature that are
053: * described as Feature Schema in the Abstract Specification's Essential Model, specifically the
054: * names and types of the properties associated with each instance of a Feature of the given
055: * FeatureType.
056: * <p>
057: * -----------------------------------------------------------------------
058: * </p>
059: *
060: * @author <a href="mailto:poth@lat-lon.de">Andreas Poth</a>
061: * @version $Revision: 9343 $ $Date: 2007-12-27 05:30:32 -0800 (Thu, 27 Dec 2007) $
062: */
063: public interface FeatureType {
064:
065: /**
066: * returns the name of the FeatureType
067: *
068: * @return name of the FeatureType
069: */
070: public QualifiedName getName();
071:
072: /**
073: * Returns whether this feature type is abstract or not.
074: *
075: * @return true, if the feature type is abstract, false otherwise
076: */
077: public boolean isAbstract();
078:
079: /**
080: * returns the namespace of the feature type (maybe null)
081: *
082: * @return the namespace of the feature type (maybe <code>null</code>)
083: */
084: public URI getNameSpace();
085:
086: /**
087: * returns the location of the XML schema defintion assigned to a namespace
088: *
089: * @return the location of the XML schema defintion assigned to a namespace
090: */
091: public URI getSchemaLocation();
092:
093: /**
094: * returns the name of the property a the passed index position
095: */
096: public QualifiedName getPropertyName(int index);
097:
098: /**
099: * returns the properties of this feature type
100: *
101: * @return type properties
102: */
103: public PropertyType[] getProperties();
104:
105: /**
106: * returns a property of this feature type identified by its name
107: *
108: * @param name
109: * name of the desired property
110: * @return one named property
111: */
112: public PropertyType getProperty(QualifiedName name);
113:
114: /**
115: * returns the FeatureTypeProperties of type GEOMETRY
116: *
117: * @see org.deegree.datatypes.Types
118: * @return the FeatureTypeProperties of type GEOMETRY
119: */
120: public GeometryPropertyType[] getGeometryProperties();
121:
122: /**
123: * returns true if the passed FeatureType equals this FeatureType. Two FeatureTypes are equal if
124: * they have the same qualified name
125: *
126: * @return <code>true</code> if the passed FeatureType equals this FeatureType.
127: */
128: public boolean equals(FeatureType featureType);
129:
130: }
|