001: // $HeadURL:
002: // /cvsroot/deegree/src/org/deegree/datatypes/parameter/OperationParameterIm.java,v
003: // 1.5 2004/08/16 06:23:33 ap Exp $
004: /*---------------- FILE HEADER ------------------------------------------
005:
006: This file is part of deegree.
007: Copyright (C) 2001-2008 by:
008: EXSE, Department of Geography, University of Bonn
009: http://www.giub.uni-bonn.de/deegree/
010: lat/lon GmbH
011: http://www.lat-lon.de
012:
013: This library is free software; you can redistribute it and/or
014: modify it under the terms of the GNU Lesser General Public
015: License as published by the Free Software Foundation; either
016: version 2.1 of the License, or (at your option) any later version.
017:
018: This library is distributed in the hope that it will be useful,
019: but WITHOUT ANY WARRANTY; without even the implied warranty of
020: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
021: Lesser General Public License for more details.
022:
023: You should have received a copy of the GNU Lesser General Public
024: License along with this library; if not, write to the Free Software
025: Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
026:
027: Contact:
028:
029: Andreas Poth
030: lat/lon GmbH
031: Aennchenstr. 19
032: 53115 Bonn
033: Germany
034: E-Mail: poth@lat-lon.de
035:
036: Prof. Dr. Klaus Greve
037: Department of Geography
038: University of Bonn
039: Meckenheimer Allee 166
040: 53115 Bonn
041: Germany
042: E-Mail: greve@giub.uni-bonn.de
043:
044:
045: ---------------------------------------------------------------------------*/
046: package org.deegree.datatypes.parameter;
047:
048: import java.io.Serializable;
049: import java.util.LinkedHashSet;
050: import java.util.Set;
051:
052: /**
053: * @author <a href="mailto:poth@lat-lon.de">Andreas Poth </a>
054: * @author last edited by: $Author: apoth $
055: *
056: * @version 1.0. $Revision: 9337 $, $Date: 2007-12-27 04:31:11 -0800 (Thu, 27 Dec 2007) $
057: *
058: * @since 2.0
059: */
060: public class OperationParameterIm extends GeneralOperationParameterIm
061: implements Serializable {
062:
063: private static final long serialVersionUID = 1L;
064:
065: private Comparable maximumValue = null;
066:
067: private Comparable minimumValue = null;
068:
069: private Set validValues = null;
070:
071: private Class valueClass = null;
072:
073: private Object defaultValue = null;
074:
075: /**
076: * Convenience constructor.
077: *
078: * @param name
079: * @param validValues
080: */
081: public OperationParameterIm(String name, String[] validValues) {
082: this (name, null, 1, 0, null, null, buildSet(validValues),
083: String.class, null);
084: }
085:
086: /**
087: * Convenience constructor.
088: *
089: * @param name
090: * @param validValues
091: */
092: public OperationParameterIm(String name, String[] validValues,
093: Object defaultValue) {
094: this (name, null, 1, 0, null, null, buildSet(validValues),
095: defaultValue.getClass(), defaultValue);
096: }
097:
098: /**
099: * @param name
100: * @param remarks
101: * @param maximumOccurs
102: * @param minimumOccurs
103: * @param maximumValue
104: * @param minimumValue
105: * @param validValues
106: * @param valueClass
107: * @param defaultValue
108: */
109: public OperationParameterIm(String name, String remarks,
110: int maximumOccurs, int minimumOccurs,
111: Comparable maximumValue, Comparable minimumValue,
112: Set validValues, Class valueClass, Object defaultValue) {
113: super (name, remarks, maximumOccurs, minimumOccurs);
114: this .maximumValue = maximumValue;
115: this .minimumValue = minimumValue;
116: this .validValues = validValues;
117: this .valueClass = valueClass;
118: this .defaultValue = defaultValue;
119: }
120:
121: /**
122: * @return Returns the defaultValue.
123: */
124: public Object getDefaultValue() {
125: return defaultValue;
126: }
127:
128: /**
129: * @param defaultValue
130: * The defaultValue to set.
131: */
132: public void setDefaultValue(Object defaultValue) {
133: this .defaultValue = defaultValue;
134: }
135:
136: /**
137: * @return Returns the maximumValue.
138: *
139: */
140: public Comparable getMaximumValue() {
141: return maximumValue;
142: }
143:
144: /**
145: * @param maximumValue
146: * The maximumValue to set.
147: */
148: public void setMaximumValue(Comparable maximumValue) {
149: this .maximumValue = maximumValue;
150: }
151:
152: /**
153: * @return Returns the minimumValue.
154: */
155: public Comparable getMinimumValue() {
156: return minimumValue;
157: }
158:
159: /**
160: * @param minimumValue
161: * The minimumValue to set.
162: */
163: public void setMinimumValue(Comparable minimumValue) {
164: this .minimumValue = minimumValue;
165: }
166:
167: /**
168: * @return Returns the validValues.
169: */
170: public Set getValidValues() {
171: return validValues;
172: }
173:
174: /**
175: * @param validValues
176: * The validValues to set.
177: */
178: public void setValidValues(Set validValues) {
179: this .validValues = validValues;
180: }
181:
182: /**
183: * @return Returns the valueClass.
184: */
185: public Class getValueClass() {
186: return valueClass;
187: }
188:
189: /**
190: * @param valueClass
191: * The valueClass to set.
192: */
193: public void setValueClass(Class valueClass) {
194: this .valueClass = valueClass;
195: }
196:
197: /**
198: *
199: * @param values
200: * @return
201: */
202: private static Set<String> buildSet(String[] values) {
203: Set<String> valueSet = new LinkedHashSet<String>();
204: if (values != null) {
205: for (int i = 0; i < values.length; i++) {
206: valueSet.add(values[i]);
207: }
208: }
209: return valueSet;
210: }
211: }
|