altoslib: Switch preserved state format to JSON
[fw/altos] / altoslib / AltosFrequency.java
index ef46bd67c53eed8441091f0aef5130a698d90b29..99828d5362ff57668709d00e374a3e62914bc4b6 100644 (file)
@@ -21,7 +21,7 @@ import java.io.*;
 import java.util.*;
 import java.text.*;
 
-public class AltosFrequency implements Serializable {
+public class AltosFrequency implements AltosJsonable {
        public double   frequency;
        public String   description;
 
@@ -58,8 +58,46 @@ public class AltosFrequency implements Serializable {
                return diff < 0.010;
        }
 
+       public AltosHashSet hashSet() {
+               AltosHashSet    h = new AltosHashSet();
+
+               h.putDouble("frequency", frequency);
+               h.putString("description", description);
+               return h;
+       }
+
+       public AltosJson json() {
+               AltosJson       j = new AltosJson();
+
+               j.put("frequency", frequency);
+               j.put("description", description);
+               return j;
+       }
+
        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);
+       }
+
+       private AltosFrequency(AltosJson j) {
+               frequency = j.get_double("frequency", 0.0);
+               description = j.get_string("description", "");
+       }
+
+       public static AltosFrequency fromJson(AltosJson j, AltosFrequency def) {
+               if (j == null)
+                       return def;
+               return new AltosFrequency(j);
+       }
 }