1 package org.djunits.value.vfloat.scalar;
2
3 import java.util.regex.Matcher;
4
5 import org.djunits.unit.DimensionlessUnit;
6 import org.djunits.unit.ElectricalChargeUnit;
7 import org.djunits.unit.ElectricalCurrentUnit;
8 import org.djunits.unit.ElectricalPotentialUnit;
9 import org.djunits.unit.PowerUnit;
10 import org.djunits.unit.Unit;
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 public class FloatElectricalCurrent extends AbstractFloatScalarRel<ElectricalCurrentUnit, FloatElectricalCurrent>
37 {
38
39 private static final long serialVersionUID = 20150901L;
40
41
42 public static final FloatElectricalCurrent ZERO = new FloatElectricalCurrent(0.0f, ElectricalCurrentUnit.SI);
43
44
45 @SuppressWarnings("checkstyle:constantname")
46 public static final FloatElectricalCurrent NaN = new FloatElectricalCurrent(Float.NaN, ElectricalCurrentUnit.SI);
47
48
49 public static final FloatElectricalCurrent POSITIVE_INFINITY =
50 new FloatElectricalCurrent(Float.POSITIVE_INFINITY, ElectricalCurrentUnit.SI);
51
52
53 public static final FloatElectricalCurrent NEGATIVE_INFINITY =
54 new FloatElectricalCurrent(Float.NEGATIVE_INFINITY, ElectricalCurrentUnit.SI);
55
56
57 public static final FloatElectricalCurrent POS_MAXVALUE =
58 new FloatElectricalCurrent(Float.MAX_VALUE, ElectricalCurrentUnit.SI);
59
60
61 public static final FloatElectricalCurrent NEG_MAXVALUE =
62 new FloatElectricalCurrent(-Float.MAX_VALUE, ElectricalCurrentUnit.SI);
63
64
65
66
67
68
69 public FloatElectricalCurrent(final float value, final ElectricalCurrentUnit unit)
70 {
71 super(value, unit);
72 }
73
74
75
76
77
78 public FloatElectricalCurrent(final FloatElectricalCurrent value)
79 {
80 super(value);
81 }
82
83
84
85
86
87
88 public FloatElectricalCurrent(final double value, final ElectricalCurrentUnit unit)
89 {
90 super((float) value, unit);
91 }
92
93
94 @Override
95 public final FloatElectricalCurrent instantiateRel(final float value, final ElectricalCurrentUnit unit)
96 {
97 return new FloatElectricalCurrent(value, unit);
98 }
99
100
101
102
103
104
105 public static final FloatElectricalCurrent createSI(final float value)
106 {
107 return new FloatElectricalCurrent(value, ElectricalCurrentUnit.SI);
108 }
109
110
111
112
113
114
115
116
117 public static FloatElectricalCurrent interpolate(final FloatElectricalCurrent zero, final FloatElectricalCurrent one,
118 final float ratio)
119 {
120 return new FloatElectricalCurrent(zero.getInUnit() * (1 - ratio) + one.getInUnit(zero.getUnit()) * ratio,
121 zero.getUnit());
122 }
123
124
125
126
127
128
129
130 public static FloatElectricalCurrent max(final FloatElectricalCurrent r1, final FloatElectricalCurrent r2)
131 {
132 return (r1.gt(r2)) ? r1 : r2;
133 }
134
135
136
137
138
139
140
141
142 public static FloatElectricalCurrent max(final FloatElectricalCurrent r1, final FloatElectricalCurrent r2,
143 final FloatElectricalCurrent... rn)
144 {
145 FloatElectricalCurrent maxr = (r1.gt(r2)) ? r1 : r2;
146 for (FloatElectricalCurrent r : rn)
147 {
148 if (r.gt(maxr))
149 {
150 maxr = r;
151 }
152 }
153 return maxr;
154 }
155
156
157
158
159
160
161
162 public static FloatElectricalCurrent min(final FloatElectricalCurrent r1, final FloatElectricalCurrent r2)
163 {
164 return (r1.lt(r2)) ? r1 : r2;
165 }
166
167
168
169
170
171
172
173
174 public static FloatElectricalCurrent min(final FloatElectricalCurrent r1, final FloatElectricalCurrent r2,
175 final FloatElectricalCurrent... rn)
176 {
177 FloatElectricalCurrent minr = (r1.lt(r2)) ? r1 : r2;
178 for (FloatElectricalCurrent r : rn)
179 {
180 if (r.lt(minr))
181 {
182 minr = r;
183 }
184 }
185 return minr;
186 }
187
188
189
190
191
192
193
194
195
196 public static FloatElectricalCurrent valueOf(final String text) throws IllegalArgumentException
197 {
198 if (text == null || text.length() == 0)
199 {
200 throw new IllegalArgumentException("Error parsing FloatElectricalCurrent -- null or empty argument");
201 }
202 Matcher matcher = NUMBER_PATTERN.matcher(text);
203 if (matcher.find())
204 {
205 int index = matcher.end();
206 try
207 {
208 String unitString = text.substring(index).trim();
209 String valueString = text.substring(0, index).trim();
210 for (ElectricalCurrentUnit unit : Unit.getUnits(ElectricalCurrentUnit.class))
211 {
212 if (unit.getDefaultLocaleTextualRepresentations().contains(unitString))
213 {
214 float f = Float.parseFloat(valueString);
215 return new FloatElectricalCurrent(f, unit);
216 }
217 }
218 }
219 catch (Exception exception)
220 {
221 throw new IllegalArgumentException("Error parsing FloatElectricalCurrent from " + text, exception);
222 }
223 }
224 throw new IllegalArgumentException("Error parsing FloatElectricalCurrent from " + text);
225 }
226
227
228
229
230
231
232
233 public final FloatDimensionless divideBy(final FloatElectricalCurrent v)
234 {
235 return new FloatDimensionless(this.si / v.si, DimensionlessUnit.SI);
236 }
237
238
239
240
241
242
243
244 public final FloatPower multiplyBy(final FloatElectricalPotential v)
245 {
246 return new FloatPower(this.si * v.si, PowerUnit.SI);
247 }
248
249
250
251
252
253
254
255 public final FloatElectricalCharge multiplyBy(final FloatDuration v)
256 {
257 return new FloatElectricalCharge(this.si * v.si, ElectricalChargeUnit.SI);
258 }
259
260
261
262
263
264
265
266 public final FloatElectricalPotential multiplyBy(final FloatElectricalResistance v)
267 {
268 return new FloatElectricalPotential(this.si * v.si, ElectricalPotentialUnit.SI);
269 }
270
271 }