public class CustomUnitSelector extends java.lang.Object implements LinearKindOfQuantity.LinearUnitSelector
Modifier and Type | Field and Description |
---|---|
protected LinearKindOfQuantity.LinearUnitSelector |
bigSelector |
protected LinearKindOfQuantity |
kindOfQuantity |
protected LinearKindOfQuantity.LinearUnitSelector |
smallSelector |
protected java.util.ArrayList<ITypedQuantity<LinearUnit>> |
tickList |
protected double[] |
tickMultiplierArr |
protected LinearUnit[] |
unitArr |
protected double[] |
unitMultiplierArr |
Constructor and Description |
---|
CustomUnitSelector(LinearKindOfQuantity kindOfQuantity,
LinearKindOfQuantity.LinearUnitSelector smallSelector,
java.util.Collection<LinearUnit> units,
LinearKindOfQuantity.LinearUnitSelector bigSelector,
java.util.SortedSet<ITypedQuantity<LinearUnit>> ticks) |
Modifier and Type | Method and Description |
---|---|
LinearUnit |
getLargestExactUnit(ITypedQuantity<LinearUnit> quantity)
Get the largest unit, if any, in which this quantity can be expressed exactly, typically
with an integer.
|
LinearUnit |
getPreferredUnit(ITypedQuantity<LinearUnit> quantity,
double minNumericalValue,
double maxNumericalValue) |
ITypedQuantity<LinearUnit> |
snapToBestBetweenHalfAndEqual(ITypedQuantity<LinearUnit> upperLimit) |
protected final LinearKindOfQuantity kindOfQuantity
protected final double[] unitMultiplierArr
protected final LinearUnit[] unitArr
protected final double[] tickMultiplierArr
protected final java.util.ArrayList<ITypedQuantity<LinearUnit>> tickList
protected final LinearKindOfQuantity.LinearUnitSelector smallSelector
protected final LinearKindOfQuantity.LinearUnitSelector bigSelector
public CustomUnitSelector(LinearKindOfQuantity kindOfQuantity, LinearKindOfQuantity.LinearUnitSelector smallSelector, java.util.Collection<LinearUnit> units, LinearKindOfQuantity.LinearUnitSelector bigSelector, java.util.SortedSet<ITypedQuantity<LinearUnit>> ticks)
public LinearUnit getPreferredUnit(ITypedQuantity<LinearUnit> quantity, double minNumericalValue, double maxNumericalValue)
getPreferredUnit
in interface TypedUnit.UnitSelector<LinearUnit>
public ITypedQuantity<LinearUnit> snapToBestBetweenHalfAndEqual(ITypedQuantity<LinearUnit> upperLimit)
snapToBestBetweenHalfAndEqual
in interface LinearKindOfQuantity.LinearUnitSelector
public LinearUnit getLargestExactUnit(ITypedQuantity<LinearUnit> quantity)
TypedUnit.UnitSelector
IQuantity.doubleValue()
== 0.0
), quantity.getUnit()
will be returned. Thus, if you want to find out a maximum common unit
for a set of quantities (not recommended), only use the non-zero quantities.
Note that this may be a fairly expensive operation, and isn't intended to be used excessively. The only valid use case is for guessing the original unit in which a quantity was expressed, after it has been stored or transmitted using a legacy mechanism with a fixed unit.
getLargestExactUnit
in interface TypedUnit.UnitSelector<LinearUnit>
null