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 private ElectricalChargeUnit(final ElectricalCurrentUnit electricalCurrentUnit, final DurationUnit durationUnit,
136 final String nameOrNameKey, final String abbreviationOrAbbreviationKey, final UnitSystem unitSystem,
137 final boolean standardUnit)
138 {
139 super(nameOrNameKey, abbreviationOrAbbreviationKey, unitSystem, COULOMB,
140 electricalCurrentUnit.getScaleFactor() * durationUnit.getScaleFactor(), standardUnit);
141 this.electricalCurrentUnit = electricalCurrentUnit;
142 this.durationUnit = durationUnit;
143 }
144
145
146
147
148
149
150
151
152
153 public ElectricalChargeUnit(final ElectricalCurrentUnit electricalCurrentUnit, final DurationUnit durationUnit,
154 final String name, final String abbreviation, final UnitSystem unitSystem)
155 {
156 this(electricalCurrentUnit, durationUnit, name, abbreviation, unitSystem, false);
157 }
158
159
160
161
162
163
164
165
166
167
168
169 private ElectricalChargeUnit(final String nameOrNameKey, final String abbreviationOrAbbreviationKey,
170 final UnitSystem unitSystem, final ElectricalChargeUnit referenceUnit, final double scaleFactorToReferenceUnit,
171 final boolean standardUnit)
172 {
173 super(nameOrNameKey, abbreviationOrAbbreviationKey, unitSystem, referenceUnit, scaleFactorToReferenceUnit,
174 standardUnit);
175 this.electricalCurrentUnit = referenceUnit.getElectricalCurrentUnit();
176 this.durationUnit = referenceUnit.getDurationUnit();
177 }
178
179
180
181
182
183
184
185
186
187 public ElectricalChargeUnit(final String name, final String abbreviation, final UnitSystem unitSystem,
188 final ElectricalChargeUnit referenceUnit, final double scaleFactorToReferenceUnit)
189 {
190 this(name, abbreviation, unitSystem, referenceUnit, scaleFactorToReferenceUnit, false);
191 }
192
193
194
195
196 public final ElectricalCurrentUnit getElectricalCurrentUnit()
197 {
198 return this.electricalCurrentUnit;
199 }
200
201
202
203
204 public final DurationUnit getDurationUnit()
205 {
206 return this.durationUnit;
207 }
208
209
210 @Override
211 public final ElectricalChargeUnit getStandardUnit()
212 {
213 return COULOMB;
214 }
215
216
217 @Override
218 public final String getSICoefficientsString()
219 {
220 return "sA";
221 }
222
223 }