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