dods.clients.importwizard.TMAP.convert
Class ConvertLongitude

java.lang.Object
  extended by dods.clients.importwizard.TMAP.convert.Convert
      extended by dods.clients.importwizard.TMAP.convert.ConvertLongitude

public class ConvertLongitude
extends Convert

A class for conversions between double and String along a Longitude axis. The axis will have a range of acceptable values. This package is designed to be hooked up with TextInputFields for region specification on database servers.

Version:
0.1, Sep 03, 1997
Author:
Jonathan Callahan This class may change substantially when ported to JDK 1.1 which contains a java.text.Format class. In the future, Convert and its subclasses may extend that class. This class may change substantially when ported to JDK 1.1 which contains a java.text.Format class. In the future, Convert and its subclasses may extend that class. This software was developed by the Thermal Modeling and Analysis Project(TMAP) of the National Oceanographic and Atmospheric Administration's (NOAA) Pacific Marine Environmental Lab(PMEL), hereafter referred to as NOAA/PMEL/TMAP. Access and use of this software shall impose the following obligations and understandings on the user. The user is granted the right, without any fee or cost, to use, copy, modify, alter, enhance and distribute this software, and any derivative works thereof, and its supporting documentation for any purpose whatsoever, provided that this entire notice appears in all copies of the software, derivative works and supporting documentation. Further, the user agrees to credit NOAA/PMEL/TMAP in any publications that result from the use of this software or in any product that includes this software. The names TMAP, NOAA and/or PMEL, however, may not be used in any advertising or publicity to endorse or promote any products or commercial entity unless specific written permission is obtained from NOAA/PMEL/TMAP. The user also understands that NOAA/PMEL/TMAP is not obligated to provide the user with any support, consulting, training or assistance of any kind with regard to the use, operation and performance of this software nor to provide the user with any updates, revisions, new versions or "bug fixes". THIS SOFTWARE IS PROVIDED BY NOAA/PMEL/TMAP "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NOAA/PMEL/TMAP BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE.

Field Summary
static int E_W
           
static int M180_180
           
static int SPACE_E_W
           
static int SPACE_EAST_WEST
           
static int ZERO_360
           
 
Fields inherited from class dods.clients.importwizard.TMAP.convert.Convert
HI, LO, outputStyle, range, units
 
Constructor Summary
ConvertLongitude()
          Creates a Convert object.
ConvertLongitude(int style)
          Creates a ConvertLongitude object with a predefined outputStyle.
 
Method Summary
 double getNearestValue(double val)
          Returns the nearest value within the range.
 double[] intersectRange(double val_lo, double val_hi)
          Returns the intersection of the incoming range within the internal range.
protected  double rangeTest(double val)
          Tests a value against the range.
 void setOutputStyle(int style)
          Sets the output style for the toString() method.
 void setRange(double lo, double hi)
          Sets the valid range for the ConvertLongitude object.
 double toDouble(String s)
          Converts a Longitude string to a double value.
 String toString(double val)
          Converts a double value to a Longitude String.
 
Methods inherited from class dods.clients.importwizard.TMAP.convert.Convert
getNearestValue, getRange, getRange, getUnits, setUnits, toString, unitTest
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

M180_180

public static final int M180_180
See Also:
Constant Field Values

ZERO_360

public static final int ZERO_360
See Also:
Constant Field Values

E_W

public static final int E_W
See Also:
Constant Field Values

SPACE_E_W

public static final int SPACE_E_W
See Also:
Constant Field Values

SPACE_EAST_WEST

public static final int SPACE_EAST_WEST
See Also:
Constant Field Values
Constructor Detail

ConvertLongitude

public ConvertLongitude()
Creates a Convert object.


ConvertLongitude

public ConvertLongitude(int style)
Creates a ConvertLongitude object with a predefined outputStyle.

Parameters:
style - one of the supported output styles.
Method Detail

setOutputStyle

public void setOutputStyle(int style)
Sets the output style for the toString() method. Supported output styles are:


setRange

public void setRange(double lo,
                     double hi)
              throws IllegalArgumentException
Sets the valid range for the ConvertLongitude object. All values are forced to be in the [-360:360] range. The range may have (hi < lo) as in [150:-90] but if more than one world is specified, (abs(hi-lo) > 360), all values will be converted to [-180:180]. When exactly one world is specified then the lo and hi values will be used such that (lo < hi). Thus (20:380) --> [-340:20] and (20:378) --> [-340:18] but (20:18) --> [20:18] Keep (150:-70) --> [150:-170] (40:280) --> [40:280]

Overrides:
setRange in class Convert
Parameters:
lo - the lowest acceptable value.
hi - the highest acceptable value.
Throws:
IllegalArgumentException

toDouble

public double toDouble(String s)
                throws IllegalArgumentException
Converts a Longitude string to a double value. Acceptable strings are:
"45"
"45.5"
"-45"
"45E"
"-45W" (same as 45E)
"45 54W" (= 45 degrees, 54 minutes West)
"45 54.5" (= 45 degrees, 54.5 minutes East)
"45 54 30" (= 45 degrees, 54 minutes, 30 seconds East)
"455430N" (= 45 degrees, 54 minutes, 30 seconds East (USGS format))

Specified by:
toDouble in class Convert
Parameters:
s - String representing the Longitude.
Returns:
The double represented by the String.
Throws:
IllegalArgumentException - if s cannot be interpreted.

toString

public String toString(double val)
Converts a double value to a Longitude String.

Specified by:
toString in class Convert
Parameters:
val - double value.
Returns:
String the string representation of the input.

getNearestValue

public double getNearestValue(double val)
Returns the nearest value within the range.

Overrides:
getNearestValue in class Convert
Parameters:
lon - The value of the Longitude.
Returns:
the nearest value within the range.

intersectRange

public double[] intersectRange(double val_lo,
                               double val_hi)
                        throws IllegalArgumentException
Returns the intersection of the incoming range within the internal range. An error is returned if there is no intersection.

Overrides:
intersectRange in class Convert
Parameters:
val_lo - The lo value of the range to be tested.
val_hi - The hi value of the range to be tested.
Returns:
the nearest value within the range.
Throws:
IllegalArgumentException - range is outside the internally defined range.

rangeTest

protected double rangeTest(double val)
                    throws IllegalArgumentException
Tests a value against the range.

Overrides:
rangeTest in class Convert
Parameters:
lon - The value of the Longitude.
Returns:
The value passed in, possibly shifted by 360 deg to fit within the range.
Throws:
IllegalArgumentException - if val is outisde the specified range.