1 package org.djunits.value.vfloat.scalar;
2
3 import java.util.regex.Matcher;
4
5 import org.djunits.unit.AbsoluteTemperatureUnit;
6 import org.djunits.unit.TemperatureUnit;
7 import org.djunits.unit.Unit;
8
9
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 FloatAbsoluteTemperature
36 extends AbstractFloatScalarAbs<AbsoluteTemperatureUnit, FloatAbsoluteTemperature, TemperatureUnit, FloatTemperature>
37 {
38
39 private static final long serialVersionUID = 20150901L;
40
41
42 public static final FloatAbsoluteTemperature ZERO = new FloatAbsoluteTemperature(0.0f, AbsoluteTemperatureUnit.BASE);
43
44
45
46
47
48
49 public FloatAbsoluteTemperature(final float value, final AbsoluteTemperatureUnit unit)
50 {
51 super(value, unit);
52 }
53
54
55
56
57
58
59 public FloatAbsoluteTemperature(final double value, final AbsoluteTemperatureUnit unit)
60 {
61 super((float) value, unit);
62 }
63
64
65
66
67
68 public FloatAbsoluteTemperature(final FloatAbsoluteTemperature value)
69 {
70 super(value);
71 }
72
73
74 @Override
75 public final FloatAbsoluteTemperature instantiateAbs(final float value, final AbsoluteTemperatureUnit unit)
76 {
77 return new FloatAbsoluteTemperature(value, unit);
78 }
79
80
81 @Override
82 public final FloatTemperature instantiateRel(final float value, final TemperatureUnit unit)
83 {
84 return new FloatTemperature(value, unit);
85 }
86
87
88
89
90
91
92 public static final FloatAbsoluteTemperature createSI(final float value)
93 {
94 return new FloatAbsoluteTemperature(value, AbsoluteTemperatureUnit.BASE);
95 }
96
97
98
99
100
101
102
103
104 public static FloatAbsoluteTemperature interpolate(final FloatAbsoluteTemperature zero, final FloatAbsoluteTemperature one,
105 final float ratio)
106 {
107 return new FloatAbsoluteTemperature(zero.getInUnit() * (1 - ratio) + one.getInUnit(zero.getUnit()) * ratio,
108 zero.getUnit());
109 }
110
111
112
113
114
115
116
117 public static FloatAbsoluteTemperature max(final FloatAbsoluteTemperature a1, final FloatAbsoluteTemperature a2)
118 {
119 return (a1.gt(a2)) ? a1 : a2;
120 }
121
122
123
124
125
126
127
128
129 public static FloatAbsoluteTemperature max(final FloatAbsoluteTemperature a1, final FloatAbsoluteTemperature a2,
130 final FloatAbsoluteTemperature... an)
131 {
132 FloatAbsoluteTemperature maxa = (a1.gt(a2)) ? a1 : a2;
133 for (FloatAbsoluteTemperature a : an)
134 {
135 if (a.gt(maxa))
136 {
137 maxa = a;
138 }
139 }
140 return maxa;
141 }
142
143
144
145
146
147
148
149 public static FloatAbsoluteTemperature min(final FloatAbsoluteTemperature a1, final FloatAbsoluteTemperature a2)
150 {
151 return (a1.lt(a2)) ? a1 : a2;
152 }
153
154
155
156
157
158
159
160
161 public static FloatAbsoluteTemperature min(final FloatAbsoluteTemperature a1, final FloatAbsoluteTemperature a2,
162 final FloatAbsoluteTemperature... an)
163 {
164 FloatAbsoluteTemperature mina = (a1.lt(a2)) ? a1 : a2;
165 for (FloatAbsoluteTemperature a : an)
166 {
167 if (a.lt(mina))
168 {
169 mina = a;
170 }
171 }
172 return mina;
173 }
174
175
176
177
178
179
180
181
182
183 public static FloatAbsoluteTemperature valueOf(final String text) throws IllegalArgumentException
184 {
185 if (text == null || text.length() == 0)
186 {
187 throw new IllegalArgumentException("Error parsing FloatAbsoluteTemperature -- null or empty argument");
188 }
189 Matcher matcher = NUMBER_PATTERN.matcher(text);
190 if (matcher.find())
191 {
192 int index = matcher.end();
193 try
194 {
195 String unitString = text.substring(index).trim();
196 String valueString = text.substring(0, index).trim();
197 for (AbsoluteTemperatureUnit unit : Unit.getUnits(AbsoluteTemperatureUnit.class))
198 {
199 if (unit.getDefaultLocaleTextualRepresentations().contains(unitString))
200 {
201 float f = Float.parseFloat(valueString);
202 return new FloatAbsoluteTemperature(f, unit);
203 }
204 }
205 }
206 catch (Exception exception)
207 {
208 throw new IllegalArgumentException("Error parsing FloatAbsoluteTemperature from " + text, exception);
209 }
210 }
211 throw new IllegalArgumentException("Error parsing FloatAbsoluteTemperature from " + text);
212 }
213
214 }