001 //$HeadURL: https://svn.wald.intevation.org/svn/deegree/base/branches/2.3_testing/src/org/deegree/ogcwebservices/wcs/describecoverage/RangeSet.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.ogcwebservices.wcs.describecoverage;
037
038 import java.net.URI;
039
040 import org.deegree.datatypes.values.ValueEnum;
041 import org.deegree.ogcbase.Description;
042 import org.deegree.ogcbase.OGCException;
043 import org.deegree.ogcwebservices.MetadataLink;
044
045 /**
046 * @version $Revision: 18195 $
047 * @author <a href="mailto:poth@lat-lon.de">Andreas Poth</a>
048 * @author last edited by: $Author: mschneider $
049 *
050 * @version 1.0. $Revision: 18195 $, $Date: 2009-06-18 17:55:39 +0200 (Do, 18. Jun 2009) $
051 *
052 * @since 2.0
053 */
054
055 public class RangeSet extends Description implements Cloneable {
056
057 private URI semantic = null;
058
059 private URI refSys = null;
060
061 private String refSysLabel = null;
062
063 private ValueEnum nullValues = null;
064
065 private AxisDescription[] axisDescription = new AxisDescription[0];
066
067 /**
068 * @param name
069 * @param label
070 * @throws OGCException
071 */
072 public RangeSet( String name, String label ) throws OGCException {
073 super( name, label );
074 }
075
076 /**
077 * @param name
078 * @param label
079 * @param nullValues
080 * @param axisDescription
081 * @throws OGCException
082 */
083 public RangeSet( String name, String label, ValueEnum nullValues, AxisDescription[] axisDescription )
084 throws OGCException {
085 super( name, label );
086 this.nullValues = nullValues;
087 setAxisDescription( axisDescription );
088 }
089
090 /**
091 * @param name
092 * @param label
093 * @param description
094 * @param metadataLink
095 * @param semantic
096 * @param refSys
097 * @param refSysLabel
098 * @param nullValues
099 * @param axisDescription
100 * @throws OGCException
101 */
102 public RangeSet( String name, String label, String description, MetadataLink metadataLink, URI semantic,
103 URI refSys, String refSysLabel, ValueEnum nullValues, AxisDescription[] axisDescription )
104 throws OGCException {
105 super( name, label, description, metadataLink );
106 this.semantic = semantic;
107 this.refSys = refSys;
108 this.refSysLabel = refSysLabel;
109 this.nullValues = nullValues;
110 if ( axisDescription != null ) {
111 this.axisDescription = axisDescription;
112 }
113 }
114
115 /**
116 * @return Returns the axisDescription.
117 */
118 public AxisDescription[] getAxisDescription() {
119 return axisDescription;
120 }
121
122 /**
123 * @param axisDescription
124 * The axisDescription to set.
125 */
126 public void setAxisDescription( AxisDescription[] axisDescription ) {
127 if ( axisDescription != null ) {
128 this.axisDescription = axisDescription;
129 }
130 }
131
132 /**
133 * @return Returns the nullValues.
134 */
135 public ValueEnum getNullValues() {
136 return nullValues;
137 }
138
139 /**
140 * @param nullValues
141 * The nullValues to set.
142 */
143 public void setNullValues( ValueEnum nullValues ) {
144 this.nullValues = nullValues;
145 }
146
147 /**
148 * @return Returns the refSys.
149 */
150 public URI getRefSys() {
151 return refSys;
152 }
153
154 /**
155 * @param refSys
156 * The refSys to set.
157 */
158 public void setRefSys( URI refSys ) {
159 this.refSys = refSys;
160 }
161
162 /**
163 * @return Returns the refSysLabel.
164 */
165 public String getRefSysLabel() {
166 return refSysLabel;
167 }
168
169 /**
170 * @param refSysLabel
171 * The refSysLabel to set.
172 */
173 public void setRefSysLabel( String refSysLabel ) {
174 this.refSysLabel = refSysLabel;
175 }
176
177 /**
178 * @return Returns the semantic.
179 */
180 public URI getSemantic() {
181 return semantic;
182 }
183
184 /**
185 * @param semantic
186 * The semantic to set.
187 */
188 public void setSemantic( URI semantic ) {
189 this.semantic = semantic;
190 }
191
192 /**
193 * @see java.lang.Object#clone()
194 */
195 public Object clone() {
196 ValueEnum nullValues_ = null;
197 if ( nullValues_ != null ) {
198 nullValues_ = (ValueEnum) nullValues.clone();
199 }
200
201 AxisDescription[] ad = new AxisDescription[axisDescription.length];
202 for ( int i = 0; i < ad.length; i++ ) {
203 ad[i] = (AxisDescription) axisDescription[i].clone();
204 }
205 Description des = (Description) super.clone();
206 try {
207 return new RangeSet( des.getName(), des.getLabel(), des.getDescription(), des.getMetadataLink(), semantic,
208 refSys, refSysLabel, nullValues_, ad );
209 } catch ( Exception e ) {
210 }
211 return null;
212 }
213
214 }