X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=altoslib%2FAltosGPSSat.java;h=ad7a864702323efa1c5a109b230c682df08d8c48;hb=2a4d741872449b5332f28e018fa3acc53ed7d891;hp=adbcbe61ad2bfbec023fad34b721fd948414ff46;hpb=c8078d352a7f54a4a97d25af080155d3f875536a;p=fw%2Faltos diff --git a/altoslib/AltosGPSSat.java b/altoslib/AltosGPSSat.java index adbcbe61..ad7a8647 100644 --- a/altoslib/AltosGPSSat.java +++ b/altoslib/AltosGPSSat.java @@ -15,7 +15,12 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_5; +package org.altusmetrum.altoslib_11; + +import java.io.*; +import java.text.*; +import java.util.*; +import java.util.concurrent.*; public class AltosGPSSat { public int svid; @@ -28,5 +33,61 @@ public class AltosGPSSat { 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; + } + } }