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.SI_DERIVED;
6
7 import org.djunits.unit.unitsystem.UnitSystem;
8
9
10
11
12
13
14
15
16
17
18
19 public class ElectricalPotentialUnit extends LinearUnit<ElectricalPotentialUnit>
20 {
21
22 private static final long serialVersionUID = 20140607L;
23
24
25 private final MassUnit massUnit;
26
27
28 private final LengthUnit lengthUnit;
29
30
31 private final ElectricalCurrentUnit electricalCurrentUnit;
32
33
34 private final DurationUnit durationUnit;
35
36
37 public static final ElectricalPotentialUnit SI;
38
39
40 public static final ElectricalPotentialUnit VOLT;
41
42
43 public static final ElectricalPotentialUnit NANOVOLT;
44
45
46 public static final ElectricalPotentialUnit MICROVOLT;
47
48
49 public static final ElectricalPotentialUnit MILLIVOLT;
50
51
52 public static final ElectricalPotentialUnit KILOVOLT;
53
54
55 public static final ElectricalPotentialUnit MEGAVOLT;
56
57
58 public static final ElectricalPotentialUnit GIGAVOLT;
59
60
61 public static final ElectricalPotentialUnit STATVOLT;
62
63
64 public static final ElectricalPotentialUnit ABVOLT;
65
66 static
67 {
68 SI = new ElectricalPotentialUnit(MassUnit.KILOGRAM, LengthUnit.METER, ElectricalCurrentUnit.AMPERE, DurationUnit.SECOND,
69 "ElectricalPotentialUnit.volt", "ElectricalPotentialUnit.V", SI_DERIVED, true);
70 VOLT = SI;
71 NANOVOLT = new ElectricalPotentialUnit("ElectricalPotentialUnit.nanovolt", "ElectricalPotentialUnit.nV", SI_DERIVED,
72 VOLT, 1.0E-9, true);
73 MICROVOLT = new ElectricalPotentialUnit("ElectricalPotentialUnit.microvolt", "ElectricalPotentialUnit.muV", SI_DERIVED,
74 VOLT, 1.0E-6, true);
75 MILLIVOLT = new ElectricalPotentialUnit("ElectricalPotentialUnit.millivolt", "ElectricalPotentialUnit.mV", SI_DERIVED,
76 VOLT, 0.001, true);
77 KILOVOLT = new ElectricalPotentialUnit("ElectricalPotentialUnit.kilovolt", "ElectricalPotentialUnit.kV", SI_DERIVED,
78 VOLT, 1000.0, true);
79 MEGAVOLT = new ElectricalPotentialUnit("ElectricalPotentialUnit.megavolt", "ElectricalPotentialUnit.MV", SI_DERIVED,
80 VOLT, 1.0E6, true);
81 GIGAVOLT = new ElectricalPotentialUnit("ElectricalPotentialUnit.gigavolt", "ElectricalPotentialUnit.GV", SI_DERIVED,
82 VOLT, 1.0E9, true);
83 STATVOLT = new ElectricalPotentialUnit("ElectricalPotentialUnit.statvolt", "ElectricalPotentialUnit.statV", CGS_ESU,
84 VOLT, 299.792458, true);
85 ABVOLT = new ElectricalPotentialUnit("ElectricalPotentialUnit.abvolt", "ElectricalPotentialUnit.abV", CGS_EMU, VOLT,
86 1.0E-8, true);
87 }
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102 @SuppressWarnings("checkstyle:parameternumber")
103 private ElectricalPotentialUnit(final MassUnit massUnit, final LengthUnit lengthUnit,
104 final ElectricalCurrentUnit electricalCurrentUnit, final DurationUnit durationUnit, final String nameOrNameKey,
105 final String abbreviationOrAbbreviationKey, final UnitSystem unitSystem, final boolean standardUnit)
106 {
107 super(nameOrNameKey, abbreviationOrAbbreviationKey, unitSystem, VOLT,
108 massUnit.getScaleFactor() * lengthUnit.getScaleFactor() * lengthUnit.getScaleFactor()
109 / (electricalCurrentUnit.getScaleFactor() * Math.pow(durationUnit.getScaleFactor(), 3.0)),
110 standardUnit);
111 this.massUnit = massUnit;
112 this.lengthUnit = lengthUnit;
113 this.electricalCurrentUnit = electricalCurrentUnit;
114 this.durationUnit = durationUnit;
115 }
116
117
118
119
120
121
122
123
124
125
126
127
128 public ElectricalPotentialUnit(final MassUnit massUnit, final LengthUnit lengthUnit,
129 final ElectricalCurrentUnit electricalCurrentUnit, final DurationUnit durationUnit, final String name,
130 final String abbreviation, final UnitSystem unitSystem)
131 {
132 this(massUnit, lengthUnit, electricalCurrentUnit, durationUnit, name, abbreviation, unitSystem, false);
133 }
134
135
136
137
138
139
140
141
142
143
144
145
146 private ElectricalPotentialUnit(final PowerUnit powerUnit, final ElectricalCurrentUnit electricalCurrentUnit,
147 final String nameOrNameKey, final String abbreviationOrAbbreviationKey, final UnitSystem unitSystem,
148 final boolean standardUnit)
149 {
150 super(nameOrNameKey, abbreviationOrAbbreviationKey, unitSystem, VOLT,
151 powerUnit.getScaleFactor() / electricalCurrentUnit.getScaleFactor(), standardUnit);
152 this.massUnit = powerUnit.getMassUnit();
153 this.lengthUnit = powerUnit.getLengthUnit();
154 this.electricalCurrentUnit = electricalCurrentUnit;
155 this.durationUnit = powerUnit.getDurationUnit();
156 }
157
158
159
160
161
162
163
164
165
166
167 public ElectricalPotentialUnit(final PowerUnit powerUnit, final ElectricalCurrentUnit electricalCurrentUnit,
168 final String name, final String abbreviation, final UnitSystem unitSystem)
169 {
170 this(powerUnit, electricalCurrentUnit, name, abbreviation, unitSystem, false);
171 }
172
173
174
175
176
177
178
179
180
181
182
183 private ElectricalPotentialUnit(final String nameOrNameKey, final String abbreviationOrAbbreviationKey,
184 final UnitSystem unitSystem, final ElectricalPotentialUnit referenceUnit, final double scaleFactorToReferenceUnit,
185 final boolean standardUnit)
186 {
187 super(nameOrNameKey, abbreviationOrAbbreviationKey, unitSystem, referenceUnit, scaleFactorToReferenceUnit,
188 standardUnit);
189 this.massUnit = referenceUnit.getMassUnit();
190 this.lengthUnit = referenceUnit.getLengthUnit();
191 this.electricalCurrentUnit = referenceUnit.getElectricalCurrentUnit();
192 this.durationUnit = referenceUnit.getDurationUnit();
193 }
194
195
196
197
198
199
200
201
202
203 public ElectricalPotentialUnit(final String name, final String abbreviation, final UnitSystem unitSystem,
204 final ElectricalPotentialUnit referenceUnit, final double scaleFactorToReferenceUnit)
205 {
206 this(name, abbreviation, unitSystem, referenceUnit, scaleFactorToReferenceUnit, false);
207 }
208
209
210
211
212 public final MassUnit getMassUnit()
213 {
214 return this.massUnit;
215 }
216
217
218
219
220 public final LengthUnit getLengthUnit()
221 {
222 return this.lengthUnit;
223 }
224
225
226
227
228 public final ElectricalCurrentUnit getElectricalCurrentUnit()
229 {
230 return this.electricalCurrentUnit;
231 }
232
233
234
235
236 public final DurationUnit getDurationUnit()
237 {
238 return this.durationUnit;
239 }
240
241
242 @Override
243 public final ElectricalPotentialUnit getStandardUnit()
244 {
245 return VOLT;
246 }
247
248
249 @Override
250 public final String getSICoefficientsString()
251 {
252 return "kgm2/s3A";
253 }
254
255 }