1 package org.djunits.unit;
2
3 import static org.djunits.unit.unitsystem.UnitSystem.IMPERIAL;
4 import static org.djunits.unit.unitsystem.UnitSystem.SI_DERIVED;
5
6 import org.djunits.unit.unitsystem.UnitSystem;
7
8
9
10
11
12
13
14
15
16
17
18 public class FlowMassUnit extends LinearUnit<FlowMassUnit>
19 {
20
21 private static final long serialVersionUID = 20140607L;
22
23
24 private final MassUnit massUnit;
25
26
27 private final DurationUnit durationUnit;
28
29
30 public static final FlowMassUnit SI;
31
32
33 public static final FlowMassUnit KILOGRAM_PER_SECOND;
34
35
36 public static final FlowMassUnit POUND_PER_SECOND;
37
38 static
39 {
40 SI = new FlowMassUnit(MassUnit.KILOGRAM, DurationUnit.SECOND, "FlowMassUnit.kilogram_per_second", "FlowMassUnit.kg/s",
41 SI_DERIVED, true);
42 KILOGRAM_PER_SECOND = SI;
43 POUND_PER_SECOND = new FlowMassUnit(MassUnit.POUND, DurationUnit.SECOND, "FlowMassUnit.pound_per_second",
44 "FlowMassUnit.lb/s", IMPERIAL, true);
45 }
46
47
48
49
50
51
52
53
54
55
56
57 private FlowMassUnit(final MassUnit massUnit, final DurationUnit durationUnit, final String nameOrNameKey,
58 final String abbreviationOrAbbreviationKey, final UnitSystem unitSystem, final boolean standardUnit)
59 {
60 super(nameOrNameKey, abbreviationOrAbbreviationKey, unitSystem, KILOGRAM_PER_SECOND,
61 massUnit.getScaleFactor() / durationUnit.getScaleFactor(), standardUnit);
62 this.massUnit = massUnit;
63 this.durationUnit = durationUnit;
64 }
65
66
67
68
69
70
71
72
73
74 public FlowMassUnit(final MassUnit massUnit, final DurationUnit durationUnit, final String name, final String abbreviation,
75 final UnitSystem unitSystem)
76 {
77 this(massUnit, durationUnit, name, abbreviation, unitSystem, false);
78 }
79
80
81
82
83
84
85
86
87
88
89
90 private FlowMassUnit(final String nameOrNameKey, final String abbreviationOrAbbreviationKey, final UnitSystem unitSystem,
91 final FlowMassUnit referenceUnit, final double scaleFactorToReferenceUnit, final boolean standardUnit)
92 {
93 super(nameOrNameKey, abbreviationOrAbbreviationKey, unitSystem, referenceUnit, scaleFactorToReferenceUnit,
94 standardUnit);
95 this.massUnit = referenceUnit.getMassUnit();
96 this.durationUnit = referenceUnit.getDurationUnit();
97 }
98
99
100
101
102
103
104
105
106
107 public FlowMassUnit(final String name, final String abbreviation, final UnitSystem unitSystem,
108 final FlowMassUnit referenceUnit, final double scaleFactorToReferenceUnit)
109 {
110 this(name, abbreviation, unitSystem, referenceUnit, scaleFactorToReferenceUnit, false);
111 }
112
113
114
115
116 public final MassUnit getMassUnit()
117 {
118 return this.massUnit;
119 }
120
121
122
123
124 public final DurationUnit getDurationUnit()
125 {
126 return this.durationUnit;
127 }
128
129
130 @Override
131 public final FlowMassUnit getStandardUnit()
132 {
133 return KILOGRAM_PER_SECOND;
134 }
135
136
137 @Override
138 public final String getSICoefficientsString()
139 {
140 return "kg/s";
141 }
142
143 }