1 package org.djunits.generator;
2
3 import java.lang.reflect.Field;
4 import java.lang.reflect.Modifier;
5
6
7
8
9
10
11
12
13
14
15 public final class GenerateStaticUNITS
16 {
17
18 private static final String[] STANDARD_UNITS = new String[] { "AbsoluteTemperatureUnit", "AccelerationUnit", "AngleUnit",
19 "AreaUnit", "DensityUnit", "DimensionlessUnit", "DirectionUnit", "DurationUnit", "ElectricalChargeUnit",
20 "ElectricalCurrentUnit", "ElectricalPotentialUnit", "ElectricalResistanceUnit", "EnergyUnit", "FlowMassUnit",
21 "FlowVolumeUnit", "ForceUnit", "FrequencyUnit", "LengthUnit", "LinearDensityUnit", "MassUnit", "PositionUnit",
22 "PowerUnit", "PressureUnit", "SolidAngleUnit", "SpeedUnit", "TemperatureUnit", "TimeUnit", "TorqueUnit",
23 "VolumeUnit", "AbsorbedDoseUnit", "AmountOfSubstanceUnit", "CatalyticActivityUnit", "ElectricalCapacitanceUnit",
24 "ElectricalConductanceUnit", "ElectricalInductanceUnit", "EquivalentDoseUnit", "IlluminanceUnit",
25 "LuminousFluxUnit", "LuminousIntensityUnit", "MagneticFluxDensityUnit", "MagneticFluxUnit", "RadioActivityUnit" };
26
27
28
29
30 private GenerateStaticUNITS()
31 {
32
33 }
34
35
36
37
38 public static void main(String[] args)
39 {
40 for (String className : STANDARD_UNITS)
41 {
42 System.out.println();
43 System.out.println(
44 " /****************************************************************************************************************/");
45 String s =
46 " /******************************************************XX********************************************************/";
47 String cs = className.toUpperCase().replace("UNIT", "");
48 int i = cs.length() + 2;
49 cs = (i % 2 == 1) ? cs + " " : cs;
50 i = (i % 2 == 1) ? i + 2 : i;
51 i = i / 2;
52 s = s.replace("********************".substring(0, i - 1) + "X", " " + cs + " ");
53 s = s.replace("X********************".substring(0, i), "");
54 System.out.println(s);
55 System.out.println(
56 " /****************************************************************************************************************/");
57 System.out.println();
58
59 @SuppressWarnings("rawtypes")
60 Class c;
61 try
62 {
63 c = Class.forName("org.djunits.unit." + className);
64 }
65 catch (Exception exception)
66 {
67 System.err.println("Could not find unit " + className);
68 System.exit(-1);
69 return;
70 }
71
72 int l = 0;
73 for (Field f : c.getFields())
74 {
75 if (Modifier.isPublic(f.getModifiers()) && Modifier.isStatic(f.getModifiers())
76 && Modifier.isFinal(f.getModifiers()) && !f.getName().equals("SI")
77 && !f.getName().equals("STANDARD_UNITS"))
78 {
79 String n = f.getName();
80 if (f.getName().contains("ELECTRONVOLT"))
81 {
82 n = cs.trim() + "_" + n;
83 }
84 l = Math.max(l, n.length());
85 }
86 }
87
88 for (Field f : c.getFields())
89 {
90 if (Modifier.isPublic(f.getModifiers()) && Modifier.isStatic(f.getModifiers())
91 && Modifier.isFinal(f.getModifiers()) && !f.getName().equals("SI")
92 && !f.getName().equals("STANDARD_UNITS"))
93 {
94 String n = f.getName();
95 if (f.getName().contains("ELECTRONVOLT"))
96 {
97 n = cs.trim() + "_" + n;
98 }
99
100 if (!n.equals("BASE") && !n.equals("DEFAULT"))
101 {
102 if (c.getSimpleName().equals("AbsoluteTemperatureUnit") || c.getSimpleName().equals("PositionUnit"))
103 n = n + "_ABS";
104 System.out.println(String.format(" %-45s = %s;", c.getSimpleName() + " " + n,
105 c.getSimpleName() + "." + f.getName()));
106 }
107 }
108 }
109 if (className.contains("Dimensionless"))
110 {
111 System.out.println(String.format(" %-45s = %s;", c.getSimpleName() + " UNIT",
112 c.getSimpleName() + ".SI"));
113 }
114 }
115 }
116
117 }