1 package org.djunits.unit;
2
3 import static org.djunits.unit.unitsystem.UnitSystem.CGS_EMU;
4 import static org.djunits.unit.unitsystem.UnitSystem.CGS_ESU;
5 import static org.djunits.unit.unitsystem.UnitSystem.OTHER;
6 import static org.djunits.unit.unitsystem.UnitSystem.SI_ACCEPTED;
7 import static org.djunits.unit.unitsystem.UnitSystem.SI_DERIVED;
8
9 import org.djunits.unit.unitsystem.UnitSystem;
10
11
12
13
14
15
16
17
18
19
20
21 public class ElectricalChargeUnit extends LinearUnit<ElectricalChargeUnit>
22 {
23
24 private static final long serialVersionUID = 20140607L;
25
26
27 private final ElectricalCurrentUnit electricalCurrentUnit;
28
29
30 private final DurationUnit durationUnit;
31
32
33 public static final ElectricalChargeUnit SI;
34
35
36 public static final ElectricalChargeUnit COULOMB;
37
38
39 public static final ElectricalChargeUnit PICOCOULOMB;
40
41
42 public static final ElectricalChargeUnit NANOCOULOMB;
43
44
45 public static final ElectricalChargeUnit MICROCOULOMB;
46
47
48 public static final ElectricalChargeUnit MILLICOULOMB;
49
50
51 public static final ElectricalChargeUnit MILLIAMPERE_HOUR;
52
53
54 public static final ElectricalChargeUnit MILLIAMPERE_SECOND;
55
56
57 public static final ElectricalChargeUnit AMPERE_HOUR;
58
59
60 public static final ElectricalChargeUnit KILOAMPERE_HOUR;
61
62
63 public static final ElectricalChargeUnit MEGAAMPERE_HOUR;
64
65
66 public static final ElectricalChargeUnit FARADAY;
67
68
69 public static final ElectricalChargeUnit ATOMIC_UNIT;
70
71
72 public static final ElectricalChargeUnit STATCOULOMB;
73
74
75 public static final ElectricalChargeUnit FRANKLIN;
76
77
78 public static final ElectricalChargeUnit ESU;
79
80
81 public static final ElectricalChargeUnit ABCOULOMB;
82
83
84 public static final ElectricalChargeUnit EMU;
85
86 static
87 {
88 SI = new ElectricalChargeUnit(ElectricalCurrentUnit.AMPERE, DurationUnit.SECOND, "ElectricalChargeUnit.coulomb",
89 "ElectricalChargeUnit.C", SI_DERIVED, true);
90 COULOMB = SI;
91 PICOCOULOMB = new ElectricalChargeUnit("ElectricalChargeUnit.picocoulomb", "ElectricalChargeUnit.pC", SI_DERIVED,
92 COULOMB, 1.0E-12, true);
93 NANOCOULOMB = new ElectricalChargeUnit("ElectricalChargeUnit.nanocoulomb", "ElectricalChargeUnit.nC", SI_DERIVED,
94 COULOMB, 1.0E-9, true);
95 MICROCOULOMB = new ElectricalChargeUnit("ElectricalChargeUnit.microcoulomb", "ElectricalChargeUnit.muC", SI_DERIVED,
96 COULOMB, 1.0E-6, true);
97 MILLICOULOMB = new ElectricalChargeUnit("ElectricalChargeUnit.millicoulomb", "ElectricalChargeUnit.mC", SI_DERIVED,
98 COULOMB, 1.0E-3, true);
99 MILLIAMPERE_HOUR = new ElectricalChargeUnit(ElectricalCurrentUnit.MILLIAMPERE, DurationUnit.HOUR,
100 "ElectricalChargeUnit.milliampere_hour", "ElectricalChargeUnit.mAh", SI_DERIVED, true);
101 AMPERE_HOUR = new ElectricalChargeUnit(ElectricalCurrentUnit.AMPERE, DurationUnit.HOUR,
102 "ElectricalChargeUnit.ampere_hour", "ElectricalChargeUnit.Ah", SI_DERIVED, true);
103 KILOAMPERE_HOUR = new ElectricalChargeUnit(ElectricalCurrentUnit.KILOAMPERE, DurationUnit.HOUR,
104 "ElectricalChargeUnit.kiloampere_hour", "ElectricalChargeUnit.kAh", SI_DERIVED, true);
105 MEGAAMPERE_HOUR = new ElectricalChargeUnit(ElectricalCurrentUnit.MEGAAMPERE, DurationUnit.HOUR,
106 "ElectricalChargeUnit.megaampere_hour", "ElectricalChargeUnit.MAh", SI_DERIVED, true);
107 MILLIAMPERE_SECOND = new ElectricalChargeUnit(ElectricalCurrentUnit.MILLIAMPERE, DurationUnit.SECOND,
108 "ElectricalChargeUnit.milliampere_hour", "ElectricalChargeUnit.mAh", SI_DERIVED, true);
109 FARADAY = new ElectricalChargeUnit("ElectricalChargeUnit.faraday", "ElectricalChargeUnit.F", OTHER, COULOMB, 96485.3383,
110 true);
111 ATOMIC_UNIT = new ElectricalChargeUnit("ElectricalChargeUnit.atomic_unit_of_charge", "ElectricalChargeUnit.e",
112 SI_ACCEPTED, COULOMB, 1.6021765314E-19, true);
113 STATCOULOMB = new ElectricalChargeUnit("ElectricalChargeUnit.statcoulomb", "ElectricalChargeUnit.statC", CGS_ESU,
114 COULOMB, 3.335641E-10, true);
115 FRANKLIN = new ElectricalChargeUnit("ElectricalChargeUnit.franklin", "ElectricalChargeUnit.Fr", CGS_ESU, STATCOULOMB,
116 1.0, true);
117 ESU = new ElectricalChargeUnit("ElectricalChargeUnit.electrostatic_unit", "ElectricalChargeUnit.esu", CGS_ESU,
118 STATCOULOMB, 1.0, true);
119 ABCOULOMB = new ElectricalChargeUnit("ElectricalChargeUnit.abcoulomb", "ElectricalChargeUnit.abC", CGS_EMU, COULOMB,
120 10.0, true);
121 EMU = new ElectricalChargeUnit("ElectricalChargeUnit.electromagnetic_unit", "ElectricalChargeUnit.emu", CGS_EMU,
122 ABCOULOMB, 1.0, true);
123 }
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138 private ElectricalChargeUnit(final ElectricalCurrentUnit electricalCurrentUnit, final DurationUnit durationUnit,
139 final String nameOrNameKey, final String abbreviationOrAbbreviationKey, final UnitSystem unitSystem,
140 final boolean standardUnit)
141 {
142 super(nameOrNameKey, abbreviationOrAbbreviationKey, unitSystem, COULOMB,
143 electricalCurrentUnit.getScaleFactor() * durationUnit.getScaleFactor(), standardUnit);
144 this.electricalCurrentUnit = electricalCurrentUnit;
145 this.durationUnit = durationUnit;
146 }
147
148
149
150
151
152
153
154
155
156
157 public ElectricalChargeUnit(final ElectricalCurrentUnit electricalCurrentUnit, final DurationUnit durationUnit,
158 final String name, final String abbreviation, final UnitSystem unitSystem)
159 {
160 this(electricalCurrentUnit, durationUnit, name, abbreviation, unitSystem, false);
161 }
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176 private ElectricalChargeUnit(final String nameOrNameKey, final String abbreviationOrAbbreviationKey,
177 final UnitSystem unitSystem, final ElectricalChargeUnit referenceUnit, final double scaleFactorToReferenceUnit,
178 final boolean standardUnit)
179 {
180 super(nameOrNameKey, abbreviationOrAbbreviationKey, unitSystem, referenceUnit, scaleFactorToReferenceUnit,
181 standardUnit);
182 this.electricalCurrentUnit = referenceUnit.getElectricalCurrentUnit();
183 this.durationUnit = referenceUnit.getDurationUnit();
184 }
185
186
187
188
189
190
191
192
193
194
195 public ElectricalChargeUnit(final String name, final String abbreviation, final UnitSystem unitSystem,
196 final ElectricalChargeUnit referenceUnit, final double scaleFactorToReferenceUnit)
197 {
198 this(name, abbreviation, unitSystem, referenceUnit, scaleFactorToReferenceUnit, false);
199 }
200
201
202
203
204 public final ElectricalCurrentUnit getElectricalCurrentUnit()
205 {
206 return this.electricalCurrentUnit;
207 }
208
209
210
211
212 public final DurationUnit getDurationUnit()
213 {
214 return this.durationUnit;
215 }
216
217
218 @Override
219 public final ElectricalChargeUnit getStandardUnit()
220 {
221 return COULOMB;
222 }
223
224
225 @Override
226 public final String getSICoefficientsString()
227 {
228 return "sA";
229 }
230
231 }