1 package org.djunits.demo.website;
2
3 import java.util.regex.Matcher;
4
5 import org.djunits.Throw;
6 import org.djunits.unit.AccelerationUnit;
7 import org.djunits.unit.DimensionlessUnit;
8 import org.djunits.unit.FrequencyUnit;
9 import org.djunits.value.util.ValueUtil;
10 import org.djunits.value.vdouble.scalar.Acceleration;
11 import org.djunits.value.vdouble.scalar.Dimensionless;
12 import org.djunits.value.vdouble.scalar.Duration;
13 import org.djunits.value.vdouble.scalar.Frequency;
14 import org.djunits.value.vdouble.scalar.base.AbstractDoubleScalarRel;
15
16
17
18
19
20
21
22
23
24
25 public class Jerk extends AbstractDoubleScalarRel<JerkUnit, Jerk>
26 {
27
28 private static final long serialVersionUID = 1L;
29
30
31
32
33
34
35 public Jerk(final double value, final JerkUnit unit)
36 {
37 super(value, unit);
38 }
39
40
41
42
43
44 public Jerkbsite/Jerk.html#Jerk">Jerk(final Jerk value)
45 {
46 super(value);
47 }
48
49
50 @Override
51 public final Jerk instantiateRel(final double value, final JerkUnit unit)
52 {
53 return new Jerk(value, unit);
54 }
55
56
57
58
59
60
61 public static final Jerk instantiateSI(final double value)
62 {
63 return new Jerk(value, JerkUnit.SI);
64 }
65
66
67
68
69
70
71
72
73 public static JerkJerk.html#Jerk">Jerktml#Jerk">Jerk interpolate(final JerkJerk.html#Jerk">Jerk zero, final Jerk one, final double ratio)
74 {
75 return new Jerk(zero.getInUnit() * (1 - ratio) + one.getInUnit(zero.getDisplayUnit()) * ratio, zero.getDisplayUnit());
76 }
77
78
79
80
81
82
83
84 public static Jerke/Jerk.html#Jerk">Jerke/Jerk.html#Jerk">Jerk max(final Jerke/Jerk.html#Jerk">Jerk r1, final Jerk r2)
85 {
86 return (r1.gt(r2)) ? r1 : r2;
87 }
88
89
90
91
92
93
94
95
96 public static Jerke/Jerk.html#Jerk">Jerke/Jerk.html#Jerk">Jerk max(final Jerke/Jerk.html#Jerk">Jerk r1, final Jerk r2, final Jerk... rn)
97 {
98 Jerk maxr = (r1.gt(r2)) ? r1 : r2;
99 for (Jerk r : rn)
100 {
101 if (r.gt(maxr))
102 {
103 maxr = r;
104 }
105 }
106 return maxr;
107 }
108
109
110
111
112
113
114
115 public static Jerke/Jerk.html#Jerk">Jerke/Jerk.html#Jerk">Jerk min(final Jerke/Jerk.html#Jerk">Jerk r1, final Jerk r2)
116 {
117 return r1.lt(r2) ? r1 : r2;
118 }
119
120
121
122
123
124
125
126
127 public static Jerke/Jerk.html#Jerk">Jerke/Jerk.html#Jerk">Jerk min(final Jerke/Jerk.html#Jerk">Jerk r1, final Jerk r2, final Jerk... rn)
128 {
129 Jerk minr = r1.lt(r2) ? r1 : r2;
130 for (Jerk r : rn)
131 {
132 if (r.lt(minr))
133 {
134 minr = r;
135 }
136 }
137 return minr;
138 }
139
140
141
142
143
144
145
146
147
148
149 public static Jerk valueOf(final String text)
150 {
151 Throw.whenNull(text, "Error parsing Jerk: text to parse is null");
152 Throw.when(text.length() == 0, IllegalArgumentException.class, "Error parsing Jerk: empty text to parse");
153 Matcher matcher = ValueUtil.NUMBER_PATTERN.matcher(text);
154 if (matcher.find())
155 {
156 int index = matcher.end();
157 String unitString = text.substring(index).trim();
158 String valueString = text.substring(0, index).trim();
159 JerkUnit unit = JerkUnit.BASE.getUnitByAbbreviation(unitString);
160 if (unit != null)
161 {
162 double d = Double.parseDouble(valueString);
163 return new Jerk(d, unit);
164 }
165 }
166 throw new IllegalArgumentException("Error parsing Jerk from " + text);
167 }
168
169
170
171
172
173
174
175
176
177 public static Jerk of(final double value, final String unitString)
178 {
179 Throw.whenNull(unitString, "Error parsing Jerk: unitString is null");
180 Throw.when(unitString.length() == 0, IllegalArgumentException.class, "Error parsing Jerk: empty unitString");
181 JerkUnit unit = JerkUnit.BASE.getUnitByAbbreviation(unitString);
182 if (unit != null)
183 {
184 return new Jerk(value, unit);
185 }
186 throw new IllegalArgumentException("Error parsing Jerk with unit " + unitString);
187 }
188
189
190
191
192
193
194
195 public final Dimensionless divide(final Jerk v)
196 {
197 return new Dimensionless(this.si / v.si, DimensionlessUnit.SI);
198 }
199
200
201
202
203
204
205
206 public final Acceleration times(final Duration v)
207 {
208 return new Acceleration(this.si * v.si, AccelerationUnit.SI);
209 }
210
211
212
213
214
215
216
217 public final Frequency times(final Acceleration v)
218 {
219 return new Frequency(this.si * v.si, FrequencyUnit.SI);
220 }
221
222 }