001 //$HeadURL: svn+ssh://rbezema@svn.wald.intevation.org/deegree/base/tags/2.1/src/org/deegree/ogcwebservices/wcs/describecoverage/SpatialDomain.java $
002 package org.deegree.ogcwebservices.wcs.describecoverage;
003
004 import org.deegree.model.spatialschema.Envelope;
005 import org.deegree.model.spatialschema.EnvelopeImpl;
006 import org.deegree.model.spatialschema.Surface;
007 import org.deegree.model.spatialschema.SurfaceImpl;
008 import org.deegree.ogcwebservices.wcs.WCSException;
009
010 /**
011 * @version $Revision: 6259 $
012 * @author <a href="mailto:poth@lat-lon.de">Andreas Poth</a>
013 * @author last edited by: $Author: bezema $
014 *
015 * @version 1.0. $Revision: 6259 $, $Date: 2007-03-20 10:15:15 +0100 (Di, 20 Mär 2007) $
016 *
017 * @since 2.0
018 */
019
020 public class SpatialDomain implements Cloneable {
021
022 private Envelope[] envelops = null;
023
024 private Object[] grid = new Object[0];
025
026 private Surface[] surface = new Surface[0];
027
028
029 /**
030 * @param envelops
031 */
032 public SpatialDomain(Envelope[] envelops) throws WCSException {
033 setEnvelops(envelops);
034 }
035
036 /**
037 * @param envelops
038 * @param surface
039 */
040 public SpatialDomain(Envelope[] envelops, Surface[] surface) throws WCSException {
041 setEnvelops(envelops);
042 setSurface(surface);
043 }
044
045 /**
046 * @param envelops
047 * @param grid
048 */
049 public SpatialDomain(Envelope[] envelops, Object[] grid) throws WCSException {
050 setEnvelops(envelops);
051 setGrid(grid);
052 }
053
054 /**
055 * @param envelops
056 * @param grid
057 */
058 public SpatialDomain(Envelope[] envelops, Surface[] surface, Object[] grid)
059 throws WCSException {
060 setEnvelops(envelops);
061 setGrid(grid);
062 setSurface(surface);
063 }
064
065 /**
066 * @return Returns the envelops.
067 *
068 */
069 public Envelope[] getEnvelops() {
070 return envelops;
071 }
072
073 /**
074 * @param envelops The envelops to set.
075 *
076 */
077 public void setEnvelops(Envelope[] envelops) throws WCSException {
078 if (envelops == null) {
079 throw new WCSException("At least one envelop must be defined for "
080 + "a SpatialDomain!");
081 }
082 this.envelops = envelops;
083 }
084
085 /**
086 * @return Returns the grid.
087 *
088 */
089 public Object[] getGrid() {
090 return grid;
091 }
092
093 /**
094 * @param grid The grid to set.
095 *
096 */
097 public void setGrid(Object[] grid) {
098 if (grid == null) {
099 grid = new Object[0];
100 }
101 this.grid = grid;
102 }
103
104 /**
105 * @return Returns the surface.
106 *
107 */
108 public Surface[] getSurface() {
109 return surface;
110 }
111
112 /**
113 * @param surface The surface to set.
114 *
115 */
116 public void setSurface(Surface[] surface) {
117 if (surface == null) {
118 surface = new Surface[0];
119 }
120 this.surface = surface;
121 }
122
123
124 /**
125 * @see java.lang.Object#clone()
126 */
127 public Object clone() {
128 try {
129 Envelope[] env = new Envelope[envelops.length];
130 for (int i = 0; i < env.length; i++) {
131 env[i] = (Envelope)((EnvelopeImpl)envelops[i]).clone();
132 }
133
134 Surface[] surf = new Surface[surface.length];
135 for (int i = 0; i < surf.length; i++) {
136 surf[i] = (Surface)((SurfaceImpl)surface[i]).clone();
137 }
138 return new SpatialDomain( env, surf, grid );
139 } catch(Exception e) {
140 e.printStackTrace();
141 }
142 return null;
143 }
144
145 }
146 /* ********************************************************************
147 Changes to this class. What the people have been up to:
148 $Log$
149 Revision 1.3 2006/12/03 21:20:48 poth
150 code formatting
151
152 Revision 1.2 2005/01/18 22:08:55 poth
153 no message
154
155 Revision 1.4 2004/07/14 06:52:48 ap
156 no message
157
158 Revision 1.3 2004/06/28 06:26:52 ap
159 no message
160
161 Revision 1.2 2004/05/25 07:19:13 ap
162 no message
163
164 Revision 1.1 2004/05/24 06:54:39 ap
165 no message
166
167
168 ********************************************************************** */