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