001: //$HeadURL: https://svn.wald.intevation.org/svn/deegree/base/trunk/src/org/deegree/io/datastore/schema/MappedFeaturePropertyType.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: Aennchenstraße 19
030: 53177 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: package org.deegree.io.datastore.schema;
044:
045: import org.deegree.datatypes.QualifiedName;
046: import org.deegree.model.feature.schema.FeaturePropertyType;
047:
048: /**
049: * Representation of property types that contain features with mapping (persistence) information.
050: *
051: * @author <a href="mailto:mschneider@lat-lon.de">Markus Schneider </a>
052: * @author last edited by: $Author: apoth $
053: *
054: * @version $Revision: 9342 $, $Date: 2007-12-27 04:32:57 -0800 (Thu, 27 Dec 2007) $
055: */
056: public class MappedFeaturePropertyType extends FeaturePropertyType
057: implements MappedPropertyType {
058:
059: private boolean isIdentityPart;
060:
061: private TableRelation[] tableRelations;
062:
063: private MappedFeatureTypeReference containedFT;
064:
065: private boolean isReferenceType;
066:
067: /**
068: * Constructs a new instance of <code>MappedFeaturePropertyType</code> from the given
069: * parameters.
070: *
071: * @param name
072: * @param typeName
073: * @param type
074: * @param minOccurs
075: * @param maxOccurs
076: * @param isIdentityPart
077: * @param tableRelations
078: * @param containedFT
079: * @param isReferenceType
080: */
081: public MappedFeaturePropertyType(QualifiedName name,
082: QualifiedName typeName, int type, int minOccurs,
083: int maxOccurs, boolean isIdentityPart,
084: TableRelation[] tableRelations,
085: MappedFeatureTypeReference containedFT,
086: boolean isReferenceType) {
087: super (name, typeName, type, minOccurs, maxOccurs);
088: this .isIdentityPart = isIdentityPart;
089: this .tableRelations = tableRelations;
090: this .containedFT = containedFT;
091: this .isReferenceType = isReferenceType;
092: }
093:
094: /**
095: * Returns the {@link MappedFeatureTypeReference} to the feature type that is stored in
096: * this property.
097: *
098: * @return reference to the contained feature type
099: */
100: public MappedFeatureTypeReference getFeatureTypeReference() {
101: return this .containedFT;
102: }
103:
104: /**
105: * Returns the path of {@link TableRelation}s that describe how to get to the table
106: * where the content is stored.
107: *
108: * @return path of TableRelations, may be null
109: */
110: public TableRelation[] getTableRelations() {
111: return this .tableRelations;
112: }
113:
114: /**
115: * Returns whether this property has to be considered when two instances of the parent feature
116: * are checked for equality.
117: *
118: * @return true, if this property is part of the feature's identity
119: */
120: public boolean isIdentityPart() {
121: return this .isIdentityPart;
122: }
123:
124: /**
125: * Returns whether this property is of type "gml:ReferenceType" (in which case it's content
126: * must be specified by an xlink:href attribute).
127: *
128: * @return true, if this property is of type "gml:ReferenceType", false otherwise
129: */
130: public boolean isReferenceType() {
131: return this.isReferenceType;
132: }
133: }
|