altoslib: Store saved state in version-independent format
[fw/altos] / altoslib / AltosGPSSat.java
1 /*
2  * Copyright © 2011 Keith Packard <keithp@keithp.com>
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation; version 2 of the License.
7  *
8  * This program is distributed in the hope that it will be useful, but
9  * WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
11  * General Public License for more details.
12  *
13  * You should have received a copy of the GNU General Public License along
14  * with this program; if not, write to the Free Software Foundation, Inc.,
15  * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
16  */
17
18 package org.altusmetrum.altoslib_11;
19
20 import java.io.*;
21 import java.text.*;
22 import java.util.*;
23 import java.util.concurrent.*;
24
25 public class AltosGPSSat {
26         public int      svid;
27         public int      c_n0;
28
29         public AltosGPSSat(int s, int c) {
30                 svid = s;
31                 c_n0= c;
32         }
33
34         public AltosGPSSat() {
35         }
36
37         public AltosHashSet hashSet() {
38                 AltosHashSet h = new AltosHashSet();
39                 h.putInt("svid", svid);
40                 h.putInt("c_n0", c_n0);
41                 return h;
42         }
43
44         private AltosGPSSat(AltosHashSet h) {
45                 svid = h.getInt("svid", 0);
46                 c_n0 = h.getInt("c_n0", 0);
47         }
48
49         static public AltosGPSSat fromHashSet(AltosHashSet h, AltosGPSSat def) {
50                 if (h == null)
51                         return def;
52                 return new AltosGPSSat(h);
53         }
54
55         static public AltosGPSSat[] array(String string) {
56
57                 if (string == null)
58                         return null;
59
60                 try {
61                         StringReader            reader = new StringReader(string);
62                         ArrayList<AltosGPSSat>  array = new ArrayList<AltosGPSSat>();
63                         String                  element;
64
65                         while ((element = AltosHashSet.get_token(reader)) != null) {
66                                 AltosGPSSat sat = AltosGPSSat.fromHashSet(AltosHashSet.fromString(element), null);
67                                 if (sat != null)
68                                         array.add(sat);
69                         }
70                         return array.toArray(new AltosGPSSat[0]);
71                 } catch (IOException ie) {
72                         return null;
73                 }
74         }
75
76         public static String toString(AltosGPSSat[] sats) {
77                 if (sats == null)
78                         return null;
79
80                 try {
81                         StringWriter            writer = new StringWriter();
82
83                         for (AltosGPSSat g : sats) {
84                                 String          element = g.hashSet().toString();
85                                 AltosHashSet.put_token(writer, element);
86                         }
87                         return writer.toString();
88                 } catch (IOException ie) {
89                         return null;
90                 }
91         }
92 }
93