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