1 package org.djunits.unit;
2
3 import static org.djunits.unit.unitsystem.UnitSystem.IMPERIAL;
4 import static org.djunits.unit.unitsystem.UnitSystem.OTHER;
5 import static org.djunits.unit.unitsystem.UnitSystem.SI_DERIVED;
6
7 import org.djunits.unit.unitsystem.UnitSystem;
8
9
10
11
12
13
14
15
16
17
18
19 public class TorqueUnit extends LinearUnit<TorqueUnit>
20 {
21
22 private static final long serialVersionUID = 20140607L;
23
24
25 private final MassUnit massUnit;
26
27
28 private final LengthUnit lengthUnit;
29
30
31 private final DurationUnit durationUnit;
32
33
34 public static final TorqueUnit SI;
35
36
37 public static final TorqueUnit NEWTON_METER;
38
39
40 public static final TorqueUnit METER_KILOGRAM_FORCE;
41
42
43 public static final TorqueUnit POUND_FOOT;
44
45
46 public static final TorqueUnit POUND_INCH;
47
48 static
49 {
50 SI = new TorqueUnit(MassUnit.KILOGRAM, LengthUnit.METER, DurationUnit.SECOND, "TorqueUnit.N.m", SI_DERIVED);
51 NEWTON_METER = SI;
52 METER_KILOGRAM_FORCE = new TorqueUnit(ForceUnit.KILOGRAM_FORCE, LengthUnit.METER, "TorqueUnit.m.kgf", OTHER);
53 POUND_FOOT = new TorqueUnit(ForceUnit.POUND_FORCE, LengthUnit.FOOT, "TorqueUnit.lbf.ft", IMPERIAL);
54 POUND_INCH = new TorqueUnit(ForceUnit.POUND_FORCE, LengthUnit.INCH, "TorqueUnit.lbf.in", IMPERIAL);
55 }
56
57
58
59
60
61
62
63
64
65 private TorqueUnit(final MassUnit massUnit, final LengthUnit lengthUnit, final DurationUnit durationUnit,
66 final String abbreviationKey, final UnitSystem unitSystem)
67 {
68 super(abbreviationKey, unitSystem, NEWTON_METER, massUnit.getScaleFactor() * lengthUnit.getScaleFactor()
69 * lengthUnit.getScaleFactor() / (durationUnit.getScaleFactor() * durationUnit.getScaleFactor()));
70 this.massUnit = massUnit;
71 this.lengthUnit = lengthUnit;
72 this.durationUnit = durationUnit;
73 }
74
75
76
77
78
79
80
81
82
83
84 public TorqueUnit(final MassUnit massUnit, final LengthUnit lengthUnit, final DurationUnit durationUnit, final String name,
85 final String abbreviation, final UnitSystem unitSystem)
86 {
87 super(name, abbreviation, unitSystem, NEWTON_METER, massUnit.getScaleFactor() * lengthUnit.getScaleFactor()
88 * lengthUnit.getScaleFactor() / (durationUnit.getScaleFactor() * durationUnit.getScaleFactor()));
89 this.massUnit = massUnit;
90 this.lengthUnit = lengthUnit;
91 this.durationUnit = durationUnit;
92 }
93
94
95
96
97
98
99
100
101 private TorqueUnit(final ForceUnit forceUnit, final LengthUnit lengthUnit, final String abbreviationKey,
102 final UnitSystem unitSystem)
103 {
104 super(abbreviationKey, unitSystem, NEWTON_METER, forceUnit.getScaleFactor() * lengthUnit.getScaleFactor());
105 this.massUnit = forceUnit.getMassUnit();
106 this.lengthUnit = forceUnit.getLengthUnit();
107 this.durationUnit = forceUnit.getDurationUnit();
108 }
109
110
111
112
113
114
115
116
117
118 public TorqueUnit(final ForceUnit forceUnit, final LengthUnit lengthUnit, final String name, final String abbreviation,
119 final UnitSystem unitSystem)
120 {
121 super(name, abbreviation, unitSystem, NEWTON_METER, forceUnit.getScaleFactor() * lengthUnit.getScaleFactor());
122 this.massUnit = forceUnit.getMassUnit();
123 this.lengthUnit = forceUnit.getLengthUnit();
124 this.durationUnit = forceUnit.getDurationUnit();
125 }
126
127
128
129
130
131
132
133
134
135 private TorqueUnit(final String abbreviationKey, final UnitSystem unitSystem, final TorqueUnit referenceUnit,
136 final double scaleFactorToReferenceUnit)
137 {
138 super(abbreviationKey, unitSystem, referenceUnit, scaleFactorToReferenceUnit);
139 this.massUnit = referenceUnit.getMassUnit();
140 this.lengthUnit = referenceUnit.getLengthUnit();
141 this.durationUnit = referenceUnit.getDurationUnit();
142 }
143
144
145
146
147
148
149
150
151
152
153 public TorqueUnit(final String name, final String abbreviation, final UnitSystem unitSystem, final TorqueUnit referenceUnit,
154 final double scaleFactorToReferenceUnit)
155 {
156 super(name, abbreviation, unitSystem, referenceUnit, scaleFactorToReferenceUnit);
157 this.massUnit = referenceUnit.getMassUnit();
158 this.lengthUnit = referenceUnit.getLengthUnit();
159 this.durationUnit = referenceUnit.getDurationUnit();
160 }
161
162
163
164
165 public final MassUnit getMassUnit()
166 {
167 return this.massUnit;
168 }
169
170
171
172
173 public final LengthUnit getLengthUnit()
174 {
175 return this.lengthUnit;
176 }
177
178
179
180
181 public final DurationUnit getDurationUnit()
182 {
183 return this.durationUnit;
184 }
185
186
187 @Override
188 public final TorqueUnit getStandardUnit()
189 {
190 return NEWTON_METER;
191 }
192
193
194 @Override
195 public final String getSICoefficientsString()
196 {
197 return "kgm2/s2";
198 }
199
200 }