Package com.ibm.icu.impl.units
Class UnitsRouter
java.lang.Object
com.ibm.icu.impl.units.UnitsRouter
UnitsRouter
responsible for converting from a single unit (such as meter
or
meter-per-second
) to one of the complex units based on the limits.
For example:
if the input is meter
and the output as following
{foot+inch
, limit: 3.0}
{inch
, limit: no value (-inf)}
Thus means if the input in meter
is greater than or equal to 3.0 feet
,
the output will be in foot+inch
, otherwise, the output will be in inch
.
NOTE:
the output units and their limits MUST BE in order, for example, if the output units, from the
previous example, are the following:
{inch
, limit: no value (-inf)}
{foot+inch
, limit: 3.0}
IN THIS CASE THE OUTPUT WILL BE ALWAYS IN inch
.
NOTE: the output units and their limits will be extracted from the units preferences database by knowing the followings: - input unit - locale - usage
DESIGN:
UnitRouter
uses internally ComplexUnitConverter
in order to convert the input
units to the desired complex units and to check the limit too.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic class
Contains the complex unit converter and the limit which representing the smallest value that the converter should accept.class
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate ArrayList<UnitsRouter.ConverterPreference>
private ArrayList<MeasureUnit>
-
Constructor Summary
ConstructorsConstructorDescriptionUnitsRouter
(MeasureUnitImpl inputUnit, ULocale locale, String usage) UnitsRouter
(String inputUnitIdentifier, ULocale locale, String usage) -
Method Summary
Modifier and TypeMethodDescriptionReturns the list of possible output units, i.e.private static Precision
parseSkeletonToPrecision
(String precisionSkeleton) route
(BigDecimal quantity, MicroProps micros) If micros.rounder is a BogusRounder, this function replaces it with a valid one.
-
Field Details
-
outputUnits_
-
converterPreferences_
-
-
Constructor Details
-
UnitsRouter
-
UnitsRouter
-
-
Method Details
-
route
If micros.rounder is a BogusRounder, this function replaces it with a valid one. -
parseSkeletonToPrecision
-
getOutputUnits
Returns the list of possible output units, i.e. the full set of preferences, for the localized, usage-specific unit preferences.The returned pointer should be valid for the lifetime of the UnitsRouter instance.
-