+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;
+ }
+}