]> gitweb.fperrin.net Git - GpsPrune.git/blobdiff - src/tim/prune/data/Longitude.java
Moved source into separate src directory due to popular request
[GpsPrune.git] / src / tim / prune / data / Longitude.java
diff --git a/src/tim/prune/data/Longitude.java b/src/tim/prune/data/Longitude.java
new file mode 100644 (file)
index 0000000..b4c0413
--- /dev/null
@@ -0,0 +1,80 @@
+package tim.prune.data;
+
+/**
+ * Class to represent a Longitude Coordinate
+ */
+public class Longitude extends Coordinate
+{
+       /**
+        * Constructor
+        * @param inString string value from file
+        */
+       public Longitude(String inString)
+       {
+               super(inString);
+       }
+
+
+       /**
+        * Constructor
+        * @param inValue value of coordinate
+        * @param inFormat format to use
+        */
+       public Longitude(double inValue, int inFormat)
+       {
+               super(inValue, inFormat, inValue < 0.0 ? WEST : EAST);
+       }
+
+
+       /**
+        * Turn the given character into a cardinal
+        * @see tim.prune.data.Coordinate#getCardinal(char)
+        */
+       protected int getCardinal(char inChar)
+       {
+               // Longitude recognises E, W and -
+               // default is no cardinal
+               int cardinal = NO_CARDINAL;
+               switch (inChar)
+               {
+                       case 'E':
+                       case 'e':
+                               cardinal = EAST; break;
+                       case 'W':
+                       case 'w':
+                       case '-':
+                               cardinal = WEST; break;
+                       default:
+                               // no character given
+               }
+               return cardinal;
+       }
+
+
+       /**
+        * @return default cardinal (East)
+        * @see tim.prune.data.Coordinate#getDefaultCardinal()
+        */
+       protected int getDefaultCardinal()
+       {
+               return EAST;
+       }
+
+
+       /**
+        * Make a new Longitude object
+        * @see tim.prune.data.Coordinate#makeNew(double, int)
+        */
+       protected Coordinate makeNew(double inValue, int inFormat)
+       {
+               return new Longitude(inValue, inFormat);
+       }
+
+       /**
+        * @return the maximum degree range for this coordinate
+        */
+       protected int getMaxDegrees()
+       {
+               return 180;
+       }
+}