altosuilib: Track open frames, exit when none remain
[fw/altos] / altoslib / AltosFrequency.java
index d1ab847b1097d3ef0c249ca11b929caad328cee6..f9aa6de6ccb3eeea88baee2eb751a6ae3b9cd44d 100644 (file)
  * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
  */
 
-package org.altusmetrum.altoslib_4;
+package org.altusmetrum.altoslib_11;
+
+import java.io.*;
+import java.util.*;
+import java.text.*;
 
 public class AltosFrequency {
        public double   frequency;
        public String   description;
 
+       public int hashCode() {
+               return new Double(frequency).hashCode();
+       }
+
+       public boolean equals(Object o) {
+               if (o == null)
+                       return false;
+               if (!(o instanceof AltosFrequency))
+                       return false;
+               AltosFrequency other = (AltosFrequency) o;
+               return other.frequency == frequency;
+       }
+
        public String toString() {
                return String.format("%7.3f MHz %-20s",
                                     frequency, description);
@@ -31,14 +48,37 @@ public class AltosFrequency {
                                     frequency, description);
        }
 
+       public String frequency_string() {
+               return String.format("%7.3f", frequency);
+       }
+
        public boolean close(double f) {
                double  diff = Math.abs(frequency - f);
 
                return diff < 0.010;
        }
 
+       public AltosHashSet hashSet() {
+               AltosHashSet    h = new AltosHashSet();
+
+               h.putDouble("frequency", frequency);
+               h.putString("description", description);
+               return h;
+       }
+
        public AltosFrequency(double f, String d) {
                frequency = f;
                description = d;
        }
+
+       private AltosFrequency(AltosHashSet h) {
+               frequency = h.getDouble("frequency", 0.0);
+               description = h.getString("description", "");
+       }
+
+       public static AltosFrequency fromHashSet(AltosHashSet h, AltosFrequency def) {
+               if (h == null)
+                       return def;
+               return new AltosFrequency(h);
+       }
 }