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 AreaUnit extends LinearUnit<AreaUnit>
20 {
21
22 private static final long serialVersionUID = 20140607L;
23
24
25 private final LengthUnit lengthUnit;
26
27
28 public static final AreaUnit SI;
29
30
31 public static final AreaUnit SQUARE_ATTOMETER;
32
33
34 public static final AreaUnit SQUARE_FEMTOMETER;
35
36
37 public static final AreaUnit SQUARE_PICOMETER;
38
39
40 public static final AreaUnit SQUARE_NANOMETER;
41
42
43 public static final AreaUnit SQUARE_MICROMETER;
44
45
46 public static final AreaUnit SQUARE_MILLIMETER;
47
48
49 public static final AreaUnit SQUARE_METER;
50
51
52 public static final AreaUnit SQUARE_CENTIMETER;
53
54
55 public static final AreaUnit SQUARE_DECIMETER;
56
57
58 public static final AreaUnit SQUARE_DEKAMETER;
59
60
61 public static final AreaUnit SQUARE_HECTOMETER;
62
63
64 public static final AreaUnit SQUARE_KILOMETER;
65
66
67 public static final AreaUnit SQUARE_MEGAMETER;
68
69
70 public static final AreaUnit CENTIARE;
71
72
73 public static final AreaUnit ARE;
74
75
76 public static final AreaUnit HECTARE;
77
78
79 public static final AreaUnit SQUARE_MILE;
80
81
82 public static final AreaUnit SQUARE_NAUTICAL_MILE;
83
84
85 public static final AreaUnit SQUARE_FOOT;
86
87
88 public static final AreaUnit SQUARE_INCH;
89
90
91 public static final AreaUnit SQUARE_YARD;
92
93
94 public static final AreaUnit ACRE;
95
96 static
97 {
98 SI = new AreaUnit(LengthUnit.METER, "AreaUnit.square_meter", "AreaUnit.m^2", SI_DERIVED, true);
99 SQUARE_METER = SI;
100 SQUARE_ATTOMETER = new AreaUnit(LengthUnit.ATTOMETER, "AreaUnit.square_attometer", "AreaUnit.am^2", SI_DERIVED, true);
101 SQUARE_FEMTOMETER =
102 new AreaUnit(LengthUnit.FEMTOMETER, "AreaUnit.square_femtometer", "AreaUnit.fm^2", SI_DERIVED, true);
103 SQUARE_PICOMETER = new AreaUnit(LengthUnit.PICOMETER, "AreaUnit.square_picometer", "AreaUnit.pm^2", SI_DERIVED, true);
104 SQUARE_NANOMETER = new AreaUnit(LengthUnit.NANOMETER, "AreaUnit.square_nanometer", "AreaUnit.nm^2", SI_DERIVED, true);
105 SQUARE_MICROMETER =
106 new AreaUnit(LengthUnit.MICROMETER, "AreaUnit.square_micrometer", "AreaUnit.mum^2", SI_DERIVED, true);
107 SQUARE_MILLIMETER =
108 new AreaUnit(LengthUnit.MILLIMETER, "AreaUnit.square_millimeter", "AreaUnit.mm^2", SI_DERIVED, true);
109 SQUARE_CENTIMETER =
110 new AreaUnit(LengthUnit.CENTIMETER, "AreaUnit.square_centimeter", "AreaUnit.cm^2", SI_DERIVED, true);
111 SQUARE_DECIMETER = new AreaUnit(LengthUnit.DECIMETER, "AreaUnit.square_decimeter", "AreaUnit.dm^2", SI_DERIVED, true);
112 SQUARE_DEKAMETER = new AreaUnit(LengthUnit.DEKAMETER, "AreaUnit.square_dekameter", "AreaUnit.dam^2", SI_DERIVED, true);
113 SQUARE_HECTOMETER =
114 new AreaUnit(LengthUnit.HECTOMETER, "AreaUnit.square_hectometer", "AreaUnit.hm^2", SI_DERIVED, true);
115 SQUARE_KILOMETER = new AreaUnit(LengthUnit.KILOMETER, "AreaUnit.square_kilometer", "AreaUnit.km^2", SI_DERIVED, true);
116 SQUARE_MEGAMETER = new AreaUnit(LengthUnit.MEGAMETER, "AreaUnit.square_megameter", "AreaUnit.Mm^2", SI_DERIVED, true);
117 CENTIARE = new AreaUnit("AreaUnit.centiare", "AreaUnit.ca", OTHER, SQUARE_METER, 1.0, true);
118 ARE = new AreaUnit("AreaUnit.are", "AreaUnit.a", OTHER, SQUARE_METER, 100.0, true);
119 HECTARE = new AreaUnit("AreaUnit.hectare", "AreaUnit.ha", OTHER, ARE, 100.0, true);
120 SQUARE_NAUTICAL_MILE =
121 new AreaUnit(LengthUnit.NAUTICAL_MILE, "AreaUnit.square_nautical_mile", "AreaUnit.Nmi^2", OTHER, true);
122 SQUARE_MILE = new AreaUnit(LengthUnit.MILE, "AreaUnit.square_mile", "AreaUnit.mi^2", IMPERIAL, true);
123 SQUARE_FOOT = new AreaUnit(LengthUnit.FOOT, "AreaUnit.square_foot", "AreaUnit.ft^2", IMPERIAL, true);
124 SQUARE_INCH = new AreaUnit(LengthUnit.INCH, "AreaUnit.square_inch", "AreaUnit.in^2", IMPERIAL, true);
125 SQUARE_YARD = new AreaUnit(LengthUnit.YARD, "AreaUnit.square_yard", "AreaUnit.yd^2", IMPERIAL, true);
126 ACRE = new AreaUnit("AreaUnit.acre", "AreaUnit.ac", IMPERIAL, SQUARE_YARD, 4840.0, true);
127 }
128
129
130
131
132
133
134
135
136
137
138
139
140 private AreaUnit(final LengthUnit lengthUnit, final String nameOrNameKey, final String abbreviationOrAbbreviationKey,
141 final UnitSystem unitSystem, final boolean standardUnit)
142 {
143 super(nameOrNameKey, abbreviationOrAbbreviationKey, unitSystem, SQUARE_METER,
144 lengthUnit.getScaleFactor() * lengthUnit.getScaleFactor(), standardUnit);
145 this.lengthUnit = lengthUnit;
146 }
147
148
149
150
151
152
153
154
155 public AreaUnit(final LengthUnit lengthUnit, final String name, final String abbreviation, final UnitSystem unitSystem)
156 {
157 this(lengthUnit, name, abbreviation, unitSystem, false);
158 }
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173 private AreaUnit(final String nameOrNameKey, final String abbreviationOrAbbreviationKey, final UnitSystem unitSystem,
174 final AreaUnit referenceUnit, final double scaleFactorToReferenceUnit, final boolean standardUnit)
175 {
176 super(nameOrNameKey, abbreviationOrAbbreviationKey, unitSystem, referenceUnit, scaleFactorToReferenceUnit,
177 standardUnit);
178 this.lengthUnit = referenceUnit.getLengthUnit();
179 }
180
181
182
183
184
185
186
187
188
189
190 public AreaUnit(final String name, final String abbreviation, final UnitSystem unitSystem, final AreaUnit referenceUnit,
191 final double scaleFactorToReferenceUnit)
192 {
193 this(name, abbreviation, unitSystem, referenceUnit, scaleFactorToReferenceUnit, false);
194 }
195
196
197
198
199 public final LengthUnit getLengthUnit()
200 {
201 return this.lengthUnit;
202 }
203
204
205 @Override
206 public final AreaUnit getStandardUnit()
207 {
208 return SQUARE_METER;
209 }
210
211
212 @Override
213 public final String getSICoefficientsString()
214 {
215 return "m2";
216 }
217
218 }