88997152982f6e5876539144372ca9e3e680e1ed
[fw/altos] / altoslib / AltosFrequency.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.util.*;
22 import java.text.*;
23
24 public class AltosFrequency implements Serializable {
25         public double   frequency;
26         public String   description;
27
28         public int hashCode() {
29                 return new Double(frequency).hashCode();
30         }
31
32         public boolean equals(Object o) {
33                 if (o == null)
34                         return false;
35                 if (!(o instanceof AltosFrequency))
36                         return false;
37                 AltosFrequency other = (AltosFrequency) o;
38                 return other.frequency == frequency;
39         }
40
41         public String toString() {
42                 return String.format("%7.3f MHz %-20s",
43                                      frequency, description);
44         }
45
46         public String toShortString() {
47                 return String.format("%7.3f MHz %s",
48                                      frequency, description);
49         }
50
51         public String frequency_string() {
52                 return String.format("%7.3f", frequency);
53         }
54
55         public boolean close(double f) {
56                 double  diff = Math.abs(frequency - f);
57
58                 return diff < 0.010;
59         }
60
61         public AltosHashSet hashSet() {
62                 AltosHashSet    h = new AltosHashSet();
63
64                 h.putDouble("frequency", frequency);
65                 h.putString("description", description);
66                 return h;
67         }
68
69         public AltosFrequency(double f, String d) {
70                 frequency = f;
71                 description = d;
72         }
73
74         public AltosFrequency(AltosHashSet h) {
75                 frequency = h.getDouble("frequency", 0.0);
76                 description = h.getString("description", "");
77         }
78 }