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