altoslib: Improve AltosState save/restore debugging
[fw/altos] / altoslib / AltosFrequency.java
index 88997152982f6e5876539144372ca9e3e680e1ed..3c1631a8a1bd0295f30478cd1d486ef12b771ef2 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,12 +58,12 @@ public class AltosFrequency implements Serializable {
                return diff < 0.010;
        }
 
-       public AltosHashSet hashSet() {
-               AltosHashSet    h = new AltosHashSet();
+       public AltosJson json() {
+               AltosJson       j = new AltosJson();
 
-               h.putDouble("frequency", frequency);
-               h.putString("description", description);
-               return h;
+               j.put("frequency", frequency);
+               j.put("description", description);
+               return j;
        }
 
        public AltosFrequency(double f, String d) {
@@ -71,8 +71,14 @@ public class AltosFrequency implements Serializable {
                description = d;
        }
 
-       public AltosFrequency(AltosHashSet h) {
-               frequency = h.getDouble("frequency", 0.0);
-               description = h.getString("description", "");
+       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);
        }
 }