View Javadoc
1   package org.djutils.serialization;
2   
3   import java.util.HashMap;
4   import java.util.Map;
5   
6   import org.djunits.unit.AbsoluteTemperatureUnit;
7   import org.djunits.unit.AbsorbedDoseUnit;
8   import org.djunits.unit.AccelerationUnit;
9   import org.djunits.unit.AmountOfSubstanceUnit;
10  import org.djunits.unit.AngleUnit;
11  import org.djunits.unit.AngularAccelerationUnit;
12  import org.djunits.unit.AngularVelocityUnit;
13  import org.djunits.unit.AreaUnit;
14  import org.djunits.unit.CatalyticActivityUnit;
15  import org.djunits.unit.DensityUnit;
16  import org.djunits.unit.DimensionlessUnit;
17  import org.djunits.unit.DirectionUnit;
18  import org.djunits.unit.DurationUnit;
19  import org.djunits.unit.ElectricalCapacitanceUnit;
20  import org.djunits.unit.ElectricalChargeUnit;
21  import org.djunits.unit.ElectricalConductanceUnit;
22  import org.djunits.unit.ElectricalCurrentUnit;
23  import org.djunits.unit.ElectricalInductanceUnit;
24  import org.djunits.unit.ElectricalPotentialUnit;
25  import org.djunits.unit.ElectricalResistanceUnit;
26  import org.djunits.unit.EnergyUnit;
27  import org.djunits.unit.EquivalentDoseUnit;
28  import org.djunits.unit.FlowMassUnit;
29  import org.djunits.unit.FlowVolumeUnit;
30  import org.djunits.unit.ForceUnit;
31  import org.djunits.unit.FrequencyUnit;
32  import org.djunits.unit.IlluminanceUnit;
33  import org.djunits.unit.LengthUnit;
34  import org.djunits.unit.LinearDensityUnit;
35  import org.djunits.unit.LuminousFluxUnit;
36  import org.djunits.unit.LuminousIntensityUnit;
37  import org.djunits.unit.MagneticFluxDensityUnit;
38  import org.djunits.unit.MagneticFluxUnit;
39  import org.djunits.unit.MassUnit;
40  import org.djunits.unit.MomentumUnit;
41  import org.djunits.unit.PositionUnit;
42  import org.djunits.unit.PowerUnit;
43  import org.djunits.unit.PressureUnit;
44  import org.djunits.unit.RadioActivityUnit;
45  import org.djunits.unit.SolidAngleUnit;
46  import org.djunits.unit.SpeedUnit;
47  import org.djunits.unit.TemperatureUnit;
48  import org.djunits.unit.TimeUnit;
49  import org.djunits.unit.TorqueUnit;
50  import org.djunits.unit.Unit;
51  import org.djunits.unit.VolumeUnit;
52  import org.djutils.exceptions.Throw;
53  
54  /**
55   * DJUNITS Display Types to be used as part of a Sim0MQ message.
56   * <p>
57   * Copyright (c) 2016-2025 Delft University of Technology, PO Box 5, 2600 AA, Delft, the Netherlands. All rights reserved. <br>
58   * BSD-style license. See <a href="https://sim0mq.org/docs/current/license.html">Sim0MQ License</a>.
59   * </p>
60   * @author <a href="https://www.tudelft.nl/averbraeck">Alexander Verbraeck</a>
61   */
62  public class UnitType
63  {
64      /** the unit types from number to type. */
65      private static Map<QuantityType, Map<Integer, UnitType>> codeDisplayTypeMap = new HashMap<>();
66  
67      /** the unit types from class to type. */
68      private static Map<Unit<?>, UnitType> djunitsDisplayTypeMap = new HashMap<>();
69  
70      /** the code of the unit as a byte. */
71      private final int code;
72  
73      /** the corresponding unit data type. */
74      private final QuantityType unitType;
75  
76      /** the djunits data type. */
77      private final Unit<?> djunitsType;
78  
79      /** the unit name. */
80      private final String name;
81  
82      /** the unit description. */
83      private final String abbreviation;
84  
85      /* ================================================= DIMENSIONLESS ================================================= */
86  
87      /** Dimensionless.SI unit type with code 0. */
88      public static final UnitType DIMENSIONLESS_SI =
89              new UnitType(QuantityType.DIMENSIONLESS, 0, DimensionlessUnit.SI, "SI", "[]");
90  
91      /* ================================================= ACCELERATION ================================================== */
92  
93      /** Acceleration.METER_PER_SECOND_2 unit type with code 0. */
94      public static final UnitType ACCELERATION_METER_PER_SECOND_2 =
95              new UnitType(QuantityType.ACCELERATION, 0, AccelerationUnit.METER_PER_SECOND_2, "METER_PER_SECOND_2", "m/s2");
96  
97      /** Acceleration.KM_PER_HOUR_2 unit type with code 1. */
98      public static final UnitType ACCELERATION_KM_PER_HOUR_2 =
99              new UnitType(QuantityType.ACCELERATION, 1, AccelerationUnit.KM_PER_HOUR_2, "KM_PER_HOUR_2", "km/h2");
100 
101     /** Acceleration.INCH_PER_SECOND_2 unit type with code 2. */
102     public static final UnitType ACCELERATION_INCH_PER_SECOND_2 =
103             new UnitType(QuantityType.ACCELERATION, 2, AccelerationUnit.INCH_PER_SECOND_2, "INCH_PER_SECOND_2", "in/s2");
104 
105     /** Acceleration.FOOT_PER_SECOND_2 unit type with code 3. */
106     public static final UnitType ACCELERATION_FOOT_PER_SECOND_2 =
107             new UnitType(QuantityType.ACCELERATION, 3, AccelerationUnit.FOOT_PER_SECOND_2, "FOOT_PER_SECOND_2", "ft/s2");
108 
109     /** Acceleration.MILE_PER_HOUR_2 unit type with code 4. */
110     public static final UnitType ACCELERATION_MILE_PER_HOUR_2 =
111             new UnitType(QuantityType.ACCELERATION, 4, AccelerationUnit.MILE_PER_HOUR_2, "MILE_PER_HOUR_2", "mi/h2");
112 
113     /** Acceleration.MILE_PER_HOUR_PER_SECOND unit type with code 5. */
114     public static final UnitType ACCELERATION_MILE_PER_HOUR_PER_SECOND = new UnitType(QuantityType.ACCELERATION, 5,
115             AccelerationUnit.MILE_PER_HOUR_PER_SECOND, "MILE_PER_HOUR_PER_SECOND", "mi/h/s");
116 
117     /** Acceleration.KNOT_PER_SECOND unit type with code 6. */
118     public static final UnitType ACCELERATION_KNOT_PER_SECOND =
119             new UnitType(QuantityType.ACCELERATION, 6, AccelerationUnit.KNOT_PER_SECOND, "KNOT_PER_SECOND", "kt/s");
120 
121     /** Acceleration.GAL unit type with code 7. */
122     public static final UnitType ACCELERATION_GAL =
123             new UnitType(QuantityType.ACCELERATION, 7, AccelerationUnit.GAL, "GAL", "gal");
124 
125     /** Acceleration.STANDARD_GRAVITY unit type with code 8. */
126     public static final UnitType ACCELERATION_STANDARD_GRAVITY =
127             new UnitType(QuantityType.ACCELERATION, 8, AccelerationUnit.STANDARD_GRAVITY, "STANDARD_GRAVITY", "g");
128 
129     /** Acceleration.MILE_PER_SECOND_2 unit type with code 9. */
130     public static final UnitType ACCELERATION_MILE_PER_SECOND_2 =
131             new UnitType(QuantityType.ACCELERATION, 9, AccelerationUnit.MILE_PER_SECOND_2, "MILE_PER_SECOND_2", "mi/s2");
132 
133     /* ================================================== SOLIDANGLE =================================================== */
134 
135     /** SolidAngle.STERADIAN unit type with code 0. */
136     public static final UnitType SOLIDANGLE_STERADIAN =
137             new UnitType(QuantityType.SOLIDANGLE, 0, SolidAngleUnit.STERADIAN, "STERADIAN", "sr");
138 
139     /** SolidAngle.SQUARE_DEGREE unit type with code 1. */
140     public static final UnitType SOLIDANGLE_SQUARE_DEGREE =
141             new UnitType(QuantityType.SOLIDANGLE, 1, SolidAngleUnit.SQUARE_DEGREE, "SQUARE_DEGREE", "sq.deg");
142 
143     /* ===================================================== ANGLE ===================================================== */
144 
145     /** Angle.RADIAN unit type with code 0. */
146     public static final UnitType ANGLE_RADIAN = new UnitType(QuantityType.ANGLE, 0, AngleUnit.RADIAN, "RADIAN", "rad");
147 
148     /** Angle.ARCMINUTE unit type with code 1. */
149     public static final UnitType ANGLE_ARCMINUTE =
150             new UnitType(QuantityType.ANGLE, 1, AngleUnit.ARCMINUTE, "ARCMINUTE", "arcmin");
151 
152     /** Angle.ARCSECOND unit type with code 2. */
153     public static final UnitType ANGLE_ARCSECOND =
154             new UnitType(QuantityType.ANGLE, 2, AngleUnit.ARCSECOND, "ARCSECOND", "arcsec");
155 
156     /** Angle.CENTESIMAL_ARCMINUTE unit type with code 3. */
157     public static final UnitType ANGLE_CENTESIMAL_ARCMINUTE =
158             new UnitType(QuantityType.ANGLE, 3, AngleUnit.CENTESIMAL_ARCMINUTE, "CENTESIMAL_ARCMINUTE", "centesimal_arcmin");
159 
160     /** Angle.CENTESIMAL_ARCSECOND unit type with code 4. */
161     public static final UnitType ANGLE_CENTESIMAL_ARCSECOND =
162             new UnitType(QuantityType.ANGLE, 4, AngleUnit.CENTESIMAL_ARCSECOND, "CENTESIMAL_ARCSECOND", "centesimal_arcsec");
163 
164     /** Angle.DEGREE unit type with code 5. */
165     public static final UnitType ANGLE_DEGREE = new UnitType(QuantityType.ANGLE, 5, AngleUnit.DEGREE, "DEGREE", "deg");
166 
167     /** Angle.GRAD unit type with code 6. */
168     public static final UnitType ANGLE_GRAD = new UnitType(QuantityType.ANGLE, 6, AngleUnit.GRAD, "GRAD", "grad");
169 
170     /** Angle.PERCENT unit type with code 7. */
171     public static final UnitType ANGLE_PERCENT = new UnitType(QuantityType.ANGLE, 7, AngleUnit.PERCENT, "PERCENT", "%");
172 
173     /* =================================================== DIRECTION =================================================== */
174 
175     /** Direction.NORTH_RADIAN unit type with code 0. */
176     public static final UnitType DIRECTION_NORTH_RADIAN =
177             new UnitType(QuantityType.DIRECTION, 0, DirectionUnit.NORTH_RADIAN, "NORTH_RADIAN", "rad(N)");
178 
179     /** Direction.NORTH_DEGREE unit type with code 1. */
180     public static final UnitType DIRECTION_NORTH_DEGREE =
181             new UnitType(QuantityType.DIRECTION, 1, DirectionUnit.NORTH_DEGREE, "NORTH_DEGREE", "deg(N)");
182 
183     /** Direction.EAST_RADIAN unit type with code 2. */
184     public static final UnitType DIRECTION_EAST_RADIAN =
185             new UnitType(QuantityType.DIRECTION, 2, DirectionUnit.EAST_RADIAN, "EAST_RADIAN", "rad(E)");
186 
187     /** Direction.EAST_DEGREE unit type with code 2. */
188     public static final UnitType DIRECTION_EAST_DEGREE =
189             new UnitType(QuantityType.DIRECTION, 3, DirectionUnit.EAST_DEGREE, "EAST_DEGREE", "deg(E)");
190 
191     /* ===================================================== AREA ====================================================== */
192 
193     /** Area.SQUARE_METER unit type with code 0. */
194     public static final UnitType AREA_SQUARE_METER =
195             new UnitType(QuantityType.AREA, 0, AreaUnit.SQUARE_METER, "SQUARE_METER", "m2");
196 
197     /** Area.SQUARE_ATTOMETER unit type with code 1. */
198     public static final UnitType AREA_SQUARE_ATTOMETER =
199             new UnitType(QuantityType.AREA, 1, AreaUnit.BASE.of("am^2"), "SQUARE_ATTOMETER", "am2");
200 
201     /** Area.SQUARE_FEMTOMETER unit type with code 2. */
202     public static final UnitType AREA_SQUARE_FEMTOMETER =
203             new UnitType(QuantityType.AREA, 2, AreaUnit.BASE.of("fm^2"), "SQUARE_FEMTOMETER", "fm2");
204 
205     /** Area.SQUARE_PICOMETER unit type with code 3. */
206     public static final UnitType AREA_SQUARE_PICOMETER =
207             new UnitType(QuantityType.AREA, 3, AreaUnit.BASE.of("pm^2"), "SQUARE_PICOMETER", "pm2");
208 
209     /** Area.SQUARE_NANOMETER unit type with code 4. */
210     public static final UnitType AREA_SQUARE_NANOMETER =
211             new UnitType(QuantityType.AREA, 4, AreaUnit.BASE.of("nm^2"), "SQUARE_NANOMETER", "nm2");
212 
213     /** Area.SQUARE_MICROMETER unit type with code 5. */
214     public static final UnitType AREA_SQUARE_MICROMETER =
215             new UnitType(QuantityType.AREA, 5, AreaUnit.BASE.of("μm^2"), "SQUARE_MICROMETER", "μm2");
216 
217     /** Area.SQUARE_MILLIMETER unit type with code 6. */
218     public static final UnitType AREA_SQUARE_MILLIMETER =
219             new UnitType(QuantityType.AREA, 6, AreaUnit.SQUARE_MILLIMETER, "SQUARE_MILLIMETER", "mm2");
220 
221     /** Area.SQUARE_CENTIMETER unit type with code 7. */
222     public static final UnitType AREA_SQUARE_CENTIMETER =
223             new UnitType(QuantityType.AREA, 7, AreaUnit.SQUARE_CENTIMETER, "SQUARE_CENTIMETER", "cm2");
224 
225     /** Area.SQUARE_DECIMETER unit type with code 8. */
226     public static final UnitType AREA_SQUARE_DECIMETER =
227             new UnitType(QuantityType.AREA, 8, AreaUnit.SQUARE_DECIMETER, "SQUARE_DECIMETER", "dm2");
228 
229     /** Area.SQUARE_DEKAMETER unit type with code 9. */
230     public static final UnitType AREA_SQUARE_DEKAMETER =
231             new UnitType(QuantityType.AREA, 9, AreaUnit.BASE.of("dam^2"), "SQUARE_DEKAMETER", "dam2");
232 
233     /** Area.SQUARE_HECTOMETER unit type with code 10. */
234     public static final UnitType AREA_SQUARE_HECTOMETER =
235             new UnitType(QuantityType.AREA, 10, AreaUnit.SQUARE_HECTOMETER, "SQUARE_HECTOMETER", "hm2");
236 
237     /** Area.SQUARE_KILOMETER unit type with code 11. */
238     public static final UnitType AREA_SQUARE_KILOMETER =
239             new UnitType(QuantityType.AREA, 11, AreaUnit.SQUARE_KILOMETER, "SQUARE_KILOMETER", "km2");
240 
241     /** Area.SQUARE_MEGAMETER unit type with code 12. */
242     public static final UnitType AREA_SQUARE_MEGAMETER =
243             new UnitType(QuantityType.AREA, 12, AreaUnit.BASE.of("Mm^2"), "SQUARE_MEGAMETER", "Mm2");
244 
245     /** Area.SQUARE_INCH unit type with code 13. */
246     public static final UnitType AREA_SQUARE_INCH =
247             new UnitType(QuantityType.AREA, 13, AreaUnit.SQUARE_INCH, "SQUARE_INCH", "in2");
248 
249     /** Area.SQUARE_FOOT unit type with code 14. */
250     public static final UnitType AREA_SQUARE_FOOT =
251             new UnitType(QuantityType.AREA, 14, AreaUnit.SQUARE_FOOT, "SQUARE_FOOT", "ft2");
252 
253     /** Area.SQUARE_YARD unit type with code 15. */
254     public static final UnitType AREA_SQUARE_YARD =
255             new UnitType(QuantityType.AREA, 15, AreaUnit.SQUARE_YARD, "SQUARE_YARD", "yd2");
256 
257     /** Area.SQUARE_MILE unit type with code 16. */
258     public static final UnitType AREA_SQUARE_MILE =
259             new UnitType(QuantityType.AREA, 16, AreaUnit.SQUARE_MILE, "SQUARE_MILE", "mi2");
260 
261     /** Area.SQUARE_NAUTICAL_MILE unit type with code 17. */
262     public static final UnitType AREA_SQUARE_NAUTICAL_MILE =
263             new UnitType(QuantityType.AREA, 17, AreaUnit.SQUARE_NAUTICAL_MILE, "SQUARE_NAUTICAL_MILE", "NM2");
264 
265     /** Area.ACRE unit type with code 18. */
266     public static final UnitType AREA_ACRE = new UnitType(QuantityType.AREA, 18, AreaUnit.ACRE, "ACRE", "acre");
267 
268     /** Area.ARE unit type with code 19. */
269     public static final UnitType AREA_ARE = new UnitType(QuantityType.AREA, 19, AreaUnit.ARE, "ARE", "a");
270 
271     /** Area.CENTIARE unit type with code 20. */
272     public static final UnitType AREA_CENTIARE = new UnitType(QuantityType.AREA, 20, AreaUnit.CENTIARE, "CENTIARE", "ca");
273 
274     /** Area.HECTARE unit type with code 21. */
275     public static final UnitType AREA_HECTARE = new UnitType(QuantityType.AREA, 21, AreaUnit.HECTARE, "HECTARE", "ha");
276 
277     /* ==================================================== DENSITY ==================================================== */
278 
279     /** Density.KG_PER_METER_3 unit type with code 0. */
280     public static final UnitType DENSITY_KG_PER_METER_3 =
281             new UnitType(QuantityType.DENSITY, 0, DensityUnit.KG_PER_METER_3, "KG_PER_METER_3", "kg/m3");
282 
283     /** Density.GRAM_PER_CENTIMETER_3 unit type with code 1. */
284     public static final UnitType DENSITY_GRAM_PER_CENTIMETER_3 =
285             new UnitType(QuantityType.DENSITY, 1, DensityUnit.GRAM_PER_CENTIMETER_3, "GRAM_PER_CENTIMETER_3", "g/cm3");
286 
287     /* =============================================== ELECTRICALCHARGE ================================================ */
288 
289     /** ElectricalCharge.COULOMB unit type with code 0. */
290     public static final UnitType ELECTRICALCHARGE_COULOMB =
291             new UnitType(QuantityType.ELECTRICALCHARGE, 0, ElectricalChargeUnit.COULOMB, "COULOMB", "C");
292 
293     /** ElectricalCharge.PICOCOULOMB unit type with code 1. */
294     public static final UnitType ELECTRICALCHARGE_PICOCOULOMB = new UnitType(QuantityType.ELECTRICALCHARGE, 1,
295             ElectricalChargeUnit.BASE.getUnitByAbbreviation("pC"), "PICOCOULOMB", "pC");
296 
297     /** ElectricalCharge.NANOCOULOMB unit type with code 2. */
298     public static final UnitType ELECTRICALCHARGE_NANOCOULOMB = new UnitType(QuantityType.ELECTRICALCHARGE, 2,
299             ElectricalChargeUnit.BASE.getUnitByAbbreviation("nC"), "NANOCOULOMB", "nC");
300 
301     /** ElectricalCharge.MICROCOULOMB unit type with code 3. */
302     public static final UnitType ELECTRICALCHARGE_MICROCOULOMB =
303             new UnitType(QuantityType.ELECTRICALCHARGE, 3, ElectricalChargeUnit.MICROCOULOMB, "MICROCOULOMB", "μC");
304 
305     /** ElectricalCharge.MILLICOULOMB unit type with code 4. */
306     public static final UnitType ELECTRICALCHARGE_MILLICOULOMB =
307             new UnitType(QuantityType.ELECTRICALCHARGE, 4, ElectricalChargeUnit.MILLICOULOMB, "MILLICOULOMB", "mC");
308 
309     /** ElectricalCharge.ABCOULOMB unit type with code 5. */
310     public static final UnitType ELECTRICALCHARGE_ABCOULOMB =
311             new UnitType(QuantityType.ELECTRICALCHARGE, 5, ElectricalChargeUnit.ABCOULOMB, "ABCOULOMB", "abC");
312 
313     /** ElectricalCharge.ATOMIC_UNIT unit type with code 6. */
314     public static final UnitType ELECTRICALCHARGE_ATOMIC_UNIT =
315             new UnitType(QuantityType.ELECTRICALCHARGE, 6, ElectricalChargeUnit.ATOMIC_UNIT, "ATOMIC_UNIT", "au");
316 
317     /** ElectricalCharge.EMU unit type with code 7. */
318     public static final UnitType ELECTRICALCHARGE_EMU =
319             new UnitType(QuantityType.ELECTRICALCHARGE, 7, ElectricalChargeUnit.EMU, "EMU", "emu");
320 
321     /** ElectricalCharge.ESU unit type with code 8. */
322     public static final UnitType ELECTRICALCHARGE_ESU =
323             new UnitType(QuantityType.ELECTRICALCHARGE, 8, ElectricalChargeUnit.ESU, "ESU", "esu");
324 
325     /** ElectricalCharge.FARADAY unit type with code 9. */
326     public static final UnitType ELECTRICALCHARGE_FARADAY =
327             new UnitType(QuantityType.ELECTRICALCHARGE, 9, ElectricalChargeUnit.FARADAY, "FARADAY", "F");
328 
329     /** ElectricalCharge.FRANKLIN unit type with code 10. */
330     public static final UnitType ELECTRICALCHARGE_FRANKLIN =
331             new UnitType(QuantityType.ELECTRICALCHARGE, 10, ElectricalChargeUnit.FRANKLIN, "FRANKLIN  ", "Fr");
332 
333     /** ElectricalCharge.STATCOULOMB unit type with code 11. */
334     public static final UnitType ELECTRICALCHARGE_STATCOULOMB =
335             new UnitType(QuantityType.ELECTRICALCHARGE, 11, ElectricalChargeUnit.STATCOULOMB, "STATCOULOMB", "statC");
336 
337     /** ElectricalCharge.MILLIAMPERE_HOUR unit type with code 12. */
338     public static final UnitType ELECTRICALCHARGE_MILLIAMPERE_HOUR =
339             new UnitType(QuantityType.ELECTRICALCHARGE, 12, ElectricalChargeUnit.MILLIAMPERE_HOUR, "MILLIAMPERE_HOUR", "mAh");
340 
341     /** ElectricalCharge.AMPERE_HOUR unit type with code 13. */
342     public static final UnitType ELECTRICALCHARGE_AMPERE_HOUR =
343             new UnitType(QuantityType.ELECTRICALCHARGE, 13, ElectricalChargeUnit.AMPERE_HOUR, "AMPERE_HOUR", "Ah");
344 
345     /** ElectricalCharge.KILOAMPERE_HOUR unit type with code 14. */
346     public static final UnitType ELECTRICALCHARGE_KILOAMPERE_HOUR =
347             new UnitType(QuantityType.ELECTRICALCHARGE, 14, ElectricalChargeUnit.KILOAMPERE_HOUR, "KILOAMPERE_HOUR", "kAh");
348 
349     /** ElectricalCharge.MEGAAMPERE_HOUR unit type with code 15. */
350     public static final UnitType ELECTRICALCHARGE_MEGAAMPERE_HOUR =
351             new UnitType(QuantityType.ELECTRICALCHARGE, 15, ElectricalChargeUnit.MEGAAMPERE_HOUR, "MEGAAMPERE_HOUR", "MAh");
352 
353     /** ElectricalCharge.MILLIAMPERE_SECOND unit type with code 16. */
354     public static final UnitType ELECTRICALCHARGE_MILLIAMPERE_SECOND = new UnitType(QuantityType.ELECTRICALCHARGE, 16,
355             ElectricalChargeUnit.MILLIAMPERE_SECOND, "MILLIAMPERE_SECOND", "mAs");
356 
357     /* ============================================= ELECTRICALCURRENT ================================================= */
358 
359     /** ElectricalCurrent.AMPERE unit type with code 0. */
360     public static final UnitType ELECTRICALCURRENT_AMPERE =
361             new UnitType(QuantityType.ELECTRICALCURRENT, 0, ElectricalCurrentUnit.AMPERE, "AMPERE", "A");
362 
363     /** ElectricalCurrent.NANOAMPERE unit type with code 1. */
364     public static final UnitType ELECTRICALCURRENT_NANOAMPERE = new UnitType(QuantityType.ELECTRICALCURRENT, 1,
365             ElectricalCurrentUnit.BASE.getUnitByAbbreviation("nA"), "NANOAMPERE", "nA");
366 
367     /** ElectricalCurrent.MICROAMPERE unit type with code 2. */
368     public static final UnitType ELECTRICALCURRENT_MICROAMPERE =
369             new UnitType(QuantityType.ELECTRICALCURRENT, 2, ElectricalCurrentUnit.MICROAMPERE, "MICROAMPERE", "μA");
370 
371     /** ElectricalCurrent.MILLIAMPERE unit type with code 3. */
372     public static final UnitType ELECTRICALCURRENT_MILLIAMPERE =
373             new UnitType(QuantityType.ELECTRICALCURRENT, 3, ElectricalCurrentUnit.MILLIAMPERE, "MILLIAMPERE", "mA");
374 
375     /** ElectricalCurrent.KILOAMPERE unit type with code 4. */
376     public static final UnitType ELECTRICALCURRENT_KILOAMPERE =
377             new UnitType(QuantityType.ELECTRICALCURRENT, 4, ElectricalCurrentUnit.KILOAMPERE, "KILOAMPERE", "kA");
378 
379     /** ElectricalCurrent.MEGAAMPERE unit type with code 5. */
380     public static final UnitType ELECTRICALCURRENT_MEGAAMPERE =
381             new UnitType(QuantityType.ELECTRICALCURRENT, 5, ElectricalCurrentUnit.MEGAAMPERE, "MEGAAMPERE", "MA");
382 
383     /** ElectricalCurrent.ABAMPERE unit type with code 6. */
384     public static final UnitType ELECTRICALCURRENT_ABAMPERE =
385             new UnitType(QuantityType.ELECTRICALCURRENT, 6, ElectricalCurrentUnit.ABAMPERE, "ABAMPERE", "abA");
386 
387     /** ElectricalCurrent.STATAMPERE unit type with code 7. */
388     public static final UnitType ELECTRICALCURRENT_STATAMPERE =
389             new UnitType(QuantityType.ELECTRICALCURRENT, 7, ElectricalCurrentUnit.STATAMPERE, "STATAMPERE", "statA");
390 
391     /* ============================================ ELECTRICALPOTENTIAL ================================================ */
392 
393     /** ElectricalPotential.VOLT unit type with code 0. */
394     public static final UnitType ELECTRICALPOTENTIAL_VOLT =
395             new UnitType(QuantityType.ELECTRICALPOTENTIAL, 0, ElectricalPotentialUnit.VOLT, "VOLT", "V");
396 
397     /** ElectricalPotential.NANOVOLT unit type with code 1. */
398     public static final UnitType ELECTRICALPOTENTIAL_NANOVOLT = new UnitType(QuantityType.ELECTRICALPOTENTIAL, 1,
399             ElectricalPotentialUnit.BASE.getUnitByAbbreviation("nV"), "NANOVOLT", "nV");
400 
401     /** ElectricalPotential.MICROVOLT unit type with code 2. */
402     public static final UnitType ELECTRICALPOTENTIAL_MICROVOLT =
403             new UnitType(QuantityType.ELECTRICALPOTENTIAL, 2, ElectricalPotentialUnit.MICROVOLT, "MICROVOLT", "μV");
404 
405     /** ElectricalPotential.MILLIVOLT unit type with code 3. */
406     public static final UnitType ELECTRICALPOTENTIAL_MILLIVOLT =
407             new UnitType(QuantityType.ELECTRICALPOTENTIAL, 3, ElectricalPotentialUnit.MILLIVOLT, "MILLIVOLT", "mV");
408 
409     /** ElectricalPotential.KILOVOLT unit type with code 4. */
410     public static final UnitType ELECTRICALPOTENTIAL_KILOVOLT =
411             new UnitType(QuantityType.ELECTRICALPOTENTIAL, 4, ElectricalPotentialUnit.KILOVOLT, "KILOVOLT", "kV");
412 
413     /** ElectricalPotential.MEGAVOLT unit type with code 5. */
414     public static final UnitType ELECTRICALPOTENTIAL_MEGAVOLT =
415             new UnitType(QuantityType.ELECTRICALPOTENTIAL, 5, ElectricalPotentialUnit.MEGAVOLT, "MEGAVOLT", "MV");
416 
417     /** ElectricalPotential.GIGAVOLT unit type with code 6. */
418     public static final UnitType ELECTRICALPOTENTIAL_GIGAVOLT =
419             new UnitType(QuantityType.ELECTRICALPOTENTIAL, 6, ElectricalPotentialUnit.GIGAVOLT, "GIGAVOLT", "GV");
420 
421     /** ElectricalPotential.ABVOLT unit type with code 7. */
422     public static final UnitType ELECTRICALPOTENTIAL_ABVOLT =
423             new UnitType(QuantityType.ELECTRICALPOTENTIAL, 7, ElectricalPotentialUnit.ABVOLT, "ABVOLT", "abV");
424 
425     /** ElectricalPotential.STATVOLT unit type with code 8. */
426     public static final UnitType ELECTRICALPOTENTIAL_STATVOLT =
427             new UnitType(QuantityType.ELECTRICALPOTENTIAL, 8, ElectricalPotentialUnit.STATVOLT, "STATVOLT", "statV");
428 
429     /* =========================================== ELECTRICALRESISTANCE ================================================ */
430 
431     /** ElectricalResistance.OHM unit type with code 0. */
432     public static final UnitType ELECTRICALRESISTANCE_OHM =
433             new UnitType(QuantityType.ELECTRICALRESISTANCE, 0, ElectricalResistanceUnit.OHM, "OHM", "Ω");
434 
435     /** ElectricalResistance.NANOOHM unit type with code 1. */
436     public static final UnitType ELECTRICALRESISTANCE_NANOOHM = new UnitType(QuantityType.ELECTRICALRESISTANCE, 1,
437             ElectricalResistanceUnit.BASE.getUnitByAbbreviation("nohm"), "NANOOHM", "nΩ");
438 
439     /** ElectricalResistance.MICROOHM unit type with code 2. */
440     public static final UnitType ELECTRICALRESISTANCE_MICROOHM =
441             new UnitType(QuantityType.ELECTRICALRESISTANCE, 2, ElectricalResistanceUnit.MICROOHM, "MICROOHM", "μΩ");
442 
443     /** ElectricalResistance.MILLIOHM unit type with code 3. */
444     public static final UnitType ELECTRICALRESISTANCE_MILLIOHM =
445             new UnitType(QuantityType.ELECTRICALRESISTANCE, 3, ElectricalResistanceUnit.MILLIOHM, "MILLIOHM", "mΩ");
446 
447     /** ElectricalResistance.KILOOHM unit type with code 4. */
448     public static final UnitType ELECTRICALRESISTANCE_KILOOHM =
449             new UnitType(QuantityType.ELECTRICALRESISTANCE, 4, ElectricalResistanceUnit.KILOOHM, "KILOOHM", "kΩ");
450 
451     /** ElectricalResistance.MEGAOHM unit type with code 5. */
452     public static final UnitType ELECTRICALRESISTANCE_MEGAOHM =
453             new UnitType(QuantityType.ELECTRICALRESISTANCE, 5, ElectricalResistanceUnit.MEGAOHM, "MEGAOHM", "MΩ");
454 
455     /** ElectricalResistance.GIGAOHM unit type with code 6. */
456     public static final UnitType ELECTRICALRESISTANCE_GIGAOHM =
457             new UnitType(QuantityType.ELECTRICALRESISTANCE, 6, ElectricalResistanceUnit.GIGAOHM, "GIGAOHM", "GΩ");
458 
459     /** ElectricalResistance.ABOHM unit type with code 7. */
460     public static final UnitType ELECTRICALRESISTANCE_ABOHM =
461             new UnitType(QuantityType.ELECTRICALRESISTANCE, 7, ElectricalResistanceUnit.ABOHM, "ABOHM", "abΩ");
462 
463     /** ElectricalResistance.STATOHM unit type with code 8. */
464     public static final UnitType ELECTRICALRESISTANCE_STATOHM =
465             new UnitType(QuantityType.ELECTRICALRESISTANCE, 8, ElectricalResistanceUnit.STATOHM, "STATOHM", "statΩ");
466 
467     /* ==================================================== ENERGY ===================================================== */
468 
469     /** Energy.JOULE unit type with code 0. */
470     public static final UnitType ENERGY_JOULE = new UnitType(QuantityType.ENERGY, 0, EnergyUnit.JOULE, "JOULE", "J");
471 
472     /** Energy.PICOJOULE unit type with code 1. */
473     public static final UnitType ENERGY_PICOJOULE =
474             new UnitType(QuantityType.ENERGY, 1, EnergyUnit.BASE.getUnitByAbbreviation("pJ"), "PICOJOULE", "pJ");
475 
476     /** Energy.NANOJOULE unit type with code 2. */
477     public static final UnitType ENERGY_NANOJOULE =
478             new UnitType(QuantityType.ENERGY, 2, EnergyUnit.BASE.getUnitByAbbreviation("nJ"), "NANOJOULE", "nJ");
479 
480     /** Energy.MICROJOULE unit type with code 3. */
481     public static final UnitType ENERGY_MICROJOULE =
482             new UnitType(QuantityType.ENERGY, 3, EnergyUnit.MICROJOULE, "MICROJOULE", "μJ");
483 
484     /** Energy.MILLIJOULE unit type with code 4. */
485     public static final UnitType ENERGY_MILLIJOULE =
486             new UnitType(QuantityType.ENERGY, 4, EnergyUnit.MILLIJOULE, "MILLIJOULE", "mJ");
487 
488     /** Energy.KILOJOULE unit type with code 5. */
489     public static final UnitType ENERGY_KILOJOULE =
490             new UnitType(QuantityType.ENERGY, 5, EnergyUnit.KILOJOULE, "KILOJOULE", "kJ");
491 
492     /** Energy.MEGAJOULE unit type with code 6. */
493     public static final UnitType ENERGY_MEGAJOULE =
494             new UnitType(QuantityType.ENERGY, 6, EnergyUnit.MEGAJOULE, "MEGAJOULE", "MJ");
495 
496     /** Energy.GIGAJOULE unit type with code 7. */
497     public static final UnitType ENERGY_GIGAJOULE =
498             new UnitType(QuantityType.ENERGY, 7, EnergyUnit.GIGAJOULE, "GIGAJOULE", "GJ");
499 
500     /** Energy.TERAJOULE unit type with code 8. */
501     public static final UnitType ENERGY_TERAJOULE =
502             new UnitType(QuantityType.ENERGY, 8, EnergyUnit.TERAJOULE, "TERAJOULE", "TJ");
503 
504     /** Energy.PETAJOULE unit type with code 9. */
505     public static final UnitType ENERGY_PETAJOULE =
506             new UnitType(QuantityType.ENERGY, 9, EnergyUnit.PETAJOULE, "PETAJOULE", "PJ");
507 
508     /** Energy.ELECTRONVOLT unit type with code 10. */
509     public static final UnitType ENERGY_ELECTRONVOLT =
510             new UnitType(QuantityType.ENERGY, 10, EnergyUnit.ELECTRONVOLT, "ELECTRONVOLT", "eV");
511 
512     /** Energy.MICROELECTRONVOLT unit type with code 11. */
513     public static final UnitType ENERGY_MICROELECTRONVOLT =
514             new UnitType(QuantityType.ENERGY, 11, EnergyUnit.MICROELECTRONVOLT, "MICROELECTRONVOLT", "μeV");
515 
516     /** Energy.MILLIELECTRONVOLT unit type with code 12. */
517     public static final UnitType ENERGY_MILLIELECTRONVOLT =
518             new UnitType(QuantityType.ENERGY, 12, EnergyUnit.MILLIELECTRONVOLT, "MILLIELECTRONVOLT", "meV");
519 
520     /** Energy.KILOELECTRONVOLT unit type with code 13. */
521     public static final UnitType ENERGY_KILOELECTRONVOLT =
522             new UnitType(QuantityType.ENERGY, 13, EnergyUnit.KILOELECTRONVOLT, "KILOELECTRONVOLT", "keV");
523 
524     /** Energy.MEGAELECTRONVOLT unit type with code 14. */
525     public static final UnitType ENERGY_MEGAELECTRONVOLT =
526             new UnitType(QuantityType.ENERGY, 14, EnergyUnit.MEGAELECTRONVOLT, "MEGAELECTRONVOLT", "MeV");
527 
528     /** Energy.GIGAELECTRONVOLT unit type with code 15. */
529     public static final UnitType ENERGY_GIGAELECTRONVOLT =
530             new UnitType(QuantityType.ENERGY, 15, EnergyUnit.GIGAELECTRONVOLT, "GIGAELECTRONVOLT", "GeV");
531 
532     /** Energy.TERAELECTRONVOLT unit type with code 16. */
533     public static final UnitType ENERGY_TERAELECTRONVOLT =
534             new UnitType(QuantityType.ENERGY, 16, EnergyUnit.BASE.getUnitByAbbreviation("TeV"), "TERAELECTRONVOLT", "TeV");
535 
536     /** Energy.PETAELECTRONVOLT unit type with code 17. */
537     public static final UnitType ENERGY_PETAELECTRONVOLT =
538             new UnitType(QuantityType.ENERGY, 17, EnergyUnit.BASE.getUnitByAbbreviation("PeV"), "PETAELECTRONVOLT", "PeV");
539 
540     /** Energy.EXAELECTRONVOLT unit type with code 18. */
541     public static final UnitType ENERGY_EXAELECTRONVOLT =
542             new UnitType(QuantityType.ENERGY, 18, EnergyUnit.BASE.getUnitByAbbreviation("EeV"), "EXAELECTRONVOLT", "EeV");
543 
544     /** Energy.WATT_HOUR unit type with code 19. */
545     public static final UnitType ENERGY_WATT_HOUR =
546             new UnitType(QuantityType.ENERGY, 19, EnergyUnit.WATT_HOUR, "WATT_HOUR", "Wh");
547 
548     /** Energy.FEMTOWATT_HOUR unit type with code 20. */
549     public static final UnitType ENERGY_FEMTOWATT_HOUR =
550             new UnitType(QuantityType.ENERGY, 20, EnergyUnit.BASE.getUnitByAbbreviation("fWh"), "FEMTOWATT_HOUR", "fWh");
551 
552     /** Energy.PICOWATT_HOUR unit type with code 21. */
553     public static final UnitType ENERGY_PICOWATT_HOUR =
554             new UnitType(QuantityType.ENERGY, 21, EnergyUnit.BASE.getUnitByAbbreviation("pWh"), "PICOWATT_HOUR", "pWh");
555 
556     /** Energy.NANOWATT_HOUR unit type with code 22. */
557     public static final UnitType ENERGY_NANOWATT_HOUR =
558             new UnitType(QuantityType.ENERGY, 22, EnergyUnit.BASE.getUnitByAbbreviation("nWh"), "NANOWATT_HOUR", "nWh");
559 
560     /** Energy.MICROWATT_HOUR unit type with code 23. */
561     public static final UnitType ENERGY_MICROWATT_HOUR =
562             new UnitType(QuantityType.ENERGY, 23, EnergyUnit.MICROWATT_HOUR, "MICROWATT_HOUR", "μWh");
563 
564     /** Energy.MILLIWATT_HOUR unit type with code 24. */
565     public static final UnitType ENERGY_MILLIWATT_HOUR =
566             new UnitType(QuantityType.ENERGY, 24, EnergyUnit.MILLIWATT_HOUR, "MILLIWATT_HOUR", "mWh");
567 
568     /** Energy.KILOWATT_HOUR unit type with code 25. */
569     public static final UnitType ENERGY_KILOWATT_HOUR =
570             new UnitType(QuantityType.ENERGY, 25, EnergyUnit.KILOWATT_HOUR, "KILOWATT_HOUR", "kWh");
571 
572     /** Energy.MEGAWATT_HOUR unit type with code 26. */
573     public static final UnitType ENERGY_MEGAWATT_HOUR =
574             new UnitType(QuantityType.ENERGY, 26, EnergyUnit.MEGAWATT_HOUR, "MEGAWATT_HOUR", "MWh");
575 
576     /** Energy.GIGAWATT_HOUR unit type with code 27. */
577     public static final UnitType ENERGY_GIGAWATT_HOUR =
578             new UnitType(QuantityType.ENERGY, 27, EnergyUnit.GIGAWATT_HOUR, "GIGAWATT_HOUR", "GWh");
579 
580     /** Energy.TERAWATT_HOUR unit type with code 28. */
581     public static final UnitType ENERGY_TERAWATT_HOUR =
582             new UnitType(QuantityType.ENERGY, 28, EnergyUnit.TERAWATT_HOUR, "TERAWATT_HOUR", "TWh");
583 
584     /** Energy.PETAWATT_HOUR unit type with code 29. */
585     public static final UnitType ENERGY_PETAWATT_HOUR =
586             new UnitType(QuantityType.ENERGY, 29, EnergyUnit.PETAWATT_HOUR, "PETAWATT_HOUR", "PWh");
587 
588     /** Energy.CALORIE unit type with code 30. */
589     public static final UnitType ENERGY_CALORIE = new UnitType(QuantityType.ENERGY, 30, EnergyUnit.CALORIE, "CALORIE", "cal");
590 
591     /** Energy.KILOCALORIE unit type with code 31. */
592     public static final UnitType ENERGY_KILOCALORIE =
593             new UnitType(QuantityType.ENERGY, 31, EnergyUnit.KILOCALORIE, "KILOCALORIE", "kcal");
594 
595     /** Energy.CALORIE_IT unit type with code 32. */
596     public static final UnitType ENERGY_CALORIE_IT =
597             new UnitType(QuantityType.ENERGY, 32, EnergyUnit.CALORIE_IT, "CALORIE_IT", "cal(IT)");
598 
599     /** Energy.INCH_POUND_FORCE unit type with code 33. */
600     public static final UnitType ENERGY_INCH_POUND_FORCE =
601             new UnitType(QuantityType.ENERGY, 33, EnergyUnit.INCH_POUND_FORCE, "INCH_POUND_FORCE", "in lbf");
602 
603     /** Energy.FOOT_POUND_FORCE unit type with code 34. */
604     public static final UnitType ENERGY_FOOT_POUND_FORCE =
605             new UnitType(QuantityType.ENERGY, 34, EnergyUnit.FOOT_POUND_FORCE, "FOOT_POUND_FORCE", "ft lbf");
606 
607     /** Energy.ERG unit type with code 35. */
608     public static final UnitType ENERGY_ERG = new UnitType(QuantityType.ENERGY, 35, EnergyUnit.ERG, "ERG", "erg");
609 
610     /** Energy.BTU_ISO unit type with code 36. */
611     public static final UnitType ENERGY_BTU_ISO =
612             new UnitType(QuantityType.ENERGY, 36, EnergyUnit.BTU_ISO, "BTU_ISO", "BTU(ISO)");
613 
614     /** Energy.BTU_IT unit type with code 37. */
615     public static final UnitType ENERGY_BTU_IT = new UnitType(QuantityType.ENERGY, 37, EnergyUnit.BTU_IT, "BTU_IT", "BTU(IT)");
616 
617     /** Energy.STHENE_METER unit type with code 38. */
618     public static final UnitType ENERGY_STHENE_METER =
619             new UnitType(QuantityType.ENERGY, 38, EnergyUnit.STHENE_METER, "STHENE_METER", "sth.m");
620 
621     /* =================================================== FLOWMASS ==================================================== */
622 
623     /** FlowMass.KG_PER_SECOND unit type with code 0. */
624     public static final UnitType FLOWMASS_KG_PER_SECOND =
625             new UnitType(QuantityType.FLOWMASS, 0, FlowMassUnit.KILOGRAM_PER_SECOND, "KG_PER_SECOND", "kg/s");
626 
627     /** FlowMass.POUND_PER_SECOND unit type with code 1. */
628     public static final UnitType FLOWMASS_POUND_PER_SECOND =
629             new UnitType(QuantityType.FLOWMASS, 1, FlowMassUnit.POUND_PER_SECOND, "POUND_PER_SECOND", "lb/s");
630 
631     /* ================================================== FLOWVOLUME =================================================== */
632 
633     /** FlowVolume.CUBIC_METER_PER_SECOND unit type with code 0. */
634     public static final UnitType FLOWVOLUME_CUBIC_METER_PER_SECOND =
635             new UnitType(QuantityType.FLOWVOLUME, 0, FlowVolumeUnit.CUBIC_METER_PER_SECOND, "CUBIC_METER_PER_SECOND", "m3/s");
636 
637     /** FlowVolume.CUBIC_METER_PER_MINUTE unit type with code 1. */
638     public static final UnitType FLOWVOLUME_CUBIC_METER_PER_MINUTE =
639             new UnitType(QuantityType.FLOWVOLUME, 1, FlowVolumeUnit.CUBIC_METER_PER_MINUTE, "CUBIC_METER_PER_MINUTE", "m3/min");
640 
641     /** FlowVolume.CUBIC_METER_PER_HOUR unit type with code 2. */
642     public static final UnitType FLOWVOLUME_CUBIC_METER_PER_HOUR =
643             new UnitType(QuantityType.FLOWVOLUME, 2, FlowVolumeUnit.CUBIC_METER_PER_HOUR, "CUBIC_METER_PER_HOUR", "m3/h");
644 
645     /** FlowVolume.CUBIC_METER_PER_DAY unit type with code 3. */
646     public static final UnitType FLOWVOLUME_CUBIC_METER_PER_DAY =
647             new UnitType(QuantityType.FLOWVOLUME, 3, FlowVolumeUnit.CUBIC_METER_PER_DAY, "CUBIC_METER_PER_DAY", "m3/day");
648 
649     /** FlowVolume.CUBIC_INCH_PER_SECOND unit type with code 4. */
650     public static final UnitType FLOWVOLUME_CUBIC_INCH_PER_SECOND =
651             new UnitType(QuantityType.FLOWVOLUME, 4, FlowVolumeUnit.CUBIC_INCH_PER_SECOND, "CUBIC_INCH_PER_SECOND", "in3/s");
652 
653     /** FlowVolume.CUBIC_INCH_PER_MINUTE unit type with code 5. */
654     public static final UnitType FLOWVOLUME_CUBIC_INCH_PER_MINUTE =
655             new UnitType(QuantityType.FLOWVOLUME, 5, FlowVolumeUnit.CUBIC_INCH_PER_MINUTE, "CUBIC_INCH_PER_MINUTE", "in3/min");
656 
657     /** FlowVolume.CUBIC_FEET_PER_SECOND unit type with code 6. */
658     public static final UnitType FLOWVOLUME_CUBIC_FEET_PER_SECOND =
659             new UnitType(QuantityType.FLOWVOLUME, 6, FlowVolumeUnit.CUBIC_FEET_PER_SECOND, "CUBIC_FEET_PER_SECOND", "ft3/s");
660 
661     /** FlowVolume.CUBIC_FEET_PER_MINUTE unit type with code 7. */
662     public static final UnitType FLOWVOLUME_CUBIC_FEET_PER_MINUTE =
663             new UnitType(QuantityType.FLOWVOLUME, 7, FlowVolumeUnit.CUBIC_FEET_PER_MINUTE, "CUBIC_FEET_PER_MINUTE", "ft3/min");
664 
665     /** FlowVolume.GALLON_PER_SECOND unit type with code 8. */
666     public static final UnitType FLOWVOLUME_GALLON_PER_SECOND =
667             new UnitType(QuantityType.FLOWVOLUME, 8, FlowVolumeUnit.GALLON_US_PER_SECOND, "GALLON_PER_SECOND", "gal/s");
668 
669     /** FlowVolume.GALLON_PER_MINUTE unit type with code 9. */
670     public static final UnitType FLOWVOLUME_GALLON_PER_MINUTE =
671             new UnitType(QuantityType.FLOWVOLUME, 9, FlowVolumeUnit.GALLON_US_PER_MINUTE, "GALLON_PER_MINUTE", "gal/min");
672 
673     /** FlowVolume.GALLON_PER_HOUR unit type with code 10. */
674     public static final UnitType FLOWVOLUME_GALLON_PER_HOUR =
675             new UnitType(QuantityType.FLOWVOLUME, 10, FlowVolumeUnit.GALLON_US_PER_HOUR, "GALLON_PER_HOUR", "gal/h");
676 
677     /** FlowVolume.GALLON_PER_DAY unit type with code 11. */
678     public static final UnitType FLOWVOLUME_GALLON_PER_DAY =
679             new UnitType(QuantityType.FLOWVOLUME, 11, FlowVolumeUnit.GALLON_US_PER_DAY, "GALLON_PER_DAY", "gal/day");
680 
681     /** FlowVolume.LITER_PER_SECOND unit type with code 12. */
682     public static final UnitType FLOWVOLUME_LITER_PER_SECOND =
683             new UnitType(QuantityType.FLOWVOLUME, 12, FlowVolumeUnit.LITER_PER_SECOND, "LITER_PER_SECOND", "l/s");
684 
685     /** FlowVolume.LITER_PER_MINUTE unit type with code 13. */
686     public static final UnitType FLOWVOLUME_LITER_PER_MINUTE =
687             new UnitType(QuantityType.FLOWVOLUME, 13, FlowVolumeUnit.LITER_PER_MINUTE, "LITER_PER_MINUTE", "l/min");
688 
689     /** FlowVolume.LITER_PER_HOUR unit type with code 14. */
690     public static final UnitType FLOWVOLUME_LITER_PER_HOUR =
691             new UnitType(QuantityType.FLOWVOLUME, 14, FlowVolumeUnit.LITER_PER_HOUR, "LITER_PER_HOUR", "l/h");
692 
693     /** FlowVolume.LITER_PER_DAY unit type with code 15. */
694     public static final UnitType FLOWVOLUME_LITER_PER_DAY =
695             new UnitType(QuantityType.FLOWVOLUME, 15, FlowVolumeUnit.LITER_PER_DAY, "LITER_PER_DAY", "l/day");
696 
697     /* ==================================================== FORCE ====================================================== */
698 
699     /** Force.NEWTON unit type with code 0. */
700     public static final UnitType FORCE_NEWTON = new UnitType(QuantityType.FORCE, 0, ForceUnit.NEWTON, "NEWTON", "N");
701 
702     /** Force.KILOGRAM_FORCE unit type with code 1. */
703     public static final UnitType FORCE_KILOGRAM_FORCE =
704             new UnitType(QuantityType.FORCE, 1, ForceUnit.KILOGRAM_FORCE, "KILOGRAM_FORCE", "kgf");
705 
706     /** Force.OUNCE_FORCE unit type with code 2. */
707     public static final UnitType FORCE_OUNCE_FORCE =
708             new UnitType(QuantityType.FORCE, 2, ForceUnit.OUNCE_FORCE, "OUNCE_FORCE", "ozf");
709 
710     /** Force.POUND_FORCE unit type with code 3. */
711     public static final UnitType FORCE_POUND_FORCE =
712             new UnitType(QuantityType.FORCE, 3, ForceUnit.POUND_FORCE, "POUND_FORCE", "lbf");
713 
714     /** Force.TON_FORCE unit type with code 4. */
715     public static final UnitType FORCE_TON_FORCE = new UnitType(QuantityType.FORCE, 4, ForceUnit.TON_FORCE, "TON_FORCE", "tnf");
716 
717     /** Force.DYNE unit type with code 5. */
718     public static final UnitType FORCE_DYNE = new UnitType(QuantityType.FORCE, 5, ForceUnit.DYNE, "DYNE", "dyne");
719 
720     /** Force.STHENE unit type with code 6. */
721     public static final UnitType FORCE_STHENE = new UnitType(QuantityType.FORCE, 6, ForceUnit.STHENE, "STHENE", "sth");
722 
723     /* ================================================== FREQUENCY ==================================================== */
724 
725     /** Frequency.HERTZ unit type with code 0. */
726     public static final UnitType FREQUENCY_HERTZ = new UnitType(QuantityType.FREQUENCY, 0, FrequencyUnit.HERTZ, "HERTZ", "Hz");
727 
728     /** Frequency.KILOHERTZ unit type with code 1. */
729     public static final UnitType FREQUENCY_KILOHERTZ =
730             new UnitType(QuantityType.FREQUENCY, 1, FrequencyUnit.KILOHERTZ, "KILOHERTZ", "kHz");
731 
732     /** Frequency.MEGAHERTZ unit type with code 2. */
733     public static final UnitType FREQUENCY_MEGAHERTZ =
734             new UnitType(QuantityType.FREQUENCY, 2, FrequencyUnit.MEGAHERTZ, "MEGAHERTZ", "MHz");
735 
736     /** Frequency.GIGAHERTZ unit type with code 3. */
737     public static final UnitType FREQUENCY_GIGAHERTZ =
738             new UnitType(QuantityType.FREQUENCY, 3, FrequencyUnit.GIGAHERTZ, "GIGAHERTZ", "GHz");
739 
740     /** Frequency.TERAHERTZ unit type with code 4. */
741     public static final UnitType FREQUENCY_TERAHERTZ =
742             new UnitType(QuantityType.FREQUENCY, 4, FrequencyUnit.TERAHERTZ, "TERAHERTZ", "THz");
743 
744     /** Frequency.PER_SECOND unit type with code 5. */
745     public static final UnitType FREQUENCY_PER_SECOND =
746             new UnitType(QuantityType.FREQUENCY, 5, FrequencyUnit.PER_SECOND, "PER_SECOND", "1/s");
747 
748     /** Frequency.PER_ATTOSECOND unit type with code 6. */
749     public static final UnitType FREQUENCY_PER_ATTOSECOND =
750             new UnitType(QuantityType.FREQUENCY, 6, FrequencyUnit.BASE.getUnitByAbbreviation("/as"), "PER_ATTOSECOND", "1/as");
751 
752     /** Frequency.PER_FEMTOSECOND unit type with code 7. */
753     public static final UnitType FREQUENCY_PER_FEMTOSECOND =
754             new UnitType(QuantityType.FREQUENCY, 7, FrequencyUnit.BASE.getUnitByAbbreviation("/fs"), "PER_FEMTOSECOND", "1/fs");
755 
756     /** Frequency.PER_PICOSECOND unit type with code 8. */
757     public static final UnitType FREQUENCY_PER_PICOSECOND =
758             new UnitType(QuantityType.FREQUENCY, 8, FrequencyUnit.BASE.getUnitByAbbreviation("/ps"), "PER_PICOSECOND", "1/ps");
759 
760     /** Frequency.PER_NANOSECOND unit type with code 9. */
761     public static final UnitType FREQUENCY_PER_NANOSECOND =
762             new UnitType(QuantityType.FREQUENCY, 9, FrequencyUnit.BASE.getUnitByAbbreviation("/ns"), "PER_NANOSECOND", "1/ns");
763 
764     /** Frequency.PER_MICROSECOND unit type with code 10. */
765     public static final UnitType FREQUENCY_PER_MICROSECOND =
766             new UnitType(QuantityType.FREQUENCY, 10, FrequencyUnit.PER_MICROSECOND, "PER_MICROSECOND", "1/μs");
767 
768     /** Frequency.PER_MILLISECOND unit type with code 11. */
769     public static final UnitType FREQUENCY_PER_MILLISECOND =
770             new UnitType(QuantityType.FREQUENCY, 11, FrequencyUnit.PER_MILLISECOND, "PER_MILLISECOND", "1/ms");
771 
772     /** Frequency.PER_MINUTE unit type with code 12. */
773     public static final UnitType FREQUENCY_PER_MINUTE =
774             new UnitType(QuantityType.FREQUENCY, 12, FrequencyUnit.PER_MINUTE, "PER_MINUTE", "1/min");
775 
776     /** Frequency.PER_HOUR unit type with code 13. */
777     public static final UnitType FREQUENCY_PER_HOUR =
778             new UnitType(QuantityType.FREQUENCY, 13, FrequencyUnit.PER_HOUR, "PER_HOUR", "1/hr");
779 
780     /** Frequency.PER_DAY unit type with code 14. */
781     public static final UnitType FREQUENCY_PER_DAY =
782             new UnitType(QuantityType.FREQUENCY, 14, FrequencyUnit.PER_DAY, "PER_DAY", "1/day");
783 
784     /** Frequency.PER_WEEK unit type with code 15. */
785     public static final UnitType FREQUENCY_PER_WEEK =
786             new UnitType(QuantityType.FREQUENCY, 15, FrequencyUnit.PER_WEEK, "PER_WEEK", "1/wk");
787 
788     /** Frequency.RPM unit type with code 16. */
789     public static final UnitType FREQUENCY_RPM = new UnitType(QuantityType.FREQUENCY, 16, FrequencyUnit.RPM, "RPM", "rpm");
790 
791     /* ==================================================== LENGTH ===================================================== */
792 
793     /** Length.METER unit type with code 0. */
794     public static final UnitType LENGTH_METER = new UnitType(QuantityType.LENGTH, 0, LengthUnit.METER, "METER", "m");
795 
796     /** Length.ATTOMETER unit type with code 1. */
797     public static final UnitType LENGTH_ATTOMETER =
798             new UnitType(QuantityType.LENGTH, 1, LengthUnit.BASE.getUnitByAbbreviation("am"), "ATTOMETER", "am");
799 
800     /** Length.FEMTOMETER unit type with code 2. */
801     public static final UnitType LENGTH_FEMTOMETER =
802             new UnitType(QuantityType.LENGTH, 2, LengthUnit.BASE.getUnitByAbbreviation("fm"), "FEMTOMETER", "fm");
803 
804     /** Length.PICOMETER unit type with code 3. */
805     public static final UnitType LENGTH_PICOMETER =
806             new UnitType(QuantityType.LENGTH, 3, LengthUnit.BASE.getUnitByAbbreviation("pm"), "PICOMETER", "pm");
807 
808     /** Length.NANOMETER unit type with code 4. */
809     public static final UnitType LENGTH_NANOMETER =
810             new UnitType(QuantityType.LENGTH, 4, LengthUnit.NANOMETER, "NANOMETER", "nm");
811 
812     /** Length.MICROMETER unit type with code 5. */
813     public static final UnitType LENGTH_MICROMETER =
814             new UnitType(QuantityType.LENGTH, 5, LengthUnit.MICROMETER, "MICROMETER", "μm");
815 
816     /** Length.MILLIMETER unit type with code 6. */
817     public static final UnitType LENGTH_MILLIMETER =
818             new UnitType(QuantityType.LENGTH, 6, LengthUnit.MILLIMETER, "MILLIMETER", "mm");
819 
820     /** Length.CENTIMETER unit type with code 7. */
821     public static final UnitType LENGTH_CENTIMETER =
822             new UnitType(QuantityType.LENGTH, 7, LengthUnit.CENTIMETER, "CENTIMETER", "cm");
823 
824     /** Length.DECIMETER unit type with code 8. */
825     public static final UnitType LENGTH_DECIMETER =
826             new UnitType(QuantityType.LENGTH, 8, LengthUnit.DECIMETER, "DECIMETER", "dm");
827 
828     /** Length.DEKAMETER unit type with code 9. */
829     public static final UnitType LENGTH_DEKAMETER =
830             new UnitType(QuantityType.LENGTH, 9, LengthUnit.BASE.getUnitByAbbreviation("dam"), "DEKAMETER", "dam");
831 
832     /** Length.HECTOMETER unit type with code 10. */
833     public static final UnitType LENGTH_HECTOMETER =
834             new UnitType(QuantityType.LENGTH, 10, LengthUnit.HECTOMETER, "HECTOMETER", "hm");
835 
836     /** Length.KILOMETER unit type with code 11. */
837     public static final UnitType LENGTH_KILOMETER =
838             new UnitType(QuantityType.LENGTH, 11, LengthUnit.KILOMETER, "KILOMETER", "km");
839 
840     /** Length.MEGAMETER unit type with code 12. */
841     public static final UnitType LENGTH_MEGAMETER =
842             new UnitType(QuantityType.LENGTH, 12, LengthUnit.BASE.getUnitByAbbreviation("Mm"), "MEGAMETER", "Mm");
843 
844     /** Length.INCH unit type with code 13. */
845     public static final UnitType LENGTH_INCH = new UnitType(QuantityType.LENGTH, 13, LengthUnit.INCH, "INCH", "in");
846 
847     /** Length.FOOT unit type with code 14. */
848     public static final UnitType LENGTH_FOOT = new UnitType(QuantityType.LENGTH, 14, LengthUnit.FOOT, "FOOT", "ft");
849 
850     /** Length.YARD unit type with code 15. */
851     public static final UnitType LENGTH_YARD = new UnitType(QuantityType.LENGTH, 15, LengthUnit.YARD, "YARD", "yd");
852 
853     /** Length.MILE unit type with code 16. */
854     public static final UnitType LENGTH_MILE = new UnitType(QuantityType.LENGTH, 16, LengthUnit.MILE, "MILE", "mi");
855 
856     /** Length.NAUTICAL_MILE unit type with code 17. */
857     public static final UnitType LENGTH_NAUTICAL_MILE =
858             new UnitType(QuantityType.LENGTH, 17, LengthUnit.NAUTICAL_MILE, "NAUTICAL_MILE", "NM");
859 
860     /** Length.ASTRONOMICAL_UNIT unit type with code 18. */
861     public static final UnitType LENGTH_ASTRONOMICAL_UNIT =
862             new UnitType(QuantityType.LENGTH, 18, LengthUnit.ASTRONOMICAL_UNIT, "ASTRONOMICAL_UNIT", "au");
863 
864     /** Length.PARSEC unit type with code 19. */
865     public static final UnitType LENGTH_PARSEC = new UnitType(QuantityType.LENGTH, 19, LengthUnit.PARSEC, "PARSEC", "pc");
866 
867     /** Length.LIGHTYEAR unit type with code 20. */
868     public static final UnitType LENGTH_LIGHTYEAR =
869             new UnitType(QuantityType.LENGTH, 20, LengthUnit.LIGHTYEAR, "LIGHTYEAR", "ly");
870 
871     /** Length.ANGSTROM unit type with code 21. */
872     public static final UnitType LENGTH_ANGSTROM = new UnitType(QuantityType.LENGTH, 21, LengthUnit.ANGSTROM, "ANGSTROM", "Å");
873 
874     /* =================================================== POSITION ==================================================== */
875 
876     /** Position.METER unit type with code 0. */
877     public static final UnitType POSITION_METER = new UnitType(QuantityType.POSITION, 0, PositionUnit.METER, "METER", "m");
878 
879     /** Position.ATTOMETER unit type with code 1. */
880     public static final UnitType POSITION_ATTOMETER =
881             new UnitType(QuantityType.POSITION, 1, PositionUnit.BASE.getUnitByAbbreviation("am"), "ATTOMETER", "am");
882 
883     /** Position.FEMTOMETER unit type with code 2. */
884     public static final UnitType POSITION_FEMTOMETER =
885             new UnitType(QuantityType.POSITION, 2, PositionUnit.BASE.getUnitByAbbreviation("fm"), "FEMTOMETER", "fm");
886 
887     /** Position.PICOMETER unit type with code 3. */
888     public static final UnitType POSITION_PICOMETER =
889             new UnitType(QuantityType.POSITION, 3, PositionUnit.BASE.getUnitByAbbreviation("pm"), "PICOMETER", "pm");
890 
891     /** Position.NANOMETER unit type with code 4. */
892     public static final UnitType POSITION_NANOMETER =
893             new UnitType(QuantityType.POSITION, 4, PositionUnit.NANOMETER, "NANOMETER", "nm");
894 
895     /** Position.MICROMETER unit type with code 5. */
896     public static final UnitType POSITION_MICROMETER =
897             new UnitType(QuantityType.POSITION, 5, PositionUnit.MICROMETER, "MICROMETER", "μm");
898 
899     /** Position.MILLIMETER unit type with code 6. */
900     public static final UnitType POSITION_MILLIMETER =
901             new UnitType(QuantityType.POSITION, 6, PositionUnit.MILLIMETER, "MILLIMETER", "mm");
902 
903     /** Position.CENTIMETER unit type with code 7. */
904     public static final UnitType POSITION_CENTIMETER =
905             new UnitType(QuantityType.POSITION, 7, PositionUnit.CENTIMETER, "CENTIMETER", "cm");
906 
907     /** Position.DECIMETER unit type with code 8. */
908     public static final UnitType POSITION_DECIMETER =
909             new UnitType(QuantityType.POSITION, 8, PositionUnit.DECIMETER, "DECIMETER", "dm");
910 
911     /** Position.DEKAMETER unit type with code 9. */
912     public static final UnitType POSITION_DEKAMETER =
913             new UnitType(QuantityType.POSITION, 9, PositionUnit.BASE.getUnitByAbbreviation("dam"), "DEKAMETER", "dam");
914 
915     /** Position.HECTOMETER unit type with code 10. */
916     public static final UnitType POSITION_HECTOMETER =
917             new UnitType(QuantityType.POSITION, 10, PositionUnit.HECTOMETER, "HECTOMETER", "hm");
918 
919     /** Position.KILOMETER unit type with code 11. */
920     public static final UnitType POSITION_KILOMETER =
921             new UnitType(QuantityType.POSITION, 11, PositionUnit.KILOMETER, "KILOMETER", "km");
922 
923     /** Position.MEGAMETER unit type with code 12. */
924     public static final UnitType POSITION_MEGAMETER =
925             new UnitType(QuantityType.POSITION, 12, PositionUnit.BASE.getUnitByAbbreviation("Mm"), "MEGAMETER", "Mm");
926 
927     /** Position.INCH unit type with code 13. */
928     public static final UnitType POSITION_INCH = new UnitType(QuantityType.POSITION, 13, PositionUnit.INCH, "INCH", "in");
929 
930     /** Position.FOOT unit type with code 14. */
931     public static final UnitType POSITION_FOOT = new UnitType(QuantityType.POSITION, 14, PositionUnit.FOOT, "FOOT", "ft");
932 
933     /** Position.YARD unit type with code 15. */
934     public static final UnitType POSITION_YARD = new UnitType(QuantityType.POSITION, 15, PositionUnit.YARD, "YARD", "yd");
935 
936     /** Position.MILE unit type with code 16. */
937     public static final UnitType POSITION_MILE = new UnitType(QuantityType.POSITION, 16, PositionUnit.MILE, "MILE", "mi");
938 
939     /** Position.NAUTICAL_MILE unit type with code 17. */
940     public static final UnitType POSITION_NAUTICAL_MILE =
941             new UnitType(QuantityType.POSITION, 17, PositionUnit.NAUTICAL_MILE, "NAUTICAL_MILE", "NM");
942 
943     /** Position.ASTRONOMICAL_UNIT unit type with code 18. */
944     public static final UnitType POSITION_ASTRONOMICAL_UNIT =
945             new UnitType(QuantityType.POSITION, 18, PositionUnit.ASTRONOMICAL_UNIT, "ASTRONOMICAL_UNIT", "au");
946 
947     /** Position.PARSEC unit type with code 19. */
948     public static final UnitType POSITION_PARSEC = new UnitType(QuantityType.POSITION, 19, PositionUnit.PARSEC, "PARSEC", "pc");
949 
950     /** Position.LIGHTYEAR unit type with code 20. */
951     public static final UnitType POSITION_LIGHTYEAR =
952             new UnitType(QuantityType.POSITION, 20, PositionUnit.LIGHTYEAR, "LIGHTYEAR", "ly");
953 
954     /** Position.ANGSTROM unit type with code 21. */
955     public static final UnitType POSITION_ANGSTROM =
956             new UnitType(QuantityType.POSITION, 21, PositionUnit.ANGSTROM, "ANGSTROM", "Å");
957 
958     /* ================================================= LINEARDENSITY ================================================= */
959 
960     /** LinearDensity.PER_METER unit type with code 0. */
961     public static final UnitType LINEARDENSITY_PER_METER =
962             new UnitType(QuantityType.LINEARDENSITY, 0, LinearDensityUnit.PER_METER, "PER_METER", "1/m");
963 
964     /** LinearDensity.PER_ATTOMETER unit type with code 1. */
965     public static final UnitType LINEARDENSITY_PER_ATTOMETER = new UnitType(QuantityType.LINEARDENSITY, 1,
966             LinearDensityUnit.BASE.getUnitByAbbreviation("/am"), "PER_ATTOMETER", "1/am");
967 
968     /** LinearDensity.PER_FEMTOMETER unit type with code 2. */
969     public static final UnitType LINEARDENSITY_PER_FEMTOMETER = new UnitType(QuantityType.LINEARDENSITY, 2,
970             LinearDensityUnit.BASE.getUnitByAbbreviation("/fm"), "PER_FEMTOMETER", "1/fm");
971 
972     /** LinearDensity.PER_PICOMETER unit type with code 3. */
973     public static final UnitType LINEARDENSITY_PER_PICOMETER = new UnitType(QuantityType.LINEARDENSITY, 3,
974             LinearDensityUnit.BASE.getUnitByAbbreviation("/pm"), "PER_PICOMETER", "1/pm");
975 
976     /** LinearDensity.PER_NANOMETER unit type with code 4. */
977     public static final UnitType LINEARDENSITY_PER_NANOMETER = new UnitType(QuantityType.LINEARDENSITY, 4,
978             LinearDensityUnit.BASE.getUnitByAbbreviation("/nm"), "PER_NANOMETER", "1/nm");
979 
980     /** LinearDensity.PER_MICROMETER unit type with code 5. */
981     public static final UnitType LINEARDENSITY_PER_MICROMETER =
982             new UnitType(QuantityType.LINEARDENSITY, 5, LinearDensityUnit.PER_MICROMETER, "PER_MICROMETER", "1/μm");
983 
984     /** LinearDensity.PER_MILLIMETER unit type with code 6. */
985     public static final UnitType LINEARDENSITY_PER_MILLIMETER =
986             new UnitType(QuantityType.LINEARDENSITY, 6, LinearDensityUnit.PER_MILLIMETER, "PER_MILLIMETER", "1/mm");
987 
988     /** LinearDensity.PER_CENTIMETER unit type with code 7. */
989     public static final UnitType LINEARDENSITY_PER_CENTIMETER =
990             new UnitType(QuantityType.LINEARDENSITY, 7, LinearDensityUnit.PER_CENTIMETER, "PER_CENTIMETER", "1/cm");
991 
992     /** LinearDensity.PER_DECIMETER unit type with code 8. */
993     public static final UnitType LINEARDENSITY_PER_DECIMETER =
994             new UnitType(QuantityType.LINEARDENSITY, 8, LinearDensityUnit.PER_DECIMETER, "PER_DECIMETER", "1/dm");
995 
996     /** LinearDensity.PER_DEKAMETER unit type with code 9. */
997     public static final UnitType LINEARDENSITY_PER_DEKAMETER = new UnitType(QuantityType.LINEARDENSITY, 9,
998             LinearDensityUnit.BASE.getUnitByAbbreviation("/dam"), "PER_DEKAMETER", "1/dam");
999 
1000     /** LinearDensity.PER_HECTOMETER unit type with code 10. */
1001     public static final UnitType LINEARDENSITY_PER_HECTOMETER =
1002             new UnitType(QuantityType.LINEARDENSITY, 10, LinearDensityUnit.PER_HECTOMETER, "PER_HECTOMETER", "1/hm");
1003 
1004     /** LinearDensity.PER_KILOMETER unit type with code 11. */
1005     public static final UnitType LINEARDENSITY_PER_KILOMETER =
1006             new UnitType(QuantityType.LINEARDENSITY, 11, LinearDensityUnit.PER_KILOMETER, "PER_KILOMETER", "1/km");
1007 
1008     /** LinearDensity.PER_MEGAMETER unit type with code 12. */
1009     public static final UnitType LINEARDENSITY_PER_MEGAMETER = new UnitType(QuantityType.LINEARDENSITY, 12,
1010             LinearDensityUnit.BASE.getUnitByAbbreviation("/Mm"), "PER_MEGAMETER", "1/Mm");
1011 
1012     /** LinearDensity.PER_INCH unit type with code 13. */
1013     public static final UnitType LINEARDENSITY_PER_INCH =
1014             new UnitType(QuantityType.LINEARDENSITY, 13, LinearDensityUnit.PER_INCH, "PER_INCH", "1/in");
1015 
1016     /** LinearDensity.PER_FOOT unit type with code 14. */
1017     public static final UnitType LINEARDENSITY_PER_FOOT =
1018             new UnitType(QuantityType.LINEARDENSITY, 14, LinearDensityUnit.PER_FOOT, "PER_FOOT", "1/ft");
1019 
1020     /** LinearDensity.PER_YARD unit type with code 15. */
1021     public static final UnitType LINEARDENSITY_PER_YARD =
1022             new UnitType(QuantityType.LINEARDENSITY, 15, LinearDensityUnit.PER_YARD, "PER_YARD", "1/yd");
1023 
1024     /** LinearDensity.PER_MILE unit type with code 16. */
1025     public static final UnitType LINEARDENSITY_PER_MILE =
1026             new UnitType(QuantityType.LINEARDENSITY, 16, LinearDensityUnit.PER_MILE, "PER_MILE", "1/mi");
1027 
1028     /** LinearDensity.PER_NAUTICAL_MILE unit type with code 17. */
1029     public static final UnitType LINEARDENSITY_PER_NAUTICAL_MILE =
1030             new UnitType(QuantityType.LINEARDENSITY, 17, LinearDensityUnit.PER_NAUTICAL_MILE, "PER_NAUTICAL_MILE", "1/NM");
1031 
1032     /** LinearDensity.PER_ASTRONOMICAL_UNIT unit type with code 18. */
1033     public static final UnitType LINEARDENSITY_PER_ASTRONOMICAL_UNIT = new UnitType(QuantityType.LINEARDENSITY, 18,
1034             LinearDensityUnit.PER_ASTRONOMICAL_UNIT, "PER_ASTRONOMICAL_UNIT", "1/au");
1035 
1036     /** LinearDensity.PER_PARSEC unit type with code 19. */
1037     public static final UnitType LINEARDENSITY_PER_PARSEC =
1038             new UnitType(QuantityType.LINEARDENSITY, 19, LinearDensityUnit.PER_PARSEC, "PER_PARSEC", "1/pc");
1039 
1040     /** LinearDensity.PER_LIGHTYEAR unit type with code 20. */
1041     public static final UnitType LINEARDENSITY_PER_LIGHTYEAR =
1042             new UnitType(QuantityType.LINEARDENSITY, 20, LinearDensityUnit.PER_LIGHTYEAR, "PER_LIGHTYEAR", "1/ly");
1043 
1044     /** LinearDensity.PER_ANGSTROM unit type with code 21. */
1045     public static final UnitType LINEARDENSITY_PER_ANGSTROM =
1046             new UnitType(QuantityType.LINEARDENSITY, 21, LinearDensityUnit.PER_ANGSTROM, "PER_ANGSTROM", "1/Å");
1047 
1048     /* ===================================================== MASS ====================================================== */
1049 
1050     /** Mass.KILOGRAM unit type with code 0. */
1051     public static final UnitType MASS_KILOGRAM = new UnitType(QuantityType.MASS, 0, MassUnit.KILOGRAM, "KILOGRAM", "kg");
1052 
1053     /** Mass.FEMTOGRAM unit type with code 1. */
1054     public static final UnitType MASS_FEMTOGRAM =
1055             new UnitType(QuantityType.MASS, 1, MassUnit.BASE.getUnitByAbbreviation("fg"), "FEMTOGRAM", "fg");
1056 
1057     /** Mass.PICOGRAM unit type with code 2. */
1058     public static final UnitType MASS_PICOGRAM =
1059             new UnitType(QuantityType.MASS, 2, MassUnit.BASE.getUnitByAbbreviation("pg"), "PICOGRAM", "pg");
1060 
1061     /** Mass.NANOGRAM unit type with code 3. */
1062     public static final UnitType MASS_NANOGRAM =
1063             new UnitType(QuantityType.MASS, 3, MassUnit.BASE.getUnitByAbbreviation("ng"), "NANOGRAM", "ng");
1064 
1065     /** Mass.MICROGRAM unit type with code 4. */
1066     public static final UnitType MASS_MICROGRAM = new UnitType(QuantityType.MASS, 4, MassUnit.MICROGRAM, "MICROGRAM", "μg");
1067 
1068     /** Mass.MILLIGRAM unit type with code 5. */
1069     public static final UnitType MASS_MILLIGRAM = new UnitType(QuantityType.MASS, 5, MassUnit.MILLIGRAM, "MILLIGRAM", "mg");
1070 
1071     /** Mass.GRAM unit type with code 6. */
1072     public static final UnitType MASS_GRAM = new UnitType(QuantityType.MASS, 6, MassUnit.GRAM, "GRAM", "kg");
1073 
1074     /** Mass.MEGAGRAM unit type with code 7. */
1075     public static final UnitType MASS_MEGAGRAM =
1076             new UnitType(QuantityType.MASS, 7, MassUnit.BASE.getUnitByAbbreviation("Mg"), "MEGAGRAM", "Mg");
1077 
1078     /** Mass.GIGAGRAM unit type with code 8. */
1079     public static final UnitType MASS_GIGAGRAM =
1080             new UnitType(QuantityType.MASS, 8, MassUnit.BASE.getUnitByAbbreviation("Gg"), "GIGAGRAM", "Gg");
1081 
1082     /** Mass.TERAGRAM unit type with code 9. */
1083     public static final UnitType MASS_TERAGRAM =
1084             new UnitType(QuantityType.MASS, 9, MassUnit.BASE.getUnitByAbbreviation("Tg"), "TERAGRAM", "Tg");
1085 
1086     /** Mass.PETAGRAM unit type with code 10. */
1087     public static final UnitType MASS_PETAGRAM =
1088             new UnitType(QuantityType.MASS, 10, MassUnit.BASE.getUnitByAbbreviation("Pg"), "PETAGRAM", "Pg");
1089 
1090     /** Mass.MICROELECTRONVOLT unit type with code 11. */
1091     public static final UnitType MASS_MICROELECTRONVOLT =
1092             new UnitType(QuantityType.MASS, 11, MassUnit.MICROELECTRONVOLT, "MICROELECTRONVOLT", "μeV");
1093 
1094     /** Mass.MILLIELECTRONVOLT unit type with code 12. */
1095     public static final UnitType MASS_MILLIELECTRONVOLT =
1096             new UnitType(QuantityType.MASS, 12, MassUnit.MILLIELECTRONVOLT, "MILLIELECTRONVOLT", "meV");
1097 
1098     /** Mass.ELECTRONVOLT unit type with code 13. */
1099     public static final UnitType MASS_ELECTRONVOLT =
1100             new UnitType(QuantityType.MASS, 13, MassUnit.ELECTRONVOLT, "ELECTRONVOLT", "eV");
1101 
1102     /** Mass.KILOELECTRONVOLT unit type with code 14. */
1103     public static final UnitType MASS_KILOELECTRONVOLT =
1104             new UnitType(QuantityType.MASS, 14, MassUnit.KILOELECTRONVOLT, "KILOELECTRONVOLT", "keV");
1105 
1106     /** Mass.MEGAELECTRONVOLT unit type with code 15. */
1107     public static final UnitType MASS_MEGAELECTRONVOLT =
1108             new UnitType(QuantityType.MASS, 15, MassUnit.MEGAELECTRONVOLT, "MEGAELECTRONVOLT", "MeV");
1109 
1110     /** Mass.GIGAELECTRONVOLT unit type with code 16. */
1111     public static final UnitType MASS_GIGAELECTRONVOLT =
1112             new UnitType(QuantityType.MASS, 16, MassUnit.GIGAELECTRONVOLT, "GIGAELECTRONVOLT", "GeV");
1113 
1114     /** Mass.TERAELECTRONVOLT unit type with code 17. */
1115     public static final UnitType MASS_TERAELECTRONVOLT =
1116             new UnitType(QuantityType.MASS, 17, MassUnit.BASE.getUnitByAbbreviation("TeV"), "TERAELECTRONVOLT", "TeV");
1117 
1118     /** Mass.PETAELECTRONVOLT unit type with code 18. */
1119     public static final UnitType MASS_PETAELECTRONVOLT =
1120             new UnitType(QuantityType.MASS, 18, MassUnit.BASE.getUnitByAbbreviation("PeV"), "PETAELECTRONVOLT", "PeV");
1121 
1122     /** Mass.EXAELECTRONVOLT unit type with code 19. */
1123     public static final UnitType MASS_EXAELECTRONVOLT =
1124             new UnitType(QuantityType.MASS, 19, MassUnit.BASE.getUnitByAbbreviation("EeV"), "EXAELECTRONVOLT", "EeV");
1125 
1126     /** Mass.OUNCE unit type with code 20. */
1127     public static final UnitType MASS_OUNCE = new UnitType(QuantityType.MASS, 20, MassUnit.OUNCE, "OUNCE", "oz");
1128 
1129     /** Mass.POUND unit type with code 21. */
1130     public static final UnitType MASS_POUND = new UnitType(QuantityType.MASS, 21, MassUnit.POUND, "POUND", "lb");
1131 
1132     /** Mass.DALTON unit type with code 22. */
1133     public static final UnitType MASS_DALTON = new UnitType(QuantityType.MASS, 22, MassUnit.DALTON, "DALTON", "Da");
1134 
1135     /** Mass.TON_LONG unit type with code 23. */
1136     public static final UnitType MASS_TON_LONG =
1137             new UnitType(QuantityType.MASS, 23, MassUnit.TON_LONG, "TON_LONG", "ton (long)");
1138 
1139     /** Mass.TON_SHORT unit type with code 24. */
1140     public static final UnitType MASS_TON_SHORT =
1141             new UnitType(QuantityType.MASS, 24, MassUnit.TON_SHORT, "TON_SHORT", "ton (short)");
1142 
1143     /** Mass.TONNE unit type with code 25. */
1144     public static final UnitType MASS_TONNE = new UnitType(QuantityType.MASS, 25, MassUnit.TONNE, "TONNE", "tonne");
1145 
1146     /* ==================================================== POWER ====================================================== */
1147 
1148     /** Power.WATT unit type with code 0. */
1149     public static final UnitType POWER_WATT = new UnitType(QuantityType.POWER, 0, PowerUnit.WATT, "WATT", "W");
1150 
1151     /** Power.FEMTOWATT unit type with code 1. */
1152     public static final UnitType POWER_FEMTOWATT =
1153             new UnitType(QuantityType.POWER, 1, PowerUnit.BASE.getUnitByAbbreviation("fW"), "FEMTOWATT", "fW");
1154 
1155     /** Power.PICOWATT unit type with code 2. */
1156     public static final UnitType POWER_PICOWATT =
1157             new UnitType(QuantityType.POWER, 2, PowerUnit.BASE.getUnitByAbbreviation("pW"), "PICOWATT", "pW");
1158 
1159     /** Power.NANOWATT unit type with code 3. */
1160     public static final UnitType POWER_NANOWATT =
1161             new UnitType(QuantityType.POWER, 3, PowerUnit.BASE.getUnitByAbbreviation("nW"), "NANOWATT", "nW");
1162 
1163     /** Power.MICROWATT unit type with code 4. */
1164     public static final UnitType POWER_MICROWATT = new UnitType(QuantityType.POWER, 4, PowerUnit.MICROWATT, "MICROWATT", "μW");
1165 
1166     /** Power.MILLIWATT unit type with code 5. */
1167     public static final UnitType POWER_MILLIWATT = new UnitType(QuantityType.POWER, 5, PowerUnit.MILLIWATT, "MILLIWATT", "mW");
1168 
1169     /** Power.KILOWATT unit type with code 6. */
1170     public static final UnitType POWER_KILOWATT = new UnitType(QuantityType.POWER, 6, PowerUnit.KILOWATT, "KILOWATT", "kW");
1171 
1172     /** Power.MEGAWATT unit type with code 7. */
1173     public static final UnitType POWER_MEGAWATT = new UnitType(QuantityType.POWER, 7, PowerUnit.MEGAWATT, "MEGAWATT", "MW");
1174 
1175     /** Power.GIGAWATT unit type with code 8. */
1176     public static final UnitType POWER_GIGAWATT = new UnitType(QuantityType.POWER, 8, PowerUnit.GIGAWATT, "GIGAWATT", "GW");
1177 
1178     /** Power.TERAWATT unit type with code 9. */
1179     public static final UnitType POWER_TERAWATT = new UnitType(QuantityType.POWER, 9, PowerUnit.TERAWATT, "TERAWATT", "TW");
1180 
1181     /** Power.PETAWATT unit type with code 10. */
1182     public static final UnitType POWER_PETAWATT = new UnitType(QuantityType.POWER, 10, PowerUnit.PETAWATT, "PETAWATT", "PW");
1183 
1184     /** Power.ERG_PER_SECOND unit type with code 11. */
1185     public static final UnitType POWER_ERG_PER_SECOND =
1186             new UnitType(QuantityType.POWER, 11, PowerUnit.ERG_PER_SECOND, "ERG_PER_SECOND", "erg/s");
1187 
1188     /** Power.FOOT_POUND_FORCE_PER_SECOND unit type with code 12. */
1189     public static final UnitType POWER_FOOT_POUND_FORCE_PER_SECOND = new UnitType(QuantityType.POWER, 12,
1190             PowerUnit.FOOT_POUND_FORCE_PER_SECOND, "FOOT_POUND_FORCE_PER_SECOND", "ft.lbf/s");
1191 
1192     /** Power.FOOT_POUND_FORCE_PER_MINUTE unit type with code 13. */
1193     public static final UnitType POWER_FOOT_POUND_FORCE_PER_MINUTE = new UnitType(QuantityType.POWER, 13,
1194             PowerUnit.FOOT_POUND_FORCE_PER_MINUTE, "FOOT_POUND_FORCE_PER_MINUTE", "ft.lbf/min");
1195 
1196     /** Power.FOOT_POUND_FORCE_PER_HOUR unit type with code 14. */
1197     public static final UnitType POWER_FOOT_POUND_FORCE_PER_HOUR =
1198             new UnitType(QuantityType.POWER, 14, PowerUnit.FOOT_POUND_FORCE_PER_HOUR, "FOOT_POUND_FORCE_PER_HOUR", "ft.lbf/h");
1199 
1200     /** Power.HORSEPOWER_METRIC unit type with code 15. */
1201     public static final UnitType POWER_HORSEPOWER_METRIC =
1202             new UnitType(QuantityType.POWER, 15, PowerUnit.HORSEPOWER_METRIC, "HORSEPOWER_METRIC", "hp");
1203 
1204     /** Power.STHENE_METER_PER_SECOND unit type with code 16. */
1205     public static final UnitType POWER_STHENE_METER_PER_SECOND =
1206             new UnitType(QuantityType.POWER, 16, PowerUnit.STHENE_METER_PER_SECOND, "STHENE_METER_PER_SECOND", "sth/s");
1207 
1208     /* ==================================================== PRESSURE =================================================== */
1209 
1210     /** Pressure.PASCAL unit type with code 0. */
1211     public static final UnitType PRESSURE_PASCAL = new UnitType(QuantityType.PRESSURE, 0, PressureUnit.PASCAL, "PASCAL", "Pa");
1212 
1213     /** Pressure.HECTOPASCAL unit type with code 1. */
1214     public static final UnitType PRESSURE_HECTOPASCAL =
1215             new UnitType(QuantityType.PRESSURE, 1, PressureUnit.HECTOPASCAL, "HECTOPASCAL", "hPa");
1216 
1217     /** Pressure.KILOPASCAL unit type with code 2. */
1218     public static final UnitType PRESSURE_KILOPASCAL =
1219             new UnitType(QuantityType.PRESSURE, 2, PressureUnit.KILOPASCAL, "KILOPASCAL", "kPa");
1220 
1221     /** Pressure.ATMOSPHERE_STANDARD unit type with code 3. */
1222     public static final UnitType PRESSURE_ATMOSPHERE_STANDARD =
1223             new UnitType(QuantityType.PRESSURE, 3, PressureUnit.ATMOSPHERE_STANDARD, "ATMOSPHERE_STANDARD", "atm");
1224 
1225     /** Pressure.ATMOSPHERE_TECHNICAL unit type with code 4. */
1226     public static final UnitType PRESSURE_ATMOSPHERE_TECHNICAL =
1227             new UnitType(QuantityType.PRESSURE, 4, PressureUnit.ATMOSPHERE_TECHNICAL, "ATMOSPHERE_TECHNICAL", "at");
1228 
1229     /** Pressure.MILLIBAR unit type with code 5. */
1230     public static final UnitType PRESSURE_MILLIBAR =
1231             new UnitType(QuantityType.PRESSURE, 5, PressureUnit.MILLIBAR, "MILLIBAR", "mbar");
1232 
1233     /** Pressure.BAR unit type with code 6. */
1234     public static final UnitType PRESSURE_BAR = new UnitType(QuantityType.PRESSURE, 6, PressureUnit.BAR, "BAR", "bar");
1235 
1236     /** Pressure.BARYE unit type with code 7. */
1237     public static final UnitType PRESSURE_BARYE = new UnitType(QuantityType.PRESSURE, 7, PressureUnit.BARYE, "BARYE", "Ba");
1238 
1239     /** Pressure.MILLIMETER_MERCURY unit type with code 8. */
1240     public static final UnitType PRESSURE_MILLIMETER_MERCURY =
1241             new UnitType(QuantityType.PRESSURE, 8, PressureUnit.MILLIMETER_MERCURY, "MILLIMETER_MERCURY", "mmHg");
1242 
1243     /** Pressure.CENTIMETER_MERCURY unit type with code 9. */
1244     public static final UnitType PRESSURE_CENTIMETER_MERCURY =
1245             new UnitType(QuantityType.PRESSURE, 9, PressureUnit.CENTIMETER_MERCURY, "CENTIMETER_MERCURY", "cmHg");
1246 
1247     /** Pressure.INCH_MERCURY unit type with code 10. */
1248     public static final UnitType PRESSURE_INCH_MERCURY =
1249             new UnitType(QuantityType.PRESSURE, 10, PressureUnit.INCH_MERCURY, "INCH_MERCURY", "inHg");
1250 
1251     /** Pressure.FOOT_MERCURY unit type with code 11. */
1252     public static final UnitType PRESSURE_FOOT_MERCURY =
1253             new UnitType(QuantityType.PRESSURE, 11, PressureUnit.FOOT_MERCURY, "FOOT_MERCURY", "ftHg");
1254 
1255     /** Pressure.KGF_PER_SQUARE_MM unit type with code 12. */
1256     public static final UnitType PRESSURE_KGF_PER_SQUARE_MM =
1257             new UnitType(QuantityType.PRESSURE, 12, PressureUnit.KGF_PER_SQUARE_MM, "KGF_PER_SQUARE_MM", "kgf/mm2");
1258 
1259     /** Pressure.PIEZE unit type with code 13. */
1260     public static final UnitType PRESSURE_PIEZE = new UnitType(QuantityType.PRESSURE, 13, PressureUnit.PIEZE, "PIEZE", "pz");
1261 
1262     /** Pressure.POUND_PER_SQUARE_INCH unit type with code 14. */
1263     public static final UnitType PRESSURE_POUND_PER_SQUARE_INCH =
1264             new UnitType(QuantityType.PRESSURE, 14, PressureUnit.POUND_PER_SQUARE_INCH, "POUND_PER_SQUARE_INCH", "lb/in2");
1265 
1266     /** Pressure.POUND_PER_SQUARE_FOOT unit type with code 15. */
1267     public static final UnitType PRESSURE_POUND_PER_SQUARE_FOOT =
1268             new UnitType(QuantityType.PRESSURE, 15, PressureUnit.POUND_PER_SQUARE_FOOT, "POUND_PER_SQUARE_FOOT", "lb/ft2");
1269 
1270     /** Pressure.TORR unit type with code 16. */
1271     public static final UnitType PRESSURE_TORR = new UnitType(QuantityType.PRESSURE, 16, PressureUnit.TORR, "TORR", "torr");
1272 
1273     /* ==================================================== SPEED ====================================================== */
1274 
1275     /** Speed.METER_PER_SECOND unit type with code 0. */
1276     public static final UnitType SPEED_METER_PER_SECOND =
1277             new UnitType(QuantityType.SPEED, 0, SpeedUnit.METER_PER_SECOND, "METER_PER_SECOND", "m/s");
1278 
1279     /** Speed.METER_PER_HOUR unit type with code 1. */
1280     public static final UnitType SPEED_METER_PER_HOUR =
1281             new UnitType(QuantityType.SPEED, 1, SpeedUnit.METER_PER_HOUR, "METER_PER_HOUR", "m/h");
1282 
1283     /** Speed.KM_PER_SECOND unit type with code 2. */
1284     public static final UnitType SPEED_KM_PER_SECOND =
1285             new UnitType(QuantityType.SPEED, 2, SpeedUnit.KM_PER_SECOND, "KM_PER_SECOND", "km/s");
1286 
1287     /** Speed.KM_PER_HOUR unit type with code 3. */
1288     public static final UnitType SPEED_KM_PER_HOUR =
1289             new UnitType(QuantityType.SPEED, 3, SpeedUnit.KM_PER_HOUR, "KM_PER_HOUR", "km/h");
1290 
1291     /** Speed.INCH_PER_SECOND unit type with code 4. */
1292     public static final UnitType SPEED_INCH_PER_SECOND =
1293             new UnitType(QuantityType.SPEED, 4, SpeedUnit.INCH_PER_SECOND, "INCH_PER_SECOND", "in/s");
1294 
1295     /** Speed.INCH_PER_MINUTE unit type with code 5. */
1296     public static final UnitType SPEED_INCH_PER_MINUTE =
1297             new UnitType(QuantityType.SPEED, 5, SpeedUnit.INCH_PER_MINUTE, "INCH_PER_MINUTE", "in/min");
1298 
1299     /** Speed.INCH_PER_HOUR unit type with code 6. */
1300     public static final UnitType SPEED_INCH_PER_HOUR =
1301             new UnitType(QuantityType.SPEED, 6, SpeedUnit.INCH_PER_HOUR, "INCH_PER_HOUR", "in/h");
1302 
1303     /** Speed.FOOT_PER_SECOND unit type with code 7. */
1304     public static final UnitType SPEED_FOOT_PER_SECOND =
1305             new UnitType(QuantityType.SPEED, 7, SpeedUnit.FOOT_PER_SECOND, "FOOT_PER_SECOND", "ft/s");
1306 
1307     /** Speed.FOOT_PER_MINUTE unit type with code 8. */
1308     public static final UnitType SPEED_FOOT_PER_MINUTE =
1309             new UnitType(QuantityType.SPEED, 8, SpeedUnit.FOOT_PER_MINUTE, "FOOT_PER_MINUTE", "ft/min");
1310 
1311     /** Speed.FOOT_PER_HOUR unit type with code 9. */
1312     public static final UnitType SPEED_FOOT_PER_HOUR =
1313             new UnitType(QuantityType.SPEED, 9, SpeedUnit.FOOT_PER_HOUR, "FOOT_PER_HOUR", "ft/h");
1314 
1315     /** Speed.MILE_PER_SECOND unit type with code 10. */
1316     public static final UnitType SPEED_MILE_PER_SECOND =
1317             new UnitType(QuantityType.SPEED, 10, SpeedUnit.MILE_PER_SECOND, "MILE_PER_SECOND", "mi/s");
1318 
1319     /** Speed.MILE_PER_MINUTE unit type with code 11. */
1320     public static final UnitType SPEED_MILE_PER_MINUTE =
1321             new UnitType(QuantityType.SPEED, 11, SpeedUnit.MILE_PER_MINUTE, "MILE_PER_MINUTE", "mi/min");
1322 
1323     /** Speed.MILE_PER_HOUR unit type with code 12. */
1324     public static final UnitType SPEED_MILE_PER_HOUR =
1325             new UnitType(QuantityType.SPEED, 12, SpeedUnit.MILE_PER_HOUR, "MILE_PER_HOUR", "mi/h");
1326 
1327     /** Speed.KNOT unit type with code 13. */
1328     public static final UnitType SPEED_KNOT = new UnitType(QuantityType.SPEED, 13, SpeedUnit.KNOT, "KNOT", "kt");
1329 
1330     /* ================================================== TEMPERATURE ================================================== */
1331 
1332     /** Temperature.KELVIN unit type with code 0. */
1333     public static final UnitType TEMPERATURE_KELVIN =
1334             new UnitType(QuantityType.TEMPERATURE, 0, TemperatureUnit.KELVIN, "KELVIN", "K");
1335 
1336     /** Temperature.DEGREE_CELSIUS unit type with code 1. */
1337     public static final UnitType TEMPERATURE_DEGREE_CELSIUS =
1338             new UnitType(QuantityType.TEMPERATURE, 1, TemperatureUnit.DEGREE_CELSIUS, "DEGREE_CELSIUS", "OC");
1339 
1340     /** Temperature.DEGREE_FAHRENHEIT unit type with code 2. */
1341     public static final UnitType TEMPERATURE_DEGREE_FAHRENHEIT =
1342             new UnitType(QuantityType.TEMPERATURE, 2, TemperatureUnit.DEGREE_FAHRENHEIT, "DEGREE_FAHRENHEIT", "OF");
1343 
1344     /** Temperature.DEGREE_RANKINE unit type with code 3. */
1345     public static final UnitType TEMPERATURE_DEGREE_RANKINE =
1346             new UnitType(QuantityType.TEMPERATURE, 3, TemperatureUnit.DEGREE_RANKINE, "DEGREE_RANKINE", "OR");
1347 
1348     /** Temperature.DEGREE_REAUMUR unit type with code 4. */
1349     public static final UnitType TEMPERATURE_DEGREE_REAUMUR =
1350             new UnitType(QuantityType.TEMPERATURE, 4, TemperatureUnit.DEGREE_REAUMUR, "DEGREE_REAUMUR", "ORé");
1351 
1352     /* ============================================= ABSOLUTETEMPERATURE =============================================== */
1353 
1354     /** AbsoluteTemperature.KELVIN unit type with code 0. */
1355     public static final UnitType ABSOLUTETEMPERATURE_KELVIN =
1356             new UnitType(QuantityType.ABSOLUTETEMPERATURE, 0, AbsoluteTemperatureUnit.KELVIN, "KELVIN", "K");
1357 
1358     /** AbsoluteTemperature.DEGREE_CELSIUS unit type with code 1. */
1359     public static final UnitType ABSOLUTETEMPERATURE_DEGREE_CELSIUS =
1360             new UnitType(QuantityType.ABSOLUTETEMPERATURE, 1, AbsoluteTemperatureUnit.DEGREE_CELSIUS, "DEGREE_CELSIUS", "OC");
1361 
1362     /** AbsoluteTemperature.DEGREE_FAHRENHEIT unit type with code 2. */
1363     public static final UnitType ABSOLUTETEMPERATURE_DEGREE_FAHRENHEIT = new UnitType(QuantityType.ABSOLUTETEMPERATURE, 2,
1364             AbsoluteTemperatureUnit.DEGREE_FAHRENHEIT, "DEGREE_FAHRENHEIT", "OF");
1365 
1366     /** AbsoluteTemperature.DEGREE_RANKINE unit type with code 3. */
1367     public static final UnitType ABSOLUTETEMPERATURE_DEGREE_RANKINE =
1368             new UnitType(QuantityType.ABSOLUTETEMPERATURE, 3, AbsoluteTemperatureUnit.DEGREE_RANKINE, "DEGREE_RANKINE", "OR");
1369 
1370     /** AbsoluteTemperature.DEGREE_REAUMUR unit type with code 4. */
1371     public static final UnitType ABSOLUTETEMPERATURE_DEGREE_REAUMUR =
1372             new UnitType(QuantityType.ABSOLUTETEMPERATURE, 4, AbsoluteTemperatureUnit.DEGREE_REAUMUR, "DEGREE_REAUMUR", "ORé");
1373 
1374     /* =================================================== DURATION ==================================================== */
1375 
1376     /** Duration.SECOND unit type with code 0. */
1377     public static final UnitType DURATION_SECOND = new UnitType(QuantityType.DURATION, 0, DurationUnit.SECOND, "SECOND", "s");
1378 
1379     /** Duration.ATTOSECOND unit type with code 1. */
1380     public static final UnitType DURATION_ATTOSECOND =
1381             new UnitType(QuantityType.DURATION, 1, DurationUnit.BASE.getUnitByAbbreviation("as"), "ATTOSECOND", "as");
1382 
1383     /** Duration.FEMTOSECOND unit type with code 2. */
1384     public static final UnitType DURATION_FEMTOSECOND =
1385             new UnitType(QuantityType.DURATION, 2, DurationUnit.BASE.getUnitByAbbreviation("fs"), "FEMTOSECOND", "fs");
1386 
1387     /** Duration.PICOSECOND unit type with code 3. */
1388     public static final UnitType DURATION_PICOSECOND =
1389             new UnitType(QuantityType.DURATION, 3, DurationUnit.BASE.getUnitByAbbreviation("ps"), "PICOSECOND", "ps");
1390 
1391     /** Duration.NANOSECOND unit type with code 4. */
1392     public static final UnitType DURATION_NANOSECOND =
1393             new UnitType(QuantityType.DURATION, 4, DurationUnit.BASE.getUnitByAbbreviation("ns"), "NANOSECOND", "ns");
1394 
1395     /** Duration.MICROSECOND unit type with code 5. */
1396     public static final UnitType DURATION_MICROSECOND =
1397             new UnitType(QuantityType.DURATION, 5, DurationUnit.MICROSECOND, "MICROSECOND", "μs");
1398 
1399     /** Duration.MILLISECOND unit type with code 6. */
1400     public static final UnitType DURATION_MILLISECOND =
1401             new UnitType(QuantityType.DURATION, 6, DurationUnit.MILLISECOND, "MILLISECOND", "ms");
1402 
1403     /** Duration.MINUTE unit type with code 7. */
1404     public static final UnitType DURATION_MINUTE = new UnitType(QuantityType.DURATION, 7, DurationUnit.MINUTE, "MINUTE", "min");
1405 
1406     /** Duration.HOUR unit type with code 8. */
1407     public static final UnitType DURATION_HOUR = new UnitType(QuantityType.DURATION, 8, DurationUnit.HOUR, "HOUR", "hr");
1408 
1409     /** Duration.DAY unit type with code 9. */
1410     public static final UnitType DURATION_DAY = new UnitType(QuantityType.DURATION, 9, DurationUnit.DAY, "DAY", "day");
1411 
1412     /** Duration.WEEK unit type with code 10. */
1413     public static final UnitType DURATION_WEEK = new UnitType(QuantityType.DURATION, 10, DurationUnit.WEEK, "WEEK", "wk");
1414 
1415     /* ===================================================== TIME ====================================================== */
1416 
1417     /** Time.BASE_SECOND unit type with code 0. */
1418     public static final UnitType TIME_BASE_SECOND = new UnitType(QuantityType.TIME, 0, TimeUnit.BASE_SECOND, "SECOND", "s");
1419 
1420     /** Time.BASE_MICROSECOND unit type with code 1. */
1421     public static final UnitType TIME_BASE_MICROSECOND =
1422             new UnitType(QuantityType.TIME, 1, TimeUnit.BASE_MICROSECOND, "MICROSECOND", "μs");
1423 
1424     /** Time.BASE_MILLISECOND unit type with code 2. */
1425     public static final UnitType TIME_BASE_MILLISECOND =
1426             new UnitType(QuantityType.TIME, 2, TimeUnit.BASE_MILLISECOND, "MILLISECOND", "ms");
1427 
1428     /** Time.BASE_MINUTE unit type with code 3. */
1429     public static final UnitType TIME_BASE_MINUTE = new UnitType(QuantityType.TIME, 3, TimeUnit.BASE_MINUTE, "MINUTE", "min");
1430 
1431     /** Time.BASE_HOUR unit type with code 4. */
1432     public static final UnitType TIME_BASE_HOUR = new UnitType(QuantityType.TIME, 4, TimeUnit.BASE_HOUR, "HOUR", "hr");
1433 
1434     /** Time.BASE_DAY unit type with code 5. */
1435     public static final UnitType TIME_BASE_DAY = new UnitType(QuantityType.TIME, 5, TimeUnit.BASE_DAY, "DAY", "day");
1436 
1437     /** Time.BASE_WEEK unit type with code 6. */
1438     public static final UnitType TIME_BASE_WEEK = new UnitType(QuantityType.TIME, 6, TimeUnit.BASE_WEEK, "WEEK", "wk");
1439 
1440     /** Time.EPOCH_SECOND unit type with code 7. */
1441     public static final UnitType TIME_EPOCH_SECOND =
1442             new UnitType(QuantityType.TIME, 7, TimeUnit.EPOCH_SECOND, "SECOND (1-1-70)", "s(POSIX)");
1443 
1444     /** Time.EPOCH_MICROSECOND unit type with code 8. */
1445     public static final UnitType TIME_EPOCH_MICROSECOND =
1446             new UnitType(QuantityType.TIME, 8, TimeUnit.EPOCH_MICROSECOND, "MICROSECOND (1-1-70)", "μs(POSIX)");
1447 
1448     /** Time.EPOCH_MILLISECOND unit type with code 9. */
1449     public static final UnitType TIME_EPOCH_MILLISECOND =
1450             new UnitType(QuantityType.TIME, 9, TimeUnit.EPOCH_MILLISECOND, "MILLISECOND (1-1-70)", "ms(POSIX)");
1451 
1452     /** Time.EPOCH_MINUTE unit type with code 10. */
1453     public static final UnitType TIME_EPOCH_MINUTE =
1454             new UnitType(QuantityType.TIME, 10, TimeUnit.EPOCH_MINUTE, "MINUTE (1-1-70)", "min(POSIX)");
1455 
1456     /** Time.EPOCH_HOUR unit type with code 11. */
1457     public static final UnitType TIME_EPOCH_HOUR =
1458             new UnitType(QuantityType.TIME, 11, TimeUnit.EPOCH_HOUR, "HOUR (1-1-70)", "hr(POSIX)");
1459 
1460     /** Time.EPOCH_DAY unit type with code 12. */
1461     public static final UnitType TIME_EPOCH_DAY =
1462             new UnitType(QuantityType.TIME, 12, TimeUnit.EPOCH_DAY, "DAY (1-1-70)", "day(POSIX)");
1463 
1464     /** Time.EPOCH_WEEK unit type with code 13. */
1465     public static final UnitType TIME_EPOCH_WEEK =
1466             new UnitType(QuantityType.TIME, 13, TimeUnit.EPOCH_WEEK, "WEEK (1-1-70)", "wk(POSIX)");
1467 
1468     /** Time.TIME_YEAR1_SECOND unit type with code 14. */
1469     public static final UnitType TIME_YEAR1_SECOND =
1470             new UnitType(QuantityType.TIME, 14, TimeUnit.EPOCH_YEAR1_SECOND, "SECOND (1-1-0001)", "s(1-1-0001)");
1471 
1472     /** Time.TIME_J2000_SECOND unit type with code 15. */
1473     public static final UnitType TIME_J2000_SECOND =
1474             new UnitType(QuantityType.TIME, 15, TimeUnit.EPOCH_J2000_SECOND, "SECOND (1-1-2000 12:00)", "s(1-1-2000)");
1475 
1476     /* ==================================================== TORQUE ===================================================== */
1477 
1478     /** Torque.NEWTON_METER unit type with code 0. */
1479     public static final UnitType TORQUE_NEWTON_METER =
1480             new UnitType(QuantityType.TORQUE, 0, TorqueUnit.NEWTON_METER, "NEWTON_METER", "Nm");
1481 
1482     /** Torque.POUND_FOOT unit type with code 1. */
1483     public static final UnitType TORQUE_POUND_FOOT =
1484             new UnitType(QuantityType.TORQUE, 1, TorqueUnit.POUND_FOOT, "POUND_FOOT", "lb.ft");
1485 
1486     /** Torque.POUND_INCH unit type with code 2. */
1487     public static final UnitType TORQUE_POUND_INCH =
1488             new UnitType(QuantityType.TORQUE, 2, TorqueUnit.POUND_INCH, "POUND_INCH", "lb.in");
1489 
1490     /** Torque.METER_KILOGRAM_FORCE unit type with code 3. */
1491     public static final UnitType TORQUE_METER_KILOGRAM_FORCE =
1492             new UnitType(QuantityType.TORQUE, 3, TorqueUnit.METER_KILOGRAM_FORCE, "METER_KILOGRAM_FORCE", "m.kgf");
1493 
1494     /* ==================================================== VOLUME ===================================================== */
1495 
1496     /** Volume.CUBIC_METER unit type with code 0. */
1497     public static final UnitType VOLUME_CUBIC_METER =
1498             new UnitType(QuantityType.VOLUME, 0, VolumeUnit.CUBIC_METER, "CUBIC_METER", "m3");
1499 
1500     /** Volume.CUBIC_ATTOMETER unit type with code 1. */
1501     public static final UnitType VOLUME_CUBIC_ATTOMETER =
1502             new UnitType(QuantityType.VOLUME, 1, VolumeUnit.BASE.getUnitByAbbreviation("am^3"), "CUBIC_ATTOMETER", "am3");
1503 
1504     /** Volume.CUBIC_FEMTOMETER unit type with code 2. */
1505     public static final UnitType VOLUME_CUBIC_FEMTOMETER =
1506             new UnitType(QuantityType.VOLUME, 2, VolumeUnit.BASE.getUnitByAbbreviation("fm^3"), "CUBIC_FEMTOMETER", "fm3");
1507 
1508     /** Volume.CUBIC_PICOMETER unit type with code 3. */
1509     public static final UnitType VOLUME_CUBIC_PICOMETER =
1510             new UnitType(QuantityType.VOLUME, 3, VolumeUnit.BASE.getUnitByAbbreviation("pm^3"), "CUBIC_PICOMETER", "pm3");
1511 
1512     /** Volume.CUBIC_NANOMETER unit type with code 4. */
1513     public static final UnitType VOLUME_CUBIC_NANOMETER =
1514             new UnitType(QuantityType.VOLUME, 4, VolumeUnit.BASE.getUnitByAbbreviation("nm^3"), "CUBIC_NANOMETER", "nm3");
1515 
1516     /** Volume.CUBIC_MICROMETER unit type with code 5. */
1517     public static final UnitType VOLUME_CUBIC_MICROMETER =
1518             new UnitType(QuantityType.VOLUME, 5, VolumeUnit.BASE.getUnitByAbbreviation("μm^3"), "CUBIC_MICROMETER", "μm3");
1519 
1520     /** Volume.CUBIC_MILLIMETER unit type with code 6. */
1521     public static final UnitType VOLUME_CUBIC_MILLIMETER =
1522             new UnitType(QuantityType.VOLUME, 6, VolumeUnit.CUBIC_MILLIMETER, "CUBIC_MILLIMETER", "mm3");
1523 
1524     /** Volume.CUBIC_CENTIMETER unit type with code 7. */
1525     public static final UnitType VOLUME_CUBIC_CENTIMETER =
1526             new UnitType(QuantityType.VOLUME, 7, VolumeUnit.CUBIC_CENTIMETER, "CUBIC_CENTIMETER", "cm3");
1527 
1528     /** Volume.CUBIC_DECIMETER unit type with code 8. */
1529     public static final UnitType VOLUME_CUBIC_DECIMETER =
1530             new UnitType(QuantityType.VOLUME, 8, VolumeUnit.CUBIC_DECIMETER, "CUBIC_DECIMETER", "dm3");
1531 
1532     /** Volume.CUBIC_DEKAMETER unit type with code 9. */
1533     public static final UnitType VOLUME_CUBIC_DEKAMETER =
1534             new UnitType(QuantityType.VOLUME, 9, VolumeUnit.BASE.getUnitByAbbreviation("dam^3"), "CUBIC_DEKAMETER", "dam3");
1535 
1536     /** Volume.CUBIC_HECTOMETER unit type with code 10. */
1537     public static final UnitType VOLUME_CUBIC_HECTOMETER =
1538             new UnitType(QuantityType.VOLUME, 10, VolumeUnit.CUBIC_HECTOMETER, "CUBIC_HECTOMETER", "hm3");
1539 
1540     /** Volume.CUBIC_KILOMETER unit type with code 11. */
1541     public static final UnitType VOLUME_CUBIC_KILOMETER =
1542             new UnitType(QuantityType.VOLUME, 11, VolumeUnit.CUBIC_KILOMETER, "CUBIC_KILOMETER", "km3");
1543 
1544     /** Volume.CUBIC_MEGAMETER unit type with code 12. */
1545     public static final UnitType VOLUME_CUBIC_MEGAMETER =
1546             new UnitType(QuantityType.VOLUME, 12, VolumeUnit.BASE.getUnitByAbbreviation("Mm^3"), "CUBIC_MEGAMETER", "Mm3");
1547 
1548     /** Volume.CUBIC_INCH unit type with code 13. */
1549     public static final UnitType VOLUME_CUBIC_INCH =
1550             new UnitType(QuantityType.VOLUME, 13, VolumeUnit.CUBIC_INCH, "CUBIC_INCH", "in3");
1551 
1552     /** Volume.CUBIC_FOOT unit type with code 14. */
1553     public static final UnitType VOLUME_CUBIC_FOOT =
1554             new UnitType(QuantityType.VOLUME, 14, VolumeUnit.CUBIC_FOOT, "CUBIC_FOOT", "ft3");
1555 
1556     /** Volume.CUBIC_YARD unit type with code 15. */
1557     public static final UnitType VOLUME_CUBIC_YARD =
1558             new UnitType(QuantityType.VOLUME, 15, VolumeUnit.CUBIC_YARD, "CUBIC_YARD", "yd3");
1559 
1560     /** Volume.CUBIC_MILE unit type with code 16. */
1561     public static final UnitType VOLUME_CUBIC_MILE =
1562             new UnitType(QuantityType.VOLUME, 16, VolumeUnit.CUBIC_MILE, "CUBIC_MILE", "mi3");
1563 
1564     /** Volume.LITER unit type with code 17. */
1565     public static final UnitType VOLUME_LITER = new UnitType(QuantityType.VOLUME, 17, VolumeUnit.LITER, "LITER", "l");
1566 
1567     /** Volume.GALLON_IMP unit type with code 18. */
1568     public static final UnitType VOLUME_GALLON_IMP =
1569             new UnitType(QuantityType.VOLUME, 18, VolumeUnit.GALLON_IMP, "GALLON_IMP", "gal (imp)");
1570 
1571     /** Volume.GALLON_US_FLUID unit type with code 19. */
1572     public static final UnitType VOLUME_GALLON_US_FLUID =
1573             new UnitType(QuantityType.VOLUME, 19, VolumeUnit.GALLON_US, "GALLON_US_FLUID", "gal (US)");
1574 
1575     /** Volume.OUNCE_IMP_FLUID unit type with code 20. */
1576     public static final UnitType VOLUME_OUNCE_IMP_FLUID =
1577             new UnitType(QuantityType.VOLUME, 20, VolumeUnit.FLUID_OUNCE_IMP, "OUNCE_IMP_FLUID", "oz (imp)");
1578 
1579     /** Volume.OUNCE_US_FLUID unit type with code 21. */
1580     public static final UnitType VOLUME_OUNCE_US_FLUID =
1581             new UnitType(QuantityType.VOLUME, 21, VolumeUnit.FLUID_OUNCE_US, "OUNCE_US_FLUID", "oz (US)");
1582 
1583     /** Volume.PINT_IMP unit type with code 22. */
1584     public static final UnitType VOLUME_PINT_IMP =
1585             new UnitType(QuantityType.VOLUME, 22, VolumeUnit.PINT_IMP, "PINT_IMP", "pt (imp)");
1586 
1587     /** Volume.PINT_US_FLUID unit type with code 23. */
1588     public static final UnitType VOLUME_PINT_US_FLUID =
1589             new UnitType(QuantityType.VOLUME, 23, VolumeUnit.PINT_US, "PINT_US_FLUID", "pt (US)");
1590 
1591     /** Volume.QUART_IMP unit type with code 24. */
1592     public static final UnitType VOLUME_QUART_IMP =
1593             new UnitType(QuantityType.VOLUME, 24, VolumeUnit.QUART_IMP, "QUART_IMP", "qt (imp)");
1594 
1595     /** Volume.QUART_US_FLUID unit type with code 25. */
1596     public static final UnitType VOLUME_QUART_US_FLUID =
1597             new UnitType(QuantityType.VOLUME, 25, VolumeUnit.QUART_US, "QUART_US_FLUID", "qt (US)");
1598 
1599     /** Volume.CUBIC_PARSEC unit type with code 26. */
1600     public static final UnitType VOLUME_CUBIC_PARSEC =
1601             new UnitType(QuantityType.VOLUME, 26, VolumeUnit.CUBIC_PARSEC, "CUBIC_PARSEC", "pc3");
1602 
1603     /** Volume.CUBIC_LIGHTYEAR unit type with code 27. */
1604     public static final UnitType VOLUME_CUBIC_LIGHTYEAR =
1605             new UnitType(QuantityType.VOLUME, 27, VolumeUnit.CUBIC_LIGHTYEAR, "CUBIC_LIGHTYEAR", "ly3");
1606 
1607     /* ================================================= ABSORBEDDOSE ================================================== */
1608 
1609     /** AbsorbedDose.GRAY unit type with code 0. */
1610     public static final UnitType ABSORBEDDOSE_GRAY =
1611             new UnitType(QuantityType.ABSORBEDDOSE, 0, AbsorbedDoseUnit.GRAY, "GRAY", "Gy");
1612 
1613     /** AbsorbedDose.MILLIGRAY unit type with code 1. */
1614     public static final UnitType ABSORBEDDOSE_MILLIGRAY =
1615             new UnitType(QuantityType.ABSORBEDDOSE, 1, AbsorbedDoseUnit.MILLIGRAY, "MILLIGRAY", "mGy");
1616 
1617     /** AbsorbedDose.MICROGRAY unit type with code 2. */
1618     public static final UnitType ABSORBEDDOSE_MICROGRAY =
1619             new UnitType(QuantityType.ABSORBEDDOSE, 2, AbsorbedDoseUnit.MICROGRAY, "MICROGRAY", "μGy");
1620 
1621     /** AbsorbedDose.ERG_PER_GRAM unit type with code 3. */
1622     public static final UnitType ABSORBEDDOSE_ERG_PER_GRAM =
1623             new UnitType(QuantityType.ABSORBEDDOSE, 3, AbsorbedDoseUnit.ERG_PER_GRAM, "ERG_PER_GRAM", "erg/g");
1624 
1625     /** AbsorbedDose.RAD unit type with code 4. */
1626     public static final UnitType ABSORBEDDOSE_RAD =
1627             new UnitType(QuantityType.ABSORBEDDOSE, 4, AbsorbedDoseUnit.RAD, "RAD", "rad");
1628 
1629     /* =============================================== AMOUNTOFSUBSTANCE =============================================== */
1630 
1631     /** AmountOfSubstance.MOLE unit type with code 0. */
1632     public static final UnitType AMOUNTOFSUBSTANCE_MOLE =
1633             new UnitType(QuantityType.AMOUNTOFSUBSTANCE, 0, AmountOfSubstanceUnit.MOLE, "MOLE", "mol");
1634 
1635     /** AmountOfSubstance.MILLIMOLE unit type with code 1. */
1636     public static final UnitType AMOUNTOFSUBSTANCE_MILLIMOLE =
1637             new UnitType(QuantityType.AMOUNTOFSUBSTANCE, 1, AmountOfSubstanceUnit.MILLIMOLE, "MILLIMOLE", "mmol");
1638 
1639     /** AmountOfSubstance.MICROMOLE unit type with code 2. */
1640     public static final UnitType AMOUNTOFSUBSTANCE_MICROMOLE =
1641             new UnitType(QuantityType.AMOUNTOFSUBSTANCE, 2, AmountOfSubstanceUnit.MICROMOLE, "MICROMOLE", "μmol");
1642 
1643     /** AmountOfSubstance.NANOMOLE unit type with code 3. */
1644     public static final UnitType AMOUNTOFSUBSTANCE_NANOMOLE =
1645             new UnitType(QuantityType.AMOUNTOFSUBSTANCE, 3, AmountOfSubstanceUnit.NANOMOLE, "NANOMOLE", "nmol");
1646 
1647     /* ================================================ CATALYTICACTIVITY ============================================== */
1648 
1649     /** CatalyticActivity.KATAL unit type with code 0. */
1650     public static final UnitType CATALYTICACTIVITY_KATAL =
1651             new UnitType(QuantityType.CATALYTICACTIVITY, 0, CatalyticActivityUnit.KATAL, "KATAL", "kat");
1652 
1653     /** CatalyticActivity.MILLIKATAL unit type with code 1. */
1654     public static final UnitType CATALYTICACTIVITY_MILLIKATAL =
1655             new UnitType(QuantityType.CATALYTICACTIVITY, 1, CatalyticActivityUnit.MILLIKATAL, "MILLIKATAL", "mkat");
1656 
1657     /** CatalyticActivity.MICROKATAL unit type with code 2. */
1658     public static final UnitType CATALYTICACTIVITY_MICROKATAL =
1659             new UnitType(QuantityType.CATALYTICACTIVITY, 2, CatalyticActivityUnit.MICROKATAL, "MICROKATAL", "μkat");
1660 
1661     /** CatalyticActivity.NANOKATAL unit type with code 3. */
1662     public static final UnitType CATALYTICACTIVITY_NANOKATAL =
1663             new UnitType(QuantityType.CATALYTICACTIVITY, 3, CatalyticActivityUnit.NANOKATAL, "NANOKATAL", "nkat");
1664 
1665     /* ============================================= ELECTRICALCAPACITANCE ============================================= */
1666 
1667     /** ElectricalCapacitance.FARAD unit type with code 0. */
1668     public static final UnitType ELECTRICALCAPACITANCE_FARAD =
1669             new UnitType(QuantityType.ELECTRICALCAPACITANCE, 0, ElectricalCapacitanceUnit.FARAD, "FARAD", "F");
1670 
1671     /** ElectricalCapacitance.MILLIFARAD unit type with code 1. */
1672     public static final UnitType ELECTRICALCAPACITANCE_MILLIFARAD =
1673             new UnitType(QuantityType.ELECTRICALCAPACITANCE, 1, ElectricalCapacitanceUnit.MILLIFARAD, "MILLIFARAD", "mF");
1674 
1675     /** ElectricalCapacitance.MICROFARAD unit type with code 2. */
1676     public static final UnitType ELECTRICALCAPACITANCE_MICROFARAD =
1677             new UnitType(QuantityType.ELECTRICALCAPACITANCE, 2, ElectricalCapacitanceUnit.MICROFARAD, "MICROFARAD", "uF");
1678 
1679     /** ElectricalCapacitance.NANOFARAD unit type with code 3. */
1680     public static final UnitType ELECTRICALCAPACITANCE_NANOFARAD =
1681             new UnitType(QuantityType.ELECTRICALCAPACITANCE, 3, ElectricalCapacitanceUnit.NANOFARAD, "NANOFARAD", "nF");
1682 
1683     /** ElectricalCapacitance.PICOFARAD unit type with code 4. */
1684     public static final UnitType ELECTRICALCAPACITANCE_PICOFARAD =
1685             new UnitType(QuantityType.ELECTRICALCAPACITANCE, 4, ElectricalCapacitanceUnit.PICOFARAD, "PICOFARAD", "pF");
1686 
1687     /* ============================================= ELECTRICALCONDUCTANCE ============================================= */
1688 
1689     /** ElectricalConductance.SIEMENS unit type with code 0. */
1690     public static final UnitType ELECTRICALCONDUCTANCE_SIEMENS =
1691             new UnitType(QuantityType.ELECTRICALCONDUCTANCE, 0, ElectricalConductanceUnit.SIEMENS, "SIEMENS", "F");
1692 
1693     /** ElectricalConductance.MILLISIEMENS unit type with code 1. */
1694     public static final UnitType ELECTRICALCONDUCTANCE_MILLISIEMENS =
1695             new UnitType(QuantityType.ELECTRICALCONDUCTANCE, 1, ElectricalConductanceUnit.MILLISIEMENS, "MILLISIEMENS", "mS");
1696 
1697     /** ElectricalConductance.MICROSIEMENS unit type with code 2. */
1698     public static final UnitType ELECTRICALCONDUCTANCE_MICROSIEMENS =
1699             new UnitType(QuantityType.ELECTRICALCONDUCTANCE, 2, ElectricalConductanceUnit.MICROSIEMENS, "MICROSIEMENS", "μS");
1700 
1701     /** ElectricalConductance.NANOSIEMENS unit type with code 3. */
1702     public static final UnitType ELECTRICALCONDUCTANCE_NANOSIEMENS =
1703             new UnitType(QuantityType.ELECTRICALCONDUCTANCE, 3, ElectricalConductanceUnit.NANOSIEMENS, "NANOSIEMENS", "nS");
1704 
1705     /* ============================================= ELECTRICALINDUCTANCE ============================================= */
1706 
1707     /** ElectricalInductance.HENRY unit type with code 0. */
1708     public static final UnitType ELECTRICALINDUCTANCE_HENRY =
1709             new UnitType(QuantityType.ELECTRICALINDUCTANCE, 0, ElectricalInductanceUnit.HENRY, "HENRY", "H");
1710 
1711     /** ElectricalInductance.MILLIHENRY unit type with code 1. */
1712     public static final UnitType ELECTRICALINDUCTANCE_MILLIHENRY =
1713             new UnitType(QuantityType.ELECTRICALINDUCTANCE, 1, ElectricalInductanceUnit.MILLIHENRY, "MILLIHENRY", "mH");
1714 
1715     /** ElectricalInductance.MICROHENRY unit type with code 2. */
1716     public static final UnitType ELECTRICALINDUCTANCE_MICROHENRY =
1717             new UnitType(QuantityType.ELECTRICALINDUCTANCE, 2, ElectricalInductanceUnit.MICROHENRY, "MICROHENRY", "μH");
1718 
1719     /** ElectricalInductance.NANOHENRY unit type with code 3. */
1720     public static final UnitType ELECTRICALINDUCTANCE_NANOHENRY =
1721             new UnitType(QuantityType.ELECTRICALINDUCTANCE, 3, ElectricalInductanceUnit.NANOHENRY, "NANOHENRY", "nH");
1722 
1723     /* ================================================= EQUIVALENTDOSE ================================================ */
1724 
1725     /** EquivalentDose.SIEVERT unit type with code 0. */
1726     public static final UnitType EQUIVALENTDOSE_SIEVERT =
1727             new UnitType(QuantityType.EQUIVALENTDOSE, 0, EquivalentDoseUnit.SIEVERT, "SIEVERT", "Sv");
1728 
1729     /** EquivalentDose.MILLISIEVERT unit type with code 1. */
1730     public static final UnitType EQUIVALENTDOSE_MILLISIEVERT =
1731             new UnitType(QuantityType.EQUIVALENTDOSE, 1, EquivalentDoseUnit.MILLISIEVERT, "MILLISIEVERT", "mSv");
1732 
1733     /** EquivalentDose.MICROSIEVERT unit type with code 2. */
1734     public static final UnitType EQUIVALENTDOSE_MICROSIEVERT =
1735             new UnitType(QuantityType.EQUIVALENTDOSE, 2, EquivalentDoseUnit.MICROSIEVERT, "MICROSIEVERT", "μSv");
1736 
1737     /** EquivalentDose.REM unit type with code 3. */
1738     public static final UnitType EQUIVALENTDOSE_REM =
1739             new UnitType(QuantityType.EQUIVALENTDOSE, 3, EquivalentDoseUnit.REM, "REM", "rem");
1740 
1741     /* ================================================== ILLUMINANCE ================================================== */
1742 
1743     /** Illuminance.LUX unit type with code 0. */
1744     public static final UnitType ILLUMINANCE_LUX = new UnitType(QuantityType.ILLUMINANCE, 0, IlluminanceUnit.LUX, "LUX", "lx");
1745 
1746     /** Illuminance.MILLILUX unit type with code 1. */
1747     public static final UnitType ILLUMINANCE_MILLILUX =
1748             new UnitType(QuantityType.ILLUMINANCE, 1, IlluminanceUnit.MILLILUX, "MILLILUX", "mlx");
1749 
1750     /** Illuminance.MICROLUX unit type with code 2. */
1751     public static final UnitType ILLUMINANCE_MICROLUX =
1752             new UnitType(QuantityType.ILLUMINANCE, 2, IlluminanceUnit.MICROLUX, "MICROLUX", "μlx");
1753 
1754     /** Illuminance.KILOLUX unit type with code 3. */
1755     public static final UnitType ILLUMINANCE_KILOLUX =
1756             new UnitType(QuantityType.ILLUMINANCE, 3, IlluminanceUnit.KILOLUX, "KILOLUX", "klux");
1757 
1758     /** Illuminance.PHOT unit type with code 4. */
1759     public static final UnitType ILLUMINANCE_PHOT =
1760             new UnitType(QuantityType.ILLUMINANCE, 4, IlluminanceUnit.PHOT, "PHOT", "ph");
1761 
1762     /** Illuminance.NOX unit type with code 5. */
1763     public static final UnitType ILLUMINANCE_NOX = new UnitType(QuantityType.ILLUMINANCE, 5, IlluminanceUnit.NOX, "NOX", "nx");
1764 
1765     /* ================================================= LUMINOUSFLUX ================================================== */
1766 
1767     /** LuminousFlux.LUMEN unit type with code 0. */
1768     public static final UnitType LUMINOUSFLUX_LUMEN =
1769             new UnitType(QuantityType.LUMINOUSFLUX, 0, LuminousFluxUnit.LUMEN, "LUMEN", "lm");
1770 
1771     /* ============================================== LUMINOUSINTENSITY ================================================ */
1772 
1773     /** LuminousIntensity.CANDELA unit type with code 0. */
1774     public static final UnitType LUMINOUSINTENSITY_CANDELA =
1775             new UnitType(QuantityType.LUMINOUSINTENSITY, 0, LuminousIntensityUnit.CANDELA, "CANDELA", "cd");
1776 
1777     /* ============================================= MAGNETICFLUXDENSITY =============================================== */
1778 
1779     /** MagneticFluxDensity.TESLA unit type with code 0. */
1780     public static final UnitType MAGNETICFLUXDENSITY_TESLA =
1781             new UnitType(QuantityType.MAGNETICFLUXDENSITY, 0, MagneticFluxDensityUnit.TESLA, "TESLA", "T");
1782 
1783     /** MagneticFluxDensity.MILLITESLA unit type with code 1. */
1784     public static final UnitType MAGNETICFLUXDENSITY_MILLITESLA =
1785             new UnitType(QuantityType.MAGNETICFLUXDENSITY, 1, MagneticFluxDensityUnit.MILLITESLA, "MILLITESLA", "mT");
1786 
1787     /** MagneticFluxDensity.MICROTESLA unit type with code 2. */
1788     public static final UnitType MAGNETICFLUXDENSITY_MICROTESLA =
1789             new UnitType(QuantityType.MAGNETICFLUXDENSITY, 2, MagneticFluxDensityUnit.MICROTESLA, "MICROTESLA", "μT");
1790 
1791     /** MagneticFluxDensity.NANOTESLA unit type with code 3. */
1792     public static final UnitType MAGNETICFLUXDENSITY_NANOTESLA =
1793             new UnitType(QuantityType.MAGNETICFLUXDENSITY, 3, MagneticFluxDensityUnit.NANOTESLA, "NANOTESLA", "nT");
1794 
1795     /** MagneticFluxDensity.GAUSS unit type with code 4. */
1796     public static final UnitType MAGNETICFLUXDENSITY_GAUSS =
1797             new UnitType(QuantityType.MAGNETICFLUXDENSITY, 4, MagneticFluxDensityUnit.GAUSS, "GAUSS", "G");
1798 
1799     /* ================================================ MAGNETICFLUX =================================================== */
1800 
1801     /** MagneticFlux.WEBER unit type with code 0. */
1802     public static final UnitType MAGNETICFLUX_WEBER =
1803             new UnitType(QuantityType.MAGNETICFLUX, 0, MagneticFluxUnit.WEBER, "WEBER", "Wb");
1804 
1805     /** MagneticFlux.MILLIWEBER unit type with code 1. */
1806     public static final UnitType MAGNETICFLUX_MILLIWEBER =
1807             new UnitType(QuantityType.MAGNETICFLUX, 1, MagneticFluxUnit.MILLIWEBER, "MILLIWEBER", "mWb");
1808 
1809     /** MagneticFlux.MICROWEBER unit type with code 2. */
1810     public static final UnitType MAGNETICFLUX_MICROWEBER =
1811             new UnitType(QuantityType.MAGNETICFLUX, 2, MagneticFluxUnit.MICROWEBER, "MICROWEBER", "μWb");
1812 
1813     /** MagneticFlux.NANOWEBER unit type with code 3. */
1814     public static final UnitType MAGNETICFLUX_NANOWEBER =
1815             new UnitType(QuantityType.MAGNETICFLUX, 3, MagneticFluxUnit.NANOWEBER, "NANOWEBER", "nWb");
1816 
1817     /** MagneticFlux.MAXWELL unit type with code 4. */
1818     public static final UnitType MAGNETICFLUX_MAXWELL =
1819             new UnitType(QuantityType.MAGNETICFLUX, 4, MagneticFluxUnit.MAXWELL, "MAXWELL", "Mx");
1820 
1821     /* ================================================ RADIOACTIVITY ================================================== */
1822 
1823     /** RadioActivity.BECQUEREL unit type with code 0. */
1824     public static final UnitType RADIOACTIVITY_BECQUEREL =
1825             new UnitType(QuantityType.RADIOACTIVITY, 0, RadioActivityUnit.BECQUEREL, "BECQUEREL", "Bq");
1826 
1827     /** RadioActivity.KILOBECQUEREL unit type with code 1. */
1828     public static final UnitType RADIOACTIVITY_KILOBECQUEREL =
1829             new UnitType(QuantityType.RADIOACTIVITY, 1, RadioActivityUnit.KILOBECQUEREL, "KILOBECQUEREL", "kBq");
1830 
1831     /** RadioActivity.MEGABECQUEREL unit type with code 2. */
1832     public static final UnitType RADIOACTIVITY_MEGABECQUEREL =
1833             new UnitType(QuantityType.RADIOACTIVITY, 2, RadioActivityUnit.MEGABECQUEREL, "MEGABECQUEREL", "MBq");
1834 
1835     /** RadioActivity.GIGABECQUEREL unit type with code 3. */
1836     public static final UnitType RADIOACTIVITY_GIGABECQUEREL =
1837             new UnitType(QuantityType.RADIOACTIVITY, 3, RadioActivityUnit.GIGABECQUEREL, "GIGABECQUEREL", "GBq");
1838 
1839     /** RadioActivity.TERABECQUEREL unit type with code 4. */
1840     public static final UnitType RADIOACTIVITY_TERABECQUEREL =
1841             new UnitType(QuantityType.RADIOACTIVITY, 4, RadioActivityUnit.TERABECQUEREL, "TERABECQUEREL", "TBq");
1842 
1843     /** RadioActivity.PETABECQUEREL unit type with code 5. */
1844     public static final UnitType RADIOACTIVITY_PETABECQUEREL =
1845             new UnitType(QuantityType.RADIOACTIVITY, 5, RadioActivityUnit.PETABECQUEREL, "PETABECQUEREL", "PBq");
1846 
1847     /** RadioActivity.CURIE unit type with code 6. */
1848     public static final UnitType RADIOACTIVITY_CURIE =
1849             new UnitType(QuantityType.RADIOACTIVITY, 6, RadioActivityUnit.CURIE, "CURIE", "Ci");
1850 
1851     /** RadioActivity.MILLICURIE unit type with code 7. */
1852     public static final UnitType RADIOACTIVITY_MILLICURIE =
1853             new UnitType(QuantityType.RADIOACTIVITY, 7, RadioActivityUnit.MILLICURIE, "MILLICURIE", "mCi");
1854 
1855     /** RadioActivity.MICROCURIE unit type with code 8. */
1856     public static final UnitType RADIOACTIVITY_MICROCURIE =
1857             new UnitType(QuantityType.RADIOACTIVITY, 8, RadioActivityUnit.MICROCURIE, "MICROCURIE", "μCi");
1858 
1859     /** RadioActivity.NANOCURIE unit type with code 9. */
1860     public static final UnitType RADIOACTIVITY_NANOCURIE =
1861             new UnitType(QuantityType.RADIOACTIVITY, 9, RadioActivityUnit.NANOCURIE, "NANOCURIE", "nCi");
1862 
1863     /** RadioActivity.RUTHERFORD unit type with code 10. */
1864     public static final UnitType RADIOACTIVITY_RUTHERFORD =
1865             new UnitType(QuantityType.RADIOACTIVITY, 10, RadioActivityUnit.RUTHERFORD, "RUTHERFORD", "Rd");
1866 
1867     /* ============================================= ANGULARACCELERATION =============================================== */
1868 
1869     /** AngularAcceleration.RADIAN_PER_SECOND_2 unit type with code 0. */
1870     public static final UnitType ANGULARACCELERATION_RADIAN_PER_SECOND_2 = new UnitType(QuantityType.ANGULARACCELERATION, 0,
1871             AngularAccelerationUnit.RADIAN_PER_SECOND_SQUARED, "RADIAN_PER_SECOND_SQUARED", "rad/s2");
1872 
1873     /** AngularAcceleration.DEGREE_PER_SECOND_2 unit type with code 1. */
1874     public static final UnitType ANGULARACCELERATION_DEGREE_PER_SECOND_2 = new UnitType(QuantityType.ANGULARACCELERATION, 1,
1875             AngularAccelerationUnit.DEGREE_PER_SECOND_SQUARED, "DEGREE_PER_SECOND_SQUARED", "deg/s2");
1876 
1877     /** AngularAcceleration.ARCMINUTE_PER_SECOND_2 unit type with code 2. */
1878     public static final UnitType ANGULARACCELERATION_ARCMINUTE_PER_SECOND_2 = new UnitType(QuantityType.ANGULARACCELERATION, 2,
1879             AngularAccelerationUnit.ARCMINUTE_PER_SECOND_SQUARED, "ARCMINUTE_PER_SECOND_SQUARED", "arcmin/s2");
1880 
1881     /** AngularAcceleration.ARCSECOND_PER_SECOND_2 unit type with code 3. */
1882     public static final UnitType ANGULARACCELERATION_ARCSECOND_PER_SECOND_2 = new UnitType(QuantityType.ANGULARACCELERATION, 3,
1883             AngularAccelerationUnit.ARCSECOND_PER_SECOND_SQUARED, "ARCSECOND_PER_SECOND_SQUARED", "arcsec/s2");
1884 
1885     /** AngularAcceleration.GRAD_PER_SECOND_2 unit type with code 4. */
1886     public static final UnitType ANGULARACCELERATION_GRAD_PER_SECOND_2 = new UnitType(QuantityType.ANGULARACCELERATION, 4,
1887             AngularAccelerationUnit.GRAD_PER_SECOND_SQUARED, "GRAD_PER_SECOND_SQUARED", "grad/s2");
1888 
1889     /** AngularAcceleration.CENTESIMAL_ARCMINUTE_PER_SECOND_SQUARED unit type with code 5. */
1890     public static final UnitType ANGULARACCELERATION_CENTECIMAL_ARCMINUTE_PER_SECOND_2 =
1891             new UnitType(QuantityType.ANGULARACCELERATION, 5, AngularAccelerationUnit.CENTESIMAL_ARCSECOND_PER_SECOND_SQUARED,
1892                     "CENTECIMALARCMINUTE_PER_SECOND_SQUARED", "cdm/s2");
1893 
1894     /** AngularAcceleration.CENTESIMAL_ARCSECOND_PER_SECOND_SQUARED unit type with code 6. */
1895     public static final UnitType ANGULARACCELERATION_CENTESIMAL_ARCSECOND_PER_SECOND_2 =
1896             new UnitType(QuantityType.ANGULARACCELERATION, 6, AngularAccelerationUnit.CENTESIMAL_ARCSECOND_PER_SECOND_SQUARED,
1897                     "CENTESIMAL_ARCSECOND_PER_SECOND_SQUARED", "cds/s2");
1898 
1899     /* =============================================== ANGULARVELOCITY ================================================= */
1900 
1901     /** AngularVelocity.RADIAN_PER_SECOND unit type with code 0. */
1902     public static final UnitType ANGULARVELOCITY_RADIAN_PER_SECOND = new UnitType(QuantityType.ANGULARACCELERATION, 0,
1903             AngularVelocityUnit.RADIAN_PER_SECOND, "RADIAN_PER_SECOND", "rad/s");
1904 
1905     /** AngularVelocity.DEGREE_PER_SECOND unit type with code 1. */
1906     public static final UnitType ANGULARVELOCITY_DEGREE_PER_SECOND = new UnitType(QuantityType.ANGULARACCELERATION, 1,
1907             AngularVelocityUnit.DEGREE_PER_SECOND, "DEGREE_PER_SECOND", "deg/s");
1908 
1909     /** AngularVelocity.ARCMINUTE_PER_SECOND unit type with code 2. */
1910     public static final UnitType ANGULARVELOCITY_ARCMINUTE_PER_SECOND = new UnitType(QuantityType.ANGULARACCELERATION, 2,
1911             AngularVelocityUnit.ARCMINUTE_PER_SECOND, "ARCMINUTE_PER_SECOND", "arcmin/s");
1912 
1913     /** AngularVelocity.ARCSECOND_PER_SECOND unit type with code 3. */
1914     public static final UnitType ANGULARVELOCITY_ARCSECOND_PER_SECOND = new UnitType(QuantityType.ANGULARACCELERATION, 3,
1915             AngularVelocityUnit.ARCSECOND_PER_SECOND, "ARCSECOND_PER_SECOND", "arcsec/s");
1916 
1917     /** AngularVelocity.GRAD_PER_SECOND unit type with code 4. */
1918     public static final UnitType ANGULARVELOCITY_GRAD_PER_SECOND =
1919             new UnitType(QuantityType.ANGULARACCELERATION, 4, AngularVelocityUnit.GRAD_PER_SECOND, "GRAD_PER_SECOND", "grad/s");
1920 
1921     /** AngularVelocity.CENTESIMAL_ARCMINUTE_PER_SECOND unit type with code 5. */
1922     public static final UnitType ANGULARVELOCITY_CENTECIMAL_ARCMINUTE_PER_SECOND =
1923             new UnitType(QuantityType.ANGULARACCELERATION, 5, AngularVelocityUnit.CENTESIMAL_ARCSECOND_PER_SECOND,
1924                     "CENTECIMALARCMINUTE_PER_SECOND", "cdm/s");
1925 
1926     /** AngularVelocity.CENTESIMAL_ARCSECOND_PER_SECOND unit type with code 6. */
1927     public static final UnitType ANGULARVELOCITY_CENTESIMAL_ARCSECOND_PER_SECOND =
1928             new UnitType(QuantityType.ANGULARACCELERATION, 6, AngularVelocityUnit.CENTESIMAL_ARCSECOND_PER_SECOND,
1929                     "CENTESIMAL_ARCSECOND_PER_SECOND", "cds/s");
1930 
1931     /* ================================================== MOMENTUM ===================================================== */
1932 
1933     /** Momentum.KILOGRAM_METER_PER_SECOND unit type with code 0. */
1934     public static final UnitType KILOGRAM_METER_PER_SECOND = new UnitType(QuantityType.ANGULARACCELERATION, 0,
1935             MomentumUnit.KILOGRAM_METER_PER_SECOND, "KILOGRAM_METER_PER_SECOND", "kgm/s");
1936 
1937     /* ================================================== END TYPES ==================================================== */
1938 
1939     /**
1940      * @param unitType the corresponding 0MQ unit type
1941      * @param code the code of the unit provided as an int
1942      * @param djunitsType the djunits data type
1943      * @param name the unit name
1944      * @param abbreviation the unit abbreviation
1945      * @param <U> the unit
1946      */
1947     public <U extends Unit<U>> UnitType(final QuantityType unitType, final int code, final U djunitsType, final String name,
1948             final String abbreviation)
1949     {
1950         Throw.whenNull(unitType, "unitType should not be null");
1951         Throw.whenNull(djunitsType, "djunitsType should not be null");
1952         Throw.whenNull(name, "name should not be null");
1953         Throw.whenNull(abbreviation, "abbreviation should not be null");
1954         Throw.when(name.length() == 0, SerializationRuntimeException.class, "name should not be empty");
1955         Throw.when(abbreviation.length() == 0, SerializationRuntimeException.class, "abbreviation should not be empty");
1956 
1957         this.unitType = unitType;
1958         this.code = code;
1959         this.djunitsType = djunitsType;
1960         this.name = name;
1961         this.abbreviation = abbreviation;
1962         Map<Integer, UnitType> codeMap = codeDisplayTypeMap.get(this.unitType);
1963         if (codeMap == null)
1964         {
1965             codeMap = new HashMap<>();
1966             codeDisplayTypeMap.put(this.unitType, codeMap);
1967         }
1968         codeMap.put(this.code, this);
1969         djunitsDisplayTypeMap.put(this.djunitsType, this);
1970     }
1971 
1972     /**
1973      * Return the display type belonging to the display code.
1974      * @param unitType the unit type to search for
1975      * @param code the code to search for.
1976      * @return the unit type, or null if not found.
1977      */
1978     public static UnitType getDisplayType(final QuantityType unitType, final Integer code)
1979     {
1980         Map<Integer, UnitType> byteMap = codeDisplayTypeMap.get(unitType);
1981         return byteMap == null ? null : byteMap.get(code);
1982     }
1983 
1984     /**
1985      * Return the display type belonging to the display code.
1986      * @param unitTypeCode the unit type to search for
1987      * @param code the code to search for.
1988      * @return the unit type, or null if not found.
1989      */
1990     public static UnitType getDisplayType(final byte unitTypeCode, final int code)
1991     {
1992         QuantityType unitType = QuantityType.getUnitType(unitTypeCode);
1993         Map<Integer, UnitType> codeMap = codeDisplayTypeMap.get(unitType);
1994         return codeMap == null ? null : codeMap.get(code);
1995     }
1996 
1997     /**
1998      * Return the unit belonging to the display code.
1999      * @param unitTypeCode the unit type to search for
2000      * @param code the code to search for.
2001      * @return the unit type, or null if not found.
2002      */
2003     public static Unit<?> getUnit(final byte unitTypeCode, final int code)
2004     {
2005         QuantityType unitType = QuantityType.getUnitType(unitTypeCode);
2006         Map<Integer, UnitType> codeMap = codeDisplayTypeMap.get(unitType);
2007         return codeMap == null ? null : codeMap.get(code) == null ? null : codeMap.get(code).djunitsType;
2008     }
2009 
2010     /**
2011      * Return the unit belonging to the display code.
2012      * @param unitType the unit type to search for
2013      * @param code the code to search for.
2014      * @return the unit type, or null if not found.
2015      */
2016     public static Unit<?> getUnit(final QuantityType unitType, final int code)
2017     {
2018         Map<Integer, UnitType> codeMap = codeDisplayTypeMap.get(unitType);
2019         return codeMap == null ? null : codeMap.get(code) == null ? null : codeMap.get(code).djunitsType;
2020     }
2021 
2022     /**
2023      * @return unitType
2024      */
2025     public QuantityType getUnitType()
2026     {
2027         return this.unitType;
2028     }
2029 
2030     /**
2031      * Return the unit type belonging to the unit class.
2032      * @param unit the unit to search for.
2033      * @return the unit type, or null if not found.
2034      * @param <U> the unit
2035      */
2036     public static <U extends Unit<U>> UnitType getDisplayType(final U unit)
2037     {
2038         return djunitsDisplayTypeMap.get(unit);
2039     }
2040 
2041     /**
2042      * Return the display code belonging to the unit class.
2043      * @param unit the unit to search for.
2044      * @return the unit type, or null if not found.
2045      * @param <U> the unit
2046      */
2047     public static <U extends Unit<U>> int getIntCode(final U unit)
2048     {
2049         QuantityType type = QuantityType.getUnitType(unit);
2050         UnitType displayType = type == null ? null : getDisplayType(unit);
2051         return displayType == null ? null : displayType.getIntCode();
2052     }
2053 
2054     /**
2055      * Return the display code belonging to the unit class.
2056      * @param unit the unit to search for.
2057      * @return the unit type, or null if not found.
2058      * @param <U> the unit
2059      */
2060     public static <U extends Unit<U>> byte getByteCode(final U unit)
2061     {
2062         QuantityType type = QuantityType.getUnitType(unit);
2063         UnitType displayType = type == null ? null : getDisplayType(unit);
2064         return displayType == null ? null : displayType.getByteCode();
2065     }
2066 
2067     /**
2068      * @return code
2069      */
2070     public final int getIntCode()
2071     {
2072         return this.code;
2073     }
2074 
2075     /**
2076      * @return code
2077      */
2078     public final byte getByteCode()
2079     {
2080         return (byte) (this.code & 0xFF);
2081     }
2082 
2083     /**
2084      * @return djunitsType
2085      */
2086     public final Unit<?> getDjunitsType()
2087     {
2088         return this.djunitsType;
2089     }
2090 
2091     /**
2092      * @return name
2093      */
2094     public final String getName()
2095     {
2096         return this.name;
2097     }
2098 
2099     /**
2100      * @return abbreviation
2101      */
2102     public final String getAbbreviation()
2103     {
2104         return this.abbreviation;
2105     }
2106 
2107 }