1 package org.djunits.value.vdouble.scalar;
2
3 import java.util.Locale;
4
5 import org.djunits.unit.AbsorbedDoseUnit;
6 import org.djunits.unit.AccelerationUnit;
7 import org.djunits.unit.AmountOfSubstanceUnit;
8 import org.djunits.unit.AngleUnit;
9 import org.djunits.unit.AngularAccelerationUnit;
10 import org.djunits.unit.AngularVelocityUnit;
11 import org.djunits.unit.AreaUnit;
12 import org.djunits.unit.CatalyticActivityUnit;
13 import org.djunits.unit.DensityUnit;
14 import org.djunits.unit.DimensionlessUnit;
15 import org.djunits.unit.DurationUnit;
16 import org.djunits.unit.ElectricalCapacitanceUnit;
17 import org.djunits.unit.ElectricalChargeUnit;
18 import org.djunits.unit.ElectricalConductanceUnit;
19 import org.djunits.unit.ElectricalCurrentUnit;
20 import org.djunits.unit.ElectricalInductanceUnit;
21 import org.djunits.unit.ElectricalPotentialUnit;
22 import org.djunits.unit.ElectricalResistanceUnit;
23 import org.djunits.unit.EnergyUnit;
24 import org.djunits.unit.EquivalentDoseUnit;
25 import org.djunits.unit.FlowMassUnit;
26 import org.djunits.unit.FlowVolumeUnit;
27 import org.djunits.unit.ForceUnit;
28 import org.djunits.unit.FrequencyUnit;
29 import org.djunits.unit.IlluminanceUnit;
30 import org.djunits.unit.LengthUnit;
31 import org.djunits.unit.LinearDensityUnit;
32 import org.djunits.unit.LuminousFluxUnit;
33 import org.djunits.unit.LuminousIntensityUnit;
34 import org.djunits.unit.MagneticFluxDensityUnit;
35 import org.djunits.unit.MagneticFluxUnit;
36 import org.djunits.unit.MassUnit;
37 import org.djunits.unit.MomentumUnit;
38 import org.djunits.unit.PowerUnit;
39 import org.djunits.unit.PressureUnit;
40 import org.djunits.unit.RadioActivityUnit;
41 import org.djunits.unit.SIUnit;
42 import org.djunits.unit.SolidAngleUnit;
43 import org.djunits.unit.SpeedUnit;
44 import org.djunits.unit.TemperatureUnit;
45 import org.djunits.unit.TorqueUnit;
46 import org.djunits.unit.Unit;
47 import org.djunits.unit.VolumeUnit;
48 import org.djunits.unit.si.SIDimensions;
49 import org.djunits.unit.util.UnitRuntimeException;
50 import org.djunits.value.vdouble.scalar.base.DoubleScalar;
51 import org.djunits.value.vdouble.scalar.base.DoubleScalarRel;
52 import org.djutils.base.NumberParser;
53 import org.djutils.exceptions.Throw;
54
55 import jakarta.annotation.Generated;
56
57
58
59
60
61
62
63
64
65
66
67 @Generated(value = "org.djunits.generator.GenerateDJUNIT", date = "2023-07-23T14:06:38.224104100Z")
68 public class SIScalar extends DoubleScalarRel<SIUnit, SIScalar>
69 {
70
71 private static final long serialVersionUID = 20150901L;
72
73
74
75
76
77
78 public SIScalar(final double value, final SIUnit unit)
79 {
80 super(value, unit);
81 }
82
83
84
85
86
87 public SIScalar(final SIScalar value)
88 {
89 super(value);
90 }
91
92
93 @Override
94 public final SIScalar instantiateRel(final double value, final SIUnit unit)
95 {
96 return new SIScalar(value, unit);
97 }
98
99
100
101
102
103
104
105 public static final SIScalar instantiateSI(final double value, final SIUnit unit)
106 {
107 return new SIScalar(value, unit);
108 }
109
110
111
112
113
114
115
116
117 public static SIScalar interpolate(final SIScalar zero, final SIScalar one, final double ratio)
118 {
119 return new SIScalar(zero.getInUnit() * (1 - ratio) + one.getInUnit(zero.getDisplayUnit()) * ratio,
120 zero.getDisplayUnit());
121 }
122
123
124
125
126
127
128
129 public static SIScalar max(final SIScalar r1, final SIScalar r2)
130 {
131 return r1.gt(r2) ? r1 : r2;
132 }
133
134
135
136
137
138
139
140
141 public static SIScalar max(final SIScalar r1, final SIScalar r2, final SIScalar... rn)
142 {
143 SIScalar maxr = r1.gt(r2) ? r1 : r2;
144 for (SIScalar r : rn)
145 {
146 if (r.gt(maxr))
147 {
148 maxr = r;
149 }
150 }
151 return maxr;
152 }
153
154
155
156
157
158
159
160 public static SIScalar min(final SIScalar r1, final SIScalar r2)
161 {
162 return r1.lt(r2) ? r1 : r2;
163 }
164
165
166
167
168
169
170
171
172 public static SIScalar min(final SIScalar r1, final SIScalar r2, final SIScalar... rn)
173 {
174 SIScalar minr = r1.lt(r2) ? r1 : r2;
175 for (SIScalar r : rn)
176 {
177 if (r.lt(minr))
178 {
179 minr = r;
180 }
181 }
182 return minr;
183 }
184
185
186 @Override
187 public SIScalar reciprocal()
188 {
189 return DoubleScalar.divide(Dimensionless.ONE, this);
190 }
191
192
193
194
195
196
197
198
199
200
201 public static SIScalar valueOf(final String text)
202 {
203 Throw.whenNull(text, "Error parsing SIScalar: unitString is null");
204 Throw.when(text.length() == 0, IllegalArgumentException.class, "Error parsing SIScalar: empty string to parse");
205 try
206 {
207 NumberParser numberParser = new NumberParser().lenient().trailing();
208 double d = numberParser.parseDouble(text);
209 String unitString = text.substring(numberParser.getTrailingPosition()).trim();
210 SIUnit unit = Unit.lookupOrCreateUnitWithSIDimensions(SIDimensions.of(unitString));
211 if (unit == null)
212 throw new IllegalArgumentException("Unit " + unitString + " for SIScalar not found");
213 return new SIScalar(d, unit);
214 }
215 catch (Exception exception)
216 {
217 throw new IllegalArgumentException(
218 "Error parsing SIScalar from " + text + " using Locale " + Locale.getDefault(Locale.Category.FORMAT),
219 exception);
220 }
221 }
222
223
224
225
226
227
228
229
230
231 public static SIScalar of(final double value, final String unitString)
232 {
233 Throw.whenNull(unitString, "Error parsing SIScalar: unitString is null");
234 try
235 {
236 SIUnit unit = Unit.lookupOrCreateUnitWithSIDimensions(SIDimensions.of(unitString));
237 if (unit != null)
238 {
239 return new SIScalar(value, unit);
240 }
241 }
242 catch (Exception exception)
243 {
244 throw new IllegalArgumentException("Error parsing SIUnit from " + unitString, exception);
245 }
246 throw new IllegalArgumentException("Error parsing SIScalar with unit " + unitString);
247 }
248
249
250 @Override
251 public String toString(final SIUnit displayUnit, final boolean verbose, final boolean withUnit)
252 {
253 return super.toString(displayUnit, verbose, withUnit).replaceAll("!", "");
254 }
255
256
257
258
259
260
261
262
263
264
265
266
267
268 public final <U extends Unit<U>, S extends DoubleScalarRel<U, S>> S as(final U displayUnit)
269 {
270 Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(displayUnit.getQuantity().getSiDimensions())),
271 UnitRuntimeException.class, "SIScalar with unit %s cannot be converted to a scalar with unit %s",
272 getDisplayUnit(), displayUnit);
273 S result = DoubleScalar.instantiate(this.si, displayUnit.getStandardUnit());
274 result.setDisplayUnit(displayUnit);
275 return result;
276 }
277
278
279
280
281
282 public final AbsorbedDose asAbsorbedDose()
283 {
284 Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(AbsorbedDoseUnit.BASE.getSiDimensions())),
285 UnitRuntimeException.class, "cannot cast %s to AbsorbedDose", this.toString());
286 return new AbsorbedDose(getSI(), AbsorbedDoseUnit.SI);
287 }
288
289
290
291
292
293
294 public final AbsorbedDose asAbsorbedDose(final AbsorbedDoseUnit displayUnit)
295 {
296 Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(AbsorbedDoseUnit.BASE.getSiDimensions())),
297 UnitRuntimeException.class, "cannot cast %s to AbsorbedDose", this.toString());
298 AbsorbedDose result = new AbsorbedDose(getSI(), displayUnit.getStandardUnit());
299 result.setDisplayUnit(displayUnit);
300 return result;
301 }
302
303
304
305
306
307 public final Acceleration asAcceleration()
308 {
309 Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(AccelerationUnit.BASE.getSiDimensions())),
310 UnitRuntimeException.class, "cannot cast %s to Acceleration", this.toString());
311 return new Acceleration(getSI(), AccelerationUnit.SI);
312 }
313
314
315
316
317
318
319 public final Acceleration asAcceleration(final AccelerationUnit displayUnit)
320 {
321 Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(AccelerationUnit.BASE.getSiDimensions())),
322 UnitRuntimeException.class, "cannot cast %s to Acceleration", this.toString());
323 Acceleration result = new Acceleration(getSI(), displayUnit.getStandardUnit());
324 result.setDisplayUnit(displayUnit);
325 return result;
326 }
327
328
329
330
331
332 public final AmountOfSubstance asAmountOfSubstance()
333 {
334 Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(AmountOfSubstanceUnit.BASE.getSiDimensions())),
335 UnitRuntimeException.class, "cannot cast %s to AmountOfSubstance", this.toString());
336 return new AmountOfSubstance(getSI(), AmountOfSubstanceUnit.SI);
337 }
338
339
340
341
342
343
344 public final AmountOfSubstance asAmountOfSubstance(final AmountOfSubstanceUnit displayUnit)
345 {
346 Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(AmountOfSubstanceUnit.BASE.getSiDimensions())),
347 UnitRuntimeException.class, "cannot cast %s to AmountOfSubstance", this.toString());
348 AmountOfSubstance result = new AmountOfSubstance(getSI(), displayUnit.getStandardUnit());
349 result.setDisplayUnit(displayUnit);
350 return result;
351 }
352
353
354
355
356
357 public final AngularAcceleration asAngularAcceleration()
358 {
359 Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(AngularAccelerationUnit.BASE.getSiDimensions())),
360 UnitRuntimeException.class, "cannot cast %s to AngularAcceleration", this.toString());
361 return new AngularAcceleration(getSI(), AngularAccelerationUnit.SI);
362 }
363
364
365
366
367
368
369 public final AngularAcceleration asAngularAcceleration(final AngularAccelerationUnit displayUnit)
370 {
371 Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(AngularAccelerationUnit.BASE.getSiDimensions())),
372 UnitRuntimeException.class, "cannot cast %s to AngularAcceleration", this.toString());
373 AngularAcceleration result = new AngularAcceleration(getSI(), displayUnit.getStandardUnit());
374 result.setDisplayUnit(displayUnit);
375 return result;
376 }
377
378
379
380
381
382 public final AngularVelocity asAngularVelocity()
383 {
384 Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(AngularVelocityUnit.BASE.getSiDimensions())),
385 UnitRuntimeException.class, "cannot cast %s to AngularVelocity", this.toString());
386 return new AngularVelocity(getSI(), AngularVelocityUnit.SI);
387 }
388
389
390
391
392
393
394 public final AngularVelocity asAngularVelocity(final AngularVelocityUnit displayUnit)
395 {
396 Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(AngularVelocityUnit.BASE.getSiDimensions())),
397 UnitRuntimeException.class, "cannot cast %s to AngularVelocity", this.toString());
398 AngularVelocity result = new AngularVelocity(getSI(), displayUnit.getStandardUnit());
399 result.setDisplayUnit(displayUnit);
400 return result;
401 }
402
403
404
405
406
407 public final Area asArea()
408 {
409 Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(AreaUnit.BASE.getSiDimensions())),
410 UnitRuntimeException.class, "cannot cast %s to Area", this.toString());
411 return new Area(getSI(), AreaUnit.SI);
412 }
413
414
415
416
417
418
419 public final Area asArea(final AreaUnit displayUnit)
420 {
421 Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(AreaUnit.BASE.getSiDimensions())),
422 UnitRuntimeException.class, "cannot cast %s to Area", this.toString());
423 Area result = new Area(getSI(), displayUnit.getStandardUnit());
424 result.setDisplayUnit(displayUnit);
425 return result;
426 }
427
428
429
430
431
432 public final CatalyticActivity asCatalyticActivity()
433 {
434 Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(CatalyticActivityUnit.BASE.getSiDimensions())),
435 UnitRuntimeException.class, "cannot cast %s to CatalyticActivity", this.toString());
436 return new CatalyticActivity(getSI(), CatalyticActivityUnit.SI);
437 }
438
439
440
441
442
443
444 public final CatalyticActivity asCatalyticActivity(final CatalyticActivityUnit displayUnit)
445 {
446 Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(CatalyticActivityUnit.BASE.getSiDimensions())),
447 UnitRuntimeException.class, "cannot cast %s to CatalyticActivity", this.toString());
448 CatalyticActivity result = new CatalyticActivity(getSI(), displayUnit.getStandardUnit());
449 result.setDisplayUnit(displayUnit);
450 return result;
451 }
452
453
454
455
456
457 public final Density asDensity()
458 {
459 Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(DensityUnit.BASE.getSiDimensions())),
460 UnitRuntimeException.class, "cannot cast %s to Density", this.toString());
461 return new Density(getSI(), DensityUnit.SI);
462 }
463
464
465
466
467
468
469 public final Density asDensity(final DensityUnit displayUnit)
470 {
471 Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(DensityUnit.BASE.getSiDimensions())),
472 UnitRuntimeException.class, "cannot cast %s to Density", this.toString());
473 Density result = new Density(getSI(), displayUnit.getStandardUnit());
474 result.setDisplayUnit(displayUnit);
475 return result;
476 }
477
478
479
480
481
482 public final Dimensionless asDimensionless()
483 {
484 Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(DimensionlessUnit.BASE.getSiDimensions())),
485 UnitRuntimeException.class, "cannot cast %s to Dimensionless", this.toString());
486 return new Dimensionless(getSI(), DimensionlessUnit.SI);
487 }
488
489
490
491
492
493
494 public final Dimensionless asDimensionless(final DimensionlessUnit displayUnit)
495 {
496 Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(DimensionlessUnit.BASE.getSiDimensions())),
497 UnitRuntimeException.class, "cannot cast %s to Dimensionless", this.toString());
498 Dimensionless result = new Dimensionless(getSI(), displayUnit.getStandardUnit());
499 result.setDisplayUnit(displayUnit);
500 return result;
501 }
502
503
504
505
506
507 public final ElectricalCapacitance asElectricalCapacitance()
508 {
509 Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(ElectricalCapacitanceUnit.BASE.getSiDimensions())),
510 UnitRuntimeException.class, "cannot cast %s to ElectricalCapacitance", this.toString());
511 return new ElectricalCapacitance(getSI(), ElectricalCapacitanceUnit.SI);
512 }
513
514
515
516
517
518
519 public final ElectricalCapacitance asElectricalCapacitance(final ElectricalCapacitanceUnit displayUnit)
520 {
521 Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(ElectricalCapacitanceUnit.BASE.getSiDimensions())),
522 UnitRuntimeException.class, "cannot cast %s to ElectricalCapacitance", this.toString());
523 ElectricalCapacitance result = new ElectricalCapacitance(getSI(), displayUnit.getStandardUnit());
524 result.setDisplayUnit(displayUnit);
525 return result;
526 }
527
528
529
530
531
532 public final ElectricalCharge asElectricalCharge()
533 {
534 Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(ElectricalChargeUnit.BASE.getSiDimensions())),
535 UnitRuntimeException.class, "cannot cast %s to ElectricalCharge", this.toString());
536 return new ElectricalCharge(getSI(), ElectricalChargeUnit.SI);
537 }
538
539
540
541
542
543
544 public final ElectricalCharge asElectricalCharge(final ElectricalChargeUnit displayUnit)
545 {
546 Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(ElectricalChargeUnit.BASE.getSiDimensions())),
547 UnitRuntimeException.class, "cannot cast %s to ElectricalCharge", this.toString());
548 ElectricalCharge result = new ElectricalCharge(getSI(), displayUnit.getStandardUnit());
549 result.setDisplayUnit(displayUnit);
550 return result;
551 }
552
553
554
555
556
557 public final ElectricalConductance asElectricalConductance()
558 {
559 Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(ElectricalConductanceUnit.BASE.getSiDimensions())),
560 UnitRuntimeException.class, "cannot cast %s to ElectricalConductance", this.toString());
561 return new ElectricalConductance(getSI(), ElectricalConductanceUnit.SI);
562 }
563
564
565
566
567
568
569 public final ElectricalConductance asElectricalConductance(final ElectricalConductanceUnit displayUnit)
570 {
571 Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(ElectricalConductanceUnit.BASE.getSiDimensions())),
572 UnitRuntimeException.class, "cannot cast %s to ElectricalConductance", this.toString());
573 ElectricalConductance result = new ElectricalConductance(getSI(), displayUnit.getStandardUnit());
574 result.setDisplayUnit(displayUnit);
575 return result;
576 }
577
578
579
580
581
582 public final ElectricalCurrent asElectricalCurrent()
583 {
584 Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(ElectricalCurrentUnit.BASE.getSiDimensions())),
585 UnitRuntimeException.class, "cannot cast %s to ElectricalCurrent", this.toString());
586 return new ElectricalCurrent(getSI(), ElectricalCurrentUnit.SI);
587 }
588
589
590
591
592
593
594 public final ElectricalCurrent asElectricalCurrent(final ElectricalCurrentUnit displayUnit)
595 {
596 Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(ElectricalCurrentUnit.BASE.getSiDimensions())),
597 UnitRuntimeException.class, "cannot cast %s to ElectricalCurrent", this.toString());
598 ElectricalCurrent result = new ElectricalCurrent(getSI(), displayUnit.getStandardUnit());
599 result.setDisplayUnit(displayUnit);
600 return result;
601 }
602
603
604
605
606
607 public final ElectricalInductance asElectricalInductance()
608 {
609 Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(ElectricalInductanceUnit.BASE.getSiDimensions())),
610 UnitRuntimeException.class, "cannot cast %s to ElectricalInductance", this.toString());
611 return new ElectricalInductance(getSI(), ElectricalInductanceUnit.SI);
612 }
613
614
615
616
617
618
619 public final ElectricalInductance asElectricalInductance(final ElectricalInductanceUnit displayUnit)
620 {
621 Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(ElectricalInductanceUnit.BASE.getSiDimensions())),
622 UnitRuntimeException.class, "cannot cast %s to ElectricalInductance", this.toString());
623 ElectricalInductance result = new ElectricalInductance(getSI(), displayUnit.getStandardUnit());
624 result.setDisplayUnit(displayUnit);
625 return result;
626 }
627
628
629
630
631
632 public final ElectricalPotential asElectricalPotential()
633 {
634 Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(ElectricalPotentialUnit.BASE.getSiDimensions())),
635 UnitRuntimeException.class, "cannot cast %s to ElectricalPotential", this.toString());
636 return new ElectricalPotential(getSI(), ElectricalPotentialUnit.SI);
637 }
638
639
640
641
642
643
644 public final ElectricalPotential asElectricalPotential(final ElectricalPotentialUnit displayUnit)
645 {
646 Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(ElectricalPotentialUnit.BASE.getSiDimensions())),
647 UnitRuntimeException.class, "cannot cast %s to ElectricalPotential", this.toString());
648 ElectricalPotential result = new ElectricalPotential(getSI(), displayUnit.getStandardUnit());
649 result.setDisplayUnit(displayUnit);
650 return result;
651 }
652
653
654
655
656
657 public final ElectricalResistance asElectricalResistance()
658 {
659 Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(ElectricalResistanceUnit.BASE.getSiDimensions())),
660 UnitRuntimeException.class, "cannot cast %s to ElectricalResistance", this.toString());
661 return new ElectricalResistance(getSI(), ElectricalResistanceUnit.SI);
662 }
663
664
665
666
667
668
669 public final ElectricalResistance asElectricalResistance(final ElectricalResistanceUnit displayUnit)
670 {
671 Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(ElectricalResistanceUnit.BASE.getSiDimensions())),
672 UnitRuntimeException.class, "cannot cast %s to ElectricalResistance", this.toString());
673 ElectricalResistance result = new ElectricalResistance(getSI(), displayUnit.getStandardUnit());
674 result.setDisplayUnit(displayUnit);
675 return result;
676 }
677
678
679
680
681
682 public final Energy asEnergy()
683 {
684 Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(EnergyUnit.BASE.getSiDimensions())),
685 UnitRuntimeException.class, "cannot cast %s to Energy", this.toString());
686 return new Energy(getSI(), EnergyUnit.SI);
687 }
688
689
690
691
692
693
694 public final Energy asEnergy(final EnergyUnit displayUnit)
695 {
696 Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(EnergyUnit.BASE.getSiDimensions())),
697 UnitRuntimeException.class, "cannot cast %s to Energy", this.toString());
698 Energy result = new Energy(getSI(), displayUnit.getStandardUnit());
699 result.setDisplayUnit(displayUnit);
700 return result;
701 }
702
703
704
705
706
707 public final EquivalentDose asEquivalentDose()
708 {
709 Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(EquivalentDoseUnit.BASE.getSiDimensions())),
710 UnitRuntimeException.class, "cannot cast %s to EquivalentDose", this.toString());
711 return new EquivalentDose(getSI(), EquivalentDoseUnit.SI);
712 }
713
714
715
716
717
718
719 public final EquivalentDose asEquivalentDose(final EquivalentDoseUnit displayUnit)
720 {
721 Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(EquivalentDoseUnit.BASE.getSiDimensions())),
722 UnitRuntimeException.class, "cannot cast %s to EquivalentDose", this.toString());
723 EquivalentDose result = new EquivalentDose(getSI(), displayUnit.getStandardUnit());
724 result.setDisplayUnit(displayUnit);
725 return result;
726 }
727
728
729
730
731
732 public final FlowMass asFlowMass()
733 {
734 Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(FlowMassUnit.BASE.getSiDimensions())),
735 UnitRuntimeException.class, "cannot cast %s to FlowMass", this.toString());
736 return new FlowMass(getSI(), FlowMassUnit.SI);
737 }
738
739
740
741
742
743
744 public final FlowMass asFlowMass(final FlowMassUnit displayUnit)
745 {
746 Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(FlowMassUnit.BASE.getSiDimensions())),
747 UnitRuntimeException.class, "cannot cast %s to FlowMass", this.toString());
748 FlowMass result = new FlowMass(getSI(), displayUnit.getStandardUnit());
749 result.setDisplayUnit(displayUnit);
750 return result;
751 }
752
753
754
755
756
757 public final FlowVolume asFlowVolume()
758 {
759 Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(FlowVolumeUnit.BASE.getSiDimensions())),
760 UnitRuntimeException.class, "cannot cast %s to FlowVolume", this.toString());
761 return new FlowVolume(getSI(), FlowVolumeUnit.SI);
762 }
763
764
765
766
767
768
769 public final FlowVolume asFlowVolume(final FlowVolumeUnit displayUnit)
770 {
771 Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(FlowVolumeUnit.BASE.getSiDimensions())),
772 UnitRuntimeException.class, "cannot cast %s to FlowVolume", this.toString());
773 FlowVolume result = new FlowVolume(getSI(), displayUnit.getStandardUnit());
774 result.setDisplayUnit(displayUnit);
775 return result;
776 }
777
778
779
780
781
782 public final Force asForce()
783 {
784 Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(ForceUnit.BASE.getSiDimensions())),
785 UnitRuntimeException.class, "cannot cast %s to Force", this.toString());
786 return new Force(getSI(), ForceUnit.SI);
787 }
788
789
790
791
792
793
794 public final Force asForce(final ForceUnit displayUnit)
795 {
796 Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(ForceUnit.BASE.getSiDimensions())),
797 UnitRuntimeException.class, "cannot cast %s to Force", this.toString());
798 Force result = new Force(getSI(), displayUnit.getStandardUnit());
799 result.setDisplayUnit(displayUnit);
800 return result;
801 }
802
803
804
805
806
807 public final Frequency asFrequency()
808 {
809 Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(FrequencyUnit.BASE.getSiDimensions())),
810 UnitRuntimeException.class, "cannot cast %s to Frequency", this.toString());
811 return new Frequency(getSI(), FrequencyUnit.SI);
812 }
813
814
815
816
817
818
819 public final Frequency asFrequency(final FrequencyUnit displayUnit)
820 {
821 Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(FrequencyUnit.BASE.getSiDimensions())),
822 UnitRuntimeException.class, "cannot cast %s to Frequency", this.toString());
823 Frequency result = new Frequency(getSI(), displayUnit.getStandardUnit());
824 result.setDisplayUnit(displayUnit);
825 return result;
826 }
827
828
829
830
831
832 public final Illuminance asIlluminance()
833 {
834 Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(IlluminanceUnit.BASE.getSiDimensions())),
835 UnitRuntimeException.class, "cannot cast %s to Illuminance", this.toString());
836 return new Illuminance(getSI(), IlluminanceUnit.SI);
837 }
838
839
840
841
842
843
844 public final Illuminance asIlluminance(final IlluminanceUnit displayUnit)
845 {
846 Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(IlluminanceUnit.BASE.getSiDimensions())),
847 UnitRuntimeException.class, "cannot cast %s to Illuminance", this.toString());
848 Illuminance result = new Illuminance(getSI(), displayUnit.getStandardUnit());
849 result.setDisplayUnit(displayUnit);
850 return result;
851 }
852
853
854
855
856
857 public final LinearDensity asLinearDensity()
858 {
859 Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(LinearDensityUnit.BASE.getSiDimensions())),
860 UnitRuntimeException.class, "cannot cast %s to LinearDensity", this.toString());
861 return new LinearDensity(getSI(), LinearDensityUnit.SI);
862 }
863
864
865
866
867
868
869 public final LinearDensity asLinearDensity(final LinearDensityUnit displayUnit)
870 {
871 Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(LinearDensityUnit.BASE.getSiDimensions())),
872 UnitRuntimeException.class, "cannot cast %s to LinearDensity", this.toString());
873 LinearDensity result = new LinearDensity(getSI(), displayUnit.getStandardUnit());
874 result.setDisplayUnit(displayUnit);
875 return result;
876 }
877
878
879
880
881
882 public final LuminousFlux asLuminousFlux()
883 {
884 Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(LuminousFluxUnit.BASE.getSiDimensions())),
885 UnitRuntimeException.class, "cannot cast %s to LuminousFlux", this.toString());
886 return new LuminousFlux(getSI(), LuminousFluxUnit.SI);
887 }
888
889
890
891
892
893
894 public final LuminousFlux asLuminousFlux(final LuminousFluxUnit displayUnit)
895 {
896 Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(LuminousFluxUnit.BASE.getSiDimensions())),
897 UnitRuntimeException.class, "cannot cast %s to LuminousFlux", this.toString());
898 LuminousFlux result = new LuminousFlux(getSI(), displayUnit.getStandardUnit());
899 result.setDisplayUnit(displayUnit);
900 return result;
901 }
902
903
904
905
906
907 public final LuminousIntensity asLuminousIntensity()
908 {
909 Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(LuminousIntensityUnit.BASE.getSiDimensions())),
910 UnitRuntimeException.class, "cannot cast %s to LuminousIntensity", this.toString());
911 return new LuminousIntensity(getSI(), LuminousIntensityUnit.SI);
912 }
913
914
915
916
917
918
919 public final LuminousIntensity asLuminousIntensity(final LuminousIntensityUnit displayUnit)
920 {
921 Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(LuminousIntensityUnit.BASE.getSiDimensions())),
922 UnitRuntimeException.class, "cannot cast %s to LuminousIntensity", this.toString());
923 LuminousIntensity result = new LuminousIntensity(getSI(), displayUnit.getStandardUnit());
924 result.setDisplayUnit(displayUnit);
925 return result;
926 }
927
928
929
930
931
932 public final MagneticFluxDensity asMagneticFluxDensity()
933 {
934 Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(MagneticFluxDensityUnit.BASE.getSiDimensions())),
935 UnitRuntimeException.class, "cannot cast %s to MagneticFluxDensity", this.toString());
936 return new MagneticFluxDensity(getSI(), MagneticFluxDensityUnit.SI);
937 }
938
939
940
941
942
943
944 public final MagneticFluxDensity asMagneticFluxDensity(final MagneticFluxDensityUnit displayUnit)
945 {
946 Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(MagneticFluxDensityUnit.BASE.getSiDimensions())),
947 UnitRuntimeException.class, "cannot cast %s to MagneticFluxDensity", this.toString());
948 MagneticFluxDensity result = new MagneticFluxDensity(getSI(), displayUnit.getStandardUnit());
949 result.setDisplayUnit(displayUnit);
950 return result;
951 }
952
953
954
955
956
957 public final MagneticFlux asMagneticFlux()
958 {
959 Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(MagneticFluxUnit.BASE.getSiDimensions())),
960 UnitRuntimeException.class, "cannot cast %s to MagneticFlux", this.toString());
961 return new MagneticFlux(getSI(), MagneticFluxUnit.SI);
962 }
963
964
965
966
967
968
969 public final MagneticFlux asMagneticFlux(final MagneticFluxUnit displayUnit)
970 {
971 Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(MagneticFluxUnit.BASE.getSiDimensions())),
972 UnitRuntimeException.class, "cannot cast %s to MagneticFlux", this.toString());
973 MagneticFlux result = new MagneticFlux(getSI(), displayUnit.getStandardUnit());
974 result.setDisplayUnit(displayUnit);
975 return result;
976 }
977
978
979
980
981
982 public final Mass asMass()
983 {
984 Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(MassUnit.BASE.getSiDimensions())),
985 UnitRuntimeException.class, "cannot cast %s to Mass", this.toString());
986 return new Mass(getSI(), MassUnit.SI);
987 }
988
989
990
991
992
993
994 public final Mass asMass(final MassUnit displayUnit)
995 {
996 Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(MassUnit.BASE.getSiDimensions())),
997 UnitRuntimeException.class, "cannot cast %s to Mass", this.toString());
998 Mass result = new Mass(getSI(), displayUnit.getStandardUnit());
999 result.setDisplayUnit(displayUnit);
1000 return result;
1001 }
1002
1003
1004
1005
1006
1007 public final Momentum asMomentum()
1008 {
1009 Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(MomentumUnit.BASE.getSiDimensions())),
1010 UnitRuntimeException.class, "cannot cast %s to Momentum", this.toString());
1011 return new Momentum(getSI(), MomentumUnit.SI);
1012 }
1013
1014
1015
1016
1017
1018
1019 public final Momentum asMomentum(final MomentumUnit displayUnit)
1020 {
1021 Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(MomentumUnit.BASE.getSiDimensions())),
1022 UnitRuntimeException.class, "cannot cast %s to Momentum", this.toString());
1023 Momentum result = new Momentum(getSI(), displayUnit.getStandardUnit());
1024 result.setDisplayUnit(displayUnit);
1025 return result;
1026 }
1027
1028
1029
1030
1031
1032 public final Power asPower()
1033 {
1034 Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(PowerUnit.BASE.getSiDimensions())),
1035 UnitRuntimeException.class, "cannot cast %s to Power", this.toString());
1036 return new Power(getSI(), PowerUnit.SI);
1037 }
1038
1039
1040
1041
1042
1043
1044 public final Power asPower(final PowerUnit displayUnit)
1045 {
1046 Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(PowerUnit.BASE.getSiDimensions())),
1047 UnitRuntimeException.class, "cannot cast %s to Power", this.toString());
1048 Power result = new Power(getSI(), displayUnit.getStandardUnit());
1049 result.setDisplayUnit(displayUnit);
1050 return result;
1051 }
1052
1053
1054
1055
1056
1057 public final Pressure asPressure()
1058 {
1059 Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(PressureUnit.BASE.getSiDimensions())),
1060 UnitRuntimeException.class, "cannot cast %s to Pressure", this.toString());
1061 return new Pressure(getSI(), PressureUnit.SI);
1062 }
1063
1064
1065
1066
1067
1068
1069 public final Pressure asPressure(final PressureUnit displayUnit)
1070 {
1071 Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(PressureUnit.BASE.getSiDimensions())),
1072 UnitRuntimeException.class, "cannot cast %s to Pressure", this.toString());
1073 Pressure result = new Pressure(getSI(), displayUnit.getStandardUnit());
1074 result.setDisplayUnit(displayUnit);
1075 return result;
1076 }
1077
1078
1079
1080
1081
1082 public final RadioActivity asRadioActivity()
1083 {
1084 Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(RadioActivityUnit.BASE.getSiDimensions())),
1085 UnitRuntimeException.class, "cannot cast %s to RadioActivity", this.toString());
1086 return new RadioActivity(getSI(), RadioActivityUnit.SI);
1087 }
1088
1089
1090
1091
1092
1093
1094 public final RadioActivity asRadioActivity(final RadioActivityUnit displayUnit)
1095 {
1096 Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(RadioActivityUnit.BASE.getSiDimensions())),
1097 UnitRuntimeException.class, "cannot cast %s to RadioActivity", this.toString());
1098 RadioActivity result = new RadioActivity(getSI(), displayUnit.getStandardUnit());
1099 result.setDisplayUnit(displayUnit);
1100 return result;
1101 }
1102
1103
1104
1105
1106
1107 public final SolidAngle asSolidAngle()
1108 {
1109 Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(SolidAngleUnit.BASE.getSiDimensions())),
1110 UnitRuntimeException.class, "cannot cast %s to SolidAngle", this.toString());
1111 return new SolidAngle(getSI(), SolidAngleUnit.SI);
1112 }
1113
1114
1115
1116
1117
1118
1119 public final SolidAngle asSolidAngle(final SolidAngleUnit displayUnit)
1120 {
1121 Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(SolidAngleUnit.BASE.getSiDimensions())),
1122 UnitRuntimeException.class, "cannot cast %s to SolidAngle", this.toString());
1123 SolidAngle result = new SolidAngle(getSI(), displayUnit.getStandardUnit());
1124 result.setDisplayUnit(displayUnit);
1125 return result;
1126 }
1127
1128
1129
1130
1131
1132 public final Speed asSpeed()
1133 {
1134 Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(SpeedUnit.BASE.getSiDimensions())),
1135 UnitRuntimeException.class, "cannot cast %s to Speed", this.toString());
1136 return new Speed(getSI(), SpeedUnit.SI);
1137 }
1138
1139
1140
1141
1142
1143
1144 public final Speed asSpeed(final SpeedUnit displayUnit)
1145 {
1146 Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(SpeedUnit.BASE.getSiDimensions())),
1147 UnitRuntimeException.class, "cannot cast %s to Speed", this.toString());
1148 Speed result = new Speed(getSI(), displayUnit.getStandardUnit());
1149 result.setDisplayUnit(displayUnit);
1150 return result;
1151 }
1152
1153
1154
1155
1156
1157 public final Torque asTorque()
1158 {
1159 Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(TorqueUnit.BASE.getSiDimensions())),
1160 UnitRuntimeException.class, "cannot cast %s to Torque", this.toString());
1161 return new Torque(getSI(), TorqueUnit.SI);
1162 }
1163
1164
1165
1166
1167
1168
1169 public final Torque asTorque(final TorqueUnit displayUnit)
1170 {
1171 Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(TorqueUnit.BASE.getSiDimensions())),
1172 UnitRuntimeException.class, "cannot cast %s to Torque", this.toString());
1173 Torque result = new Torque(getSI(), displayUnit.getStandardUnit());
1174 result.setDisplayUnit(displayUnit);
1175 return result;
1176 }
1177
1178
1179
1180
1181
1182 public final Volume asVolume()
1183 {
1184 Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(VolumeUnit.BASE.getSiDimensions())),
1185 UnitRuntimeException.class, "cannot cast %s to Volume", this.toString());
1186 return new Volume(getSI(), VolumeUnit.SI);
1187 }
1188
1189
1190
1191
1192
1193
1194 public final Volume asVolume(final VolumeUnit displayUnit)
1195 {
1196 Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(VolumeUnit.BASE.getSiDimensions())),
1197 UnitRuntimeException.class, "cannot cast %s to Volume", this.toString());
1198 Volume result = new Volume(getSI(), displayUnit.getStandardUnit());
1199 result.setDisplayUnit(displayUnit);
1200 return result;
1201 }
1202
1203
1204
1205
1206
1207 public final Angle asAngle()
1208 {
1209 Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(AngleUnit.BASE.getSiDimensions())),
1210 UnitRuntimeException.class, "cannot cast %s to Angle", this.toString());
1211 return new Angle(getSI(), AngleUnit.SI);
1212 }
1213
1214
1215
1216
1217
1218
1219 public final Angle asAngle(final AngleUnit displayUnit)
1220 {
1221 Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(AngleUnit.BASE.getSiDimensions())),
1222 UnitRuntimeException.class, "cannot cast %s to Angle", this.toString());
1223 Angle result = new Angle(getSI(), displayUnit.getStandardUnit());
1224 result.setDisplayUnit(displayUnit);
1225 return result;
1226 }
1227
1228
1229
1230
1231
1232 public final Length asLength()
1233 {
1234 Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(LengthUnit.BASE.getSiDimensions())),
1235 UnitRuntimeException.class, "cannot cast %s to Length", this.toString());
1236 return new Length(getSI(), LengthUnit.SI);
1237 }
1238
1239
1240
1241
1242
1243
1244 public final Length asLength(final LengthUnit displayUnit)
1245 {
1246 Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(LengthUnit.BASE.getSiDimensions())),
1247 UnitRuntimeException.class, "cannot cast %s to Length", this.toString());
1248 Length result = new Length(getSI(), displayUnit.getStandardUnit());
1249 result.setDisplayUnit(displayUnit);
1250 return result;
1251 }
1252
1253
1254
1255
1256
1257 public final Temperature asTemperature()
1258 {
1259 Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(TemperatureUnit.BASE.getSiDimensions())),
1260 UnitRuntimeException.class, "cannot cast %s to Temperature", this.toString());
1261 return new Temperature(getSI(), TemperatureUnit.SI);
1262 }
1263
1264
1265
1266
1267
1268
1269 public final Temperature asTemperature(final TemperatureUnit displayUnit)
1270 {
1271 Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(TemperatureUnit.BASE.getSiDimensions())),
1272 UnitRuntimeException.class, "cannot cast %s to Temperature", this.toString());
1273 Temperature result = new Temperature(getSI(), displayUnit.getStandardUnit());
1274 result.setDisplayUnit(displayUnit);
1275 return result;
1276 }
1277
1278
1279
1280
1281
1282 public final Duration asDuration()
1283 {
1284 Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(DurationUnit.BASE.getSiDimensions())),
1285 UnitRuntimeException.class, "cannot cast %s to Duration", this.toString());
1286 return new Duration(getSI(), DurationUnit.SI);
1287 }
1288
1289
1290
1291
1292
1293
1294 public final Duration asDuration(final DurationUnit displayUnit)
1295 {
1296 Throw.when(!(getDisplayUnit().getQuantity().getSiDimensions().equals(DurationUnit.BASE.getSiDimensions())),
1297 UnitRuntimeException.class, "cannot cast %s to Duration", this.toString());
1298 Duration result = new Duration(getSI(), displayUnit.getStandardUnit());
1299 result.setDisplayUnit(displayUnit);
1300 return result;
1301 }
1302
1303 }