ensureNonEmpty("abbreviation", abbreviation);
ensureNonNull ("direction", direction);
ensureNonNull ("unit", unit);
Number minimum = property(properties, MINIMUM_VALUE_KEY, Number.class);
Number maximum = property(properties, MAXIMUM_VALUE_KEY, Number.class);
RangeMeaning rm = property(properties, RANGE_MEANING_KEY, RangeMeaning.class);
if (minimum == null && maximum == null && rm == null) {
double min = Double.NEGATIVE_INFINITY;
double max = Double.POSITIVE_INFINITY;
if (Units.isAngular(unit)) {
final UnitConverter fromDegrees = NonSI.DEGREE_ANGLE.getConverterTo(unit.asType(Angle.class));