1 package org.djunits.unit;
2
3 import static org.djunits.unit.unitsystem.UnitSystem.OTHER;
4 import static org.djunits.unit.unitsystem.UnitSystem.SI_ACCEPTED;
5 import static org.djunits.unit.unitsystem.UnitSystem.SI_DERIVED;
6
7 import org.djunits.unit.unitsystem.UnitSystem;
8
9
10
11
12
13
14
15
16
17
18
19 public class FrequencyUnit extends LinearUnit<FrequencyUnit>
20 {
21
22 private static final long serialVersionUID = 20140607L;
23
24
25 private final DurationUnit durationUnit;
26
27
28 public static final FrequencyUnit SI;
29
30
31 public static final FrequencyUnit HERTZ;
32
33
34 public static final FrequencyUnit KILOHERTZ;
35
36
37 public static final FrequencyUnit MEGAHERTZ;
38
39
40 public static final FrequencyUnit GIGAHERTZ;
41
42
43 public static final FrequencyUnit TERAHERTZ;
44
45
46 public static final FrequencyUnit RPM;
47
48
49 public static final FrequencyUnit PER_ATTOSECOND;
50
51
52 public static final FrequencyUnit PER_FEMTOSECOND;
53
54
55 public static final FrequencyUnit PER_PICOSECOND;
56
57
58 public static final FrequencyUnit PER_NANOSECOND;
59
60
61 public static final FrequencyUnit PER_MICROSECOND;
62
63
64 public static final FrequencyUnit PER_MILLISECOND;
65
66
67 public static final FrequencyUnit PER_SECOND;
68
69
70 public static final FrequencyUnit PER_MINUTE;
71
72
73 public static final FrequencyUnit PER_HOUR;
74
75
76 public static final FrequencyUnit PER_DAY;
77
78
79 public static final FrequencyUnit PER_WEEK;
80
81 static
82 {
83 SI = new FrequencyUnit(DurationUnit.SECOND, "FrequencyUnit.Hertz", "FrequencyUnit.Hz", SI_DERIVED, true);
84 HERTZ = SI;
85 KILOHERTZ = new FrequencyUnit("FrequencyUnit.kilohertz", "FrequencyUnit.kHz", SI_DERIVED, HERTZ, 1000.0, true);
86 MEGAHERTZ = new FrequencyUnit("FrequencyUnit.megahertz", "FrequencyUnit.MHz", SI_DERIVED, HERTZ, 1.0E6, true);
87 GIGAHERTZ = new FrequencyUnit("FrequencyUnit.gigahertz", "FrequencyUnit.GHz", SI_DERIVED, HERTZ, 1.0E9, true);
88 TERAHERTZ = new FrequencyUnit("FrequencyUnit.terahertz", "FrequencyUnit.THz", SI_DERIVED, HERTZ, 1.0E12, true);
89 RPM = new FrequencyUnit("FrequencyUnit.revolutions_per_minute", "FrequencyUnit.rpm", OTHER, HERTZ, 1.0 / 60.0, true);
90 PER_ATTOSECOND = new FrequencyUnit(DurationUnit.ATTOSECOND, "FrequencyUnit.per_attosecond", "FrequencyUnit.1/as",
91 SI_DERIVED, true);
92 PER_FEMTOSECOND = new FrequencyUnit(DurationUnit.FEMTOSECOND, "FrequencyUnit.per_femtosecond", "FrequencyUnit.1/fs",
93 SI_DERIVED, true);
94 PER_PICOSECOND = new FrequencyUnit(DurationUnit.PICOSECOND, "FrequencyUnit.per_picosecond", "FrequencyUnit.1/ps",
95 SI_DERIVED, true);
96 PER_NANOSECOND = new FrequencyUnit(DurationUnit.NANOSECOND, "FrequencyUnit.per_nanosecond", "FrequencyUnit.1/ns",
97 SI_DERIVED, true);
98 PER_MICROSECOND = new FrequencyUnit(DurationUnit.MICROSECOND, "FrequencyUnit.per_microsecond", "FrequencyUnit.1/mus",
99 SI_DERIVED, true);
100 PER_MILLISECOND = new FrequencyUnit(DurationUnit.MILLISECOND, "FrequencyUnit.per_millisecond", "FrequencyUnit.1/ms",
101 SI_DERIVED, true);
102 PER_SECOND = new FrequencyUnit(DurationUnit.SECOND, "FrequencyUnit.per_second", "FrequencyUnit.1/s", SI_DERIVED, true);
103 PER_MINUTE =
104 new FrequencyUnit(DurationUnit.MINUTE, "FrequencyUnit.per_minute", "FrequencyUnit.1/min", SI_ACCEPTED, true);
105 PER_HOUR = new FrequencyUnit(DurationUnit.HOUR, "FrequencyUnit.per_hour", "FrequencyUnit.1/h", SI_ACCEPTED, true);
106 PER_DAY = new FrequencyUnit(DurationUnit.DAY, "FrequencyUnit.per_day", "FrequencyUnit.1/d", SI_ACCEPTED, true);
107 PER_WEEK = new FrequencyUnit(DurationUnit.WEEK, "FrequencyUnit.per_week", "FrequencyUnit.1/w", OTHER, true);
108 }
109
110
111
112
113
114
115
116
117
118
119
120
121 private FrequencyUnit(final DurationUnit durationUnit, final String nameOrNameKey,
122 final String abbreviationOrAbbreviationKey, final UnitSystem unitSystem, final boolean standardUnit)
123 {
124 super(nameOrNameKey, abbreviationOrAbbreviationKey, unitSystem, HERTZ, 1.0 / durationUnit.getScaleFactor(),
125 standardUnit);
126 this.durationUnit = durationUnit;
127 }
128
129
130
131
132
133
134
135
136 public FrequencyUnit(final DurationUnit durationUnit, final String name, final String abbreviation,
137 final UnitSystem unitSystem)
138 {
139 this(durationUnit, name, abbreviation, unitSystem, false);
140 }
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155 private FrequencyUnit(final String nameOrNameKey, final String abbreviationOrAbbreviationKey, final UnitSystem unitSystem,
156 final FrequencyUnit referenceUnit, final double scaleFactorToReferenceUnit, final boolean standardUnit)
157 {
158 super(nameOrNameKey, abbreviationOrAbbreviationKey, unitSystem, referenceUnit, scaleFactorToReferenceUnit,
159 standardUnit);
160 this.durationUnit = referenceUnit.getDurationUnit();
161 }
162
163
164
165
166
167
168
169
170
171
172 public FrequencyUnit(final String name, final String abbreviation, final UnitSystem unitSystem,
173 final FrequencyUnit referenceUnit, final double scaleFactorToReferenceUnit)
174 {
175 this(name, abbreviation, unitSystem, referenceUnit, scaleFactorToReferenceUnit, false);
176 }
177
178
179
180
181 public final DurationUnit getDurationUnit()
182 {
183 return this.durationUnit;
184 }
185
186
187 @Override
188 public final FrequencyUnit getStandardUnit()
189 {
190 return HERTZ;
191 }
192
193
194 @Override
195 public final String getSICoefficientsString()
196 {
197 return "1/s";
198 }
199
200 }