summaryrefslogtreecommitdiff
path: root/altoslib/AltosMag.java
diff options
context:
space:
mode:
Diffstat (limited to 'altoslib/AltosMag.java')
-rw-r--r--altoslib/AltosMag.java26
1 files changed, 25 insertions, 1 deletions
diff --git a/altoslib/AltosMag.java b/altoslib/AltosMag.java
index c350ae46..ec98882f 100644
--- a/altoslib/AltosMag.java
+++ b/altoslib/AltosMag.java
@@ -20,7 +20,7 @@ package org.altusmetrum.altoslib_11;
import java.util.concurrent.*;
import java.io.*;
-public class AltosMag implements Cloneable, AltosHashable {
+public class AltosMag implements Cloneable, AltosHashable, AltosJsonable {
public int along;
public int across;
public int through;
@@ -103,6 +103,15 @@ public class AltosMag implements Cloneable, AltosHashable {
return h;
}
+ public AltosJson json() {
+ AltosJson j = new AltosJson();
+
+ j.put("along", along);
+ j.put("across", across);
+ j.put("through", through);
+ return j;
+ }
+
public AltosMag(AltosHashSet h) {
this();
@@ -117,4 +126,19 @@ public class AltosMag implements Cloneable, AltosHashable {
return new AltosMag(h);
}
+
+ public AltosMag(AltosJson j) {
+ this();
+
+ along = j.get_int("along", along);
+ across = j.get_int("across", across);
+ through = j.get_int("through", through);
+ }
+
+ public static AltosMag fromJson(AltosJson j, AltosMag def) {
+ if (j == null)
+ return def;
+
+ return new AltosMag(j);
+ }
}