source: ether_megapoli/trunk/service/implementation/gov2/noaa/pmel/util/Domain.java @ 192

Last change on this file since 192 was 192, checked in by vmipsl, 13 years ago

Servlet _ Contour en cours _ package gov2

File size: 5.0 KB
Line 
1/*
2 * $Id: Domain.java,v 1.4 2003/08/22 23:02:40 dwd Exp $
3 *
4 * This software is provided by NOAA for full, free and open release.  It is
5 * understood by the recipient/user that NOAA assumes no liability for any
6 * errors contained in the code.  Although this software is released without
7 * conditions or restrictions in its use, it is expected that appropriate
8 * credit be given to its author and to the National Oceanic and Atmospheric
9 * Administration should the software be included by the recipient as an
10 * element in other product development.
11 */
12package  gov.noaa.pmel.util;
13
14/**
15 * <code>GraphDomain</code> contains the X and Y ranges in user units.
16 *
17 * @author Donald Denbo
18 * @version $Revision: 1.4 $, $Date: 2003/08/22 23:02:40 $
19 * @since sgt 2.0
20 */
21public class Domain implements java.io.Serializable {
22  Range2D xRange_ = null;
23  Range2D yRange_ = null;
24  TimeRange tRange_ = null;
25  boolean xTime_ = false;
26  boolean yTime_ = false;
27  boolean xReversed_ = false;
28  boolean yReversed_ = false;
29  /**
30   * Default constructor.
31   */
32  public Domain() {
33  }
34  /**
35   * Create a copy of a <code>Domain</code>.  The references for the
36   * ranges are copied, not the objects.
37   */
38  public Domain(Domain domain) {
39    if(domain.isXTime()) {
40      tRange_ = domain.getTimeRange();
41    } else {
42      xRange_ = domain.getXRange();
43    }
44    if(domain.isYTime()) {
45      tRange_ = domain.getTimeRange();
46    } else {
47      yRange_ = domain.getYRange();
48    }
49    xReversed_ = domain.isXReversed();
50    yReversed_ = domain.isYReversed();
51  }
52  public Domain(Range2D xRange, Range2D yRange) {
53    xRange_ = xRange;
54    yRange_ = yRange;
55  }
56  public Domain(TimeRange tRange, Range2D yRange) {
57    tRange_ = tRange;
58    yRange_ = yRange;
59    xTime_ = true;
60  }
61  public Domain(Range2D xRange, TimeRange tRange) {
62    xRange_ = xRange;
63    tRange_ = tRange;
64    yTime_ = true;
65  }
66  /**
67   * @since sgt 3.0
68   */
69  public Domain(Range2D xRange, Range2D yRange,
70                boolean xRev, boolean yRev) {
71    xRange_ = xRange;
72    yRange_ = yRange;
73    xReversed_ = xRev;
74    yReversed_ = yRev;
75  }
76  /**
77   * @since sgt 3.0
78   */
79  public Domain(TimeRange tRange, Range2D yRange,
80                boolean xRev, boolean yRev) {
81    tRange_ = tRange;
82    yRange_ = yRange;
83    xTime_ = true;
84    xReversed_ = xRev;
85    yReversed_ = yRev;
86  }
87  /**
88   * @since sgt 3.0
89   */
90  public Domain(Range2D xRange, TimeRange tRange,
91                boolean xRev, boolean yRev) {
92    xRange_ = xRange;
93    tRange_ = tRange;
94    yTime_ = true;
95    xReversed_ = xRev;
96    yReversed_ = yRev;
97  }
98  /**
99   * Set the x range.
100   */
101  public void setXRange(Range2D xRange) {
102    xTime_ = false;
103    xRange_ = xRange;
104  }
105  /**
106   * Set the x range as time.
107   */
108  public void setXRange(TimeRange tRange) {
109    xTime_ = true;
110    tRange_ = tRange;
111  }
112  /**
113   * Get the x range.
114   */
115  public Range2D getXRange() {
116    return xRange_;
117  }
118  /**
119   * Set the y range
120   */
121  public void setYRange(Range2D yRange) {
122    yTime_ = false;
123    yRange_ = yRange;
124  }
125  /**
126   * Set the yrange as time.
127   */
128  public void setYRange(TimeRange tRange) {
129    yTime_ = true;
130    tRange_ = tRange;
131  }
132  /**
133   * Get the y range.
134   */
135  public Range2D getYRange() {
136    return yRange_;
137  }
138  /**
139   * Get the time range
140   */
141  public TimeRange getTimeRange() {
142    return tRange_;
143  }
144  /**
145   * Test if x range is time.
146   */
147  public boolean isXTime() {
148    return xTime_;
149  }
150  /**
151   * Test if y range is time.
152   */
153  public boolean isYTime() {
154    return yTime_;
155  }
156  /**
157   * @since sgt 3.0
158   */
159  public void setYReversed(boolean rev) {
160    yReversed_ = rev;
161  }
162  /**
163   * @since sgt 3.0
164   */
165  public boolean isYReversed() {
166    return yReversed_;
167  }
168  /**
169   * @since sgt 3.0
170   */
171  public void setXReversed(boolean rev) {
172    xReversed_ = rev;
173  }
174  /**
175   * @since sgt 3.0
176   */
177  public boolean isXReversed() {
178    return xReversed_;
179  }
180
181  /**
182   * Tests for equality of <code>Domain</code>s.  Both ranges must be
183   * equal.
184   */
185  public boolean equals(Domain d) {
186    if(xTime_) {
187      if(!d.isXTime()) return false;
188      if(!tRange_.equals(d.getTimeRange())) return false;
189    } else {
190      if(d.isXTime()) return false;
191      if(!xRange_.equals(d.getXRange())) return false;
192    }
193    if(yTime_) {
194      if(!d.isYTime()) return false;
195      if(!tRange_.equals(d.getTimeRange())) return false;
196    } else {
197      if(d.isYTime()) return false;
198      if(!yRange_.equals(d.getYRange())) return false;
199    }
200    if(xReversed_ != d.isXReversed()) return false;
201    if(yReversed_ != d.isYReversed()) return false;
202    return true;
203  }
204  public String toString() {
205    StringBuffer buf = new StringBuffer(100);
206    buf.append("x=");
207    if(xTime_) {
208      buf.append(tRange_).append(",y=");
209    } else {
210      buf.append(xRange_).append(",y=");
211    }
212    if(yTime_) {
213      buf.append(tRange_);
214    } else {
215      buf.append(yRange_);
216    }
217    buf.append(", xRev=").append(xReversed_);
218    buf.append(", yRev=").append(yReversed_);
219    return buf.toString();
220  }
221}
Note: See TracBrowser for help on using the repository browser.