001 //$HeadURL: https://svn.wald.intevation.org/svn/deegree/base/branches/2.3_testing/src/org/deegree/io/datastore/schema/MappedSimplePropertyType.java $ 002 /*---------------------------------------------------------------------------- 003 This file is part of deegree, http://deegree.org/ 004 Copyright (C) 2001-2009 by: 005 Department of Geography, University of Bonn 006 and 007 lat/lon GmbH 008 009 This library is free software; you can redistribute it and/or modify it under 010 the terms of the GNU Lesser General Public License as published by the Free 011 Software Foundation; either version 2.1 of the License, or (at your option) 012 any later version. 013 This library is distributed in the hope that it will be useful, but WITHOUT 014 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 015 FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 016 details. 017 You should have received a copy of the GNU Lesser General Public License 018 along with this library; if not, write to the Free Software Foundation, Inc., 019 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 020 021 Contact information: 022 023 lat/lon GmbH 024 Aennchenstr. 19, 53177 Bonn 025 Germany 026 http://lat-lon.de/ 027 028 Department of Geography, University of Bonn 029 Prof. Dr. Klaus Greve 030 Postfach 1147, 53001 Bonn 031 Germany 032 http://www.geographie.uni-bonn.de/deegree/ 033 034 e-mail: info@deegree.org 035 ----------------------------------------------------------------------------*/ 036 package org.deegree.io.datastore.schema; 037 038 import org.deegree.datatypes.QualifiedName; 039 import org.deegree.io.datastore.schema.content.SimpleContent; 040 import org.deegree.model.feature.schema.SimplePropertyType; 041 042 /** 043 * Representation of property types that contain primitive data types with mapping (persistence) 044 * information. 045 * 046 * @author <a href="mailto:mschneider@lat-lon.de">Markus Schneider </a> 047 * @author last edited by: $Author: mschneider $ 048 * 049 * @version $Revision: 18195 $, $Date: 2009-06-18 17:55:39 +0200 (Do, 18. Jun 2009) $ 050 */ 051 public class MappedSimplePropertyType extends SimplePropertyType implements MappedPropertyType { 052 053 private boolean isIdentityPart; 054 055 private TableRelation[] tableRelations; 056 057 private SimpleContent content; 058 059 /** 060 * Constructs a new instance of <code>MappedSimplePropertyType</code> from the given 061 * parameters. 062 * 063 * @param name 064 * @param type 065 * @param minOccurs 066 * @param maxOccurs 067 * @param isIdentityPart 068 * @param tableRelations 069 * @param content 070 */ 071 public MappedSimplePropertyType( QualifiedName name, int type, int minOccurs, int maxOccurs, 072 boolean isIdentityPart, TableRelation[] tableRelations, 073 SimpleContent content ) { 074 super( name, type, minOccurs, maxOccurs ); 075 this.isIdentityPart = isIdentityPart; 076 this.tableRelations = tableRelations; 077 this.content = content; 078 } 079 080 /** 081 * Returns whether this property has to be considered when two instances of the parent feature 082 * are checked for equality. 083 * 084 * @return true, if this property is part of the feature's identity 085 */ 086 public boolean isIdentityPart() { 087 return this.isIdentityPart; 088 } 089 090 /** 091 * Returns the path of {@link TableRelation}s that describe how to get to the table 092 * where the content is stored. 093 * 094 * @return path of TableRelations, may be null 095 */ 096 public TableRelation[] getTableRelations() { 097 return this.tableRelations; 098 } 099 100 /** 101 * Returns the {@link SimpleContent} of the property type. 102 * 103 * @return the SimpleContent of the property type 104 */ 105 public SimpleContent getContent() { 106 return this.content; 107 } 108 }