X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=altoslib%2FAltosGPSSat.java;h=ad7a864702323efa1c5a109b230c682df08d8c48;hb=b1a90adac9f6e2a609ce1ccd6749462bb5c9adbe;hp=abde1c0c1ab485ba5e45d3ebdf341e83e57e4aad;hpb=b13037fad0905c5933d1ff579122ba1357b02eea;p=fw%2Faltos diff --git a/altoslib/AltosGPSSat.java b/altoslib/AltosGPSSat.java index abde1c0c..ad7a8647 100644 --- a/altoslib/AltosGPSSat.java +++ b/altoslib/AltosGPSSat.java @@ -16,11 +16,13 @@ */ package org.altusmetrum.altoslib_11; + +import java.io.*; import java.text.*; +import java.util.*; import java.util.concurrent.*; -import java.io.*; -public class AltosGPSSat implements Serializable { +public class AltosGPSSat { public int svid; public int c_n0; @@ -31,5 +33,61 @@ public class AltosGPSSat implements Serializable { public AltosGPSSat() { } + + public AltosHashSet hashSet() { + AltosHashSet h = new AltosHashSet(); + h.putInt("svid", svid); + h.putInt("c_n0", c_n0); + return h; + } + + private AltosGPSSat(AltosHashSet h) { + svid = h.getInt("svid", 0); + c_n0 = h.getInt("c_n0", 0); + } + + static public AltosGPSSat fromHashSet(AltosHashSet h, AltosGPSSat def) { + if (h == null) + return def; + return new AltosGPSSat(h); + } + + static public AltosGPSSat[] array(String string) { + + if (string == null) + return null; + + try { + StringReader reader = new StringReader(string); + ArrayList array = new ArrayList(); + String element; + + while ((element = AltosHashSet.get_token(reader)) != null) { + AltosGPSSat sat = AltosGPSSat.fromHashSet(AltosHashSet.fromString(element), null); + if (sat != null) + array.add(sat); + } + return array.toArray(new AltosGPSSat[0]); + } catch (IOException ie) { + return null; + } + } + + public static String toString(AltosGPSSat[] sats) { + if (sats == null) + return null; + + try { + StringWriter writer = new StringWriter(); + + for (AltosGPSSat g : sats) { + String element = g.hashSet().toString(); + AltosHashSet.put_token(writer, element); + } + return writer.toString(); + } catch (IOException ie) { + return null; + } + } }