001 //$HeadURL: https://svn.wald.intevation.org/svn/deegree/base/branches/2.4_testing/src/org/deegree/owscommon_new/DomainType.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.owscommon_new;
037
038 import java.util.List;
039
040 import org.deegree.datatypes.QualifiedName;
041 import org.deegree.datatypes.values.Interval;
042 import org.deegree.datatypes.values.TypedLiteral;
043 import org.deegree.datatypes.values.Values;
044 import org.deegree.model.crs.CoordinateSystem;
045
046 /**
047 * <code>DomainType</code> is describes the domain of a parameter according to the OWS common
048 * specification 1.0.0. It also implements quite a few extensions.
049 *
050 * @author <a href="mailto:schmitz@lat-lon.de">Andreas Schmitz</a>
051 * @author last edited by: $Author: mschneider $
052 *
053 * @version 2.0, $Revision: 18195 $, $Date: 2009-06-18 17:55:39 +0200 (Do, 18. Jun 2009) $
054 *
055 * @since 2.0
056 */
057
058 public class DomainType extends Parameter {
059
060 private QualifiedName name = null;
061
062 private List<TypedLiteral> values = null;
063
064 private List<Interval> ranges = null;
065
066 private TypedLiteral defaultValue = null;
067
068 private boolean anyValueAllowed = false;
069
070 private String meaning = null;
071
072 private boolean noValuesAllowed = false;
073
074 private CoordinateSystem referenceSystem = null;
075
076 private QualifiedName unitOfMeasure = null;
077
078 private Values valueList = null;
079
080 private Object metadata = null;
081
082 /**
083 * Standard constructor that initializes all encapsulated data.
084 *
085 * @param optional
086 * @param repeatable
087 * @param description
088 * @param direction
089 * @param name
090 * @param values
091 * @param ranges
092 * @param defaultValue
093 * @param anyValueAllowed
094 * @param meaning
095 * @param noValuesAllowed
096 * @param referenceSystem
097 * @param unitOfMeasure
098 * @param valueList
099 * @param metadata
100 */
101 public DomainType( boolean optional, boolean repeatable, String description, int direction, QualifiedName name,
102 List<TypedLiteral> values, List<Interval> ranges, TypedLiteral defaultValue,
103 boolean anyValueAllowed, String meaning, boolean noValuesAllowed,
104 CoordinateSystem referenceSystem, QualifiedName unitOfMeasure, Values valueList, Object metadata ) {
105 super( optional, repeatable, description, direction );
106
107 this.name = name;
108 this.values = values;
109 this.ranges = ranges;
110 this.defaultValue = defaultValue;
111 this.anyValueAllowed = anyValueAllowed;
112 this.meaning = meaning;
113 this.noValuesAllowed = noValuesAllowed;
114 this.referenceSystem = referenceSystem;
115 this.unitOfMeasure = unitOfMeasure;
116 this.valueList = valueList;
117 this.metadata = metadata;
118 }
119
120 /**
121 * @return Returns whether any value is allowed.
122 */
123 public boolean isAnyValueAllowed() {
124 return anyValueAllowed;
125 }
126
127 /**
128 * @return Returns the defaultValue.
129 */
130 public TypedLiteral getDefaultValue() {
131 return defaultValue;
132 }
133
134 /**
135 * @return Returns the meaning.
136 */
137 public String getMeaning() {
138 return meaning;
139 }
140
141 /**
142 * @return Returns the metadata.
143 */
144 public Object getMetadata() {
145 return metadata;
146 }
147
148 /**
149 * @return Returns the name.
150 */
151 public QualifiedName getName() {
152 return name;
153 }
154
155 /**
156 * @return Returns the noValuesAllowed.
157 */
158 public boolean areNoValuesAllowed() {
159 return noValuesAllowed;
160 }
161
162 /**
163 * @return Returns the ranges.
164 */
165 public List<Interval> getRanges() {
166 return ranges;
167 }
168
169 /**
170 * @return Returns the referenceSystem.
171 */
172 public CoordinateSystem getReferenceSystem() {
173 return referenceSystem;
174 }
175
176 /**
177 * @return Returns the unitOfMeasure.
178 */
179 public QualifiedName getUnitOfMeasure() {
180 return unitOfMeasure;
181 }
182
183 /**
184 * @return Returns the valueList.
185 */
186 public Values getValueList() {
187 return valueList;
188 }
189
190 /**
191 * @return Returns the values.
192 */
193 public List<TypedLiteral> getValues() {
194 return values;
195 }
196
197 }