public class UnitsRouter extends Object
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.
| Modifier and Type | Class and Description |
|---|---|
static class |
UnitsRouter.ConverterPreference
Contains the complex unit converter and the limit which representing the smallest value that the
converter should accept.
|
class |
UnitsRouter.RouteResult |
| Constructor and Description |
|---|
UnitsRouter(MeasureUnitImpl inputUnit,
ULocale locale,
String usage) |
UnitsRouter(String inputUnitIdentifier,
ULocale locale,
String usage) |
| Modifier and Type | Method and Description |
|---|---|
List<MeasureUnit> |
getOutputUnits()
Returns the list of possible output units, i.e.
|
UnitsRouter.RouteResult |
route(BigDecimal quantity,
MicroProps micros)
If micros.rounder is a BogusRounder, this function replaces it with a valid one.
|
public UnitsRouter(MeasureUnitImpl inputUnit, ULocale locale, String usage)
public UnitsRouter.RouteResult route(BigDecimal quantity, MicroProps micros)
public List<MeasureUnit> getOutputUnits()
The returned pointer should be valid for the lifetime of the UnitsRouter instance.