Class MixedUnitLongNameHandler

    • Field Detail

      • fMixedUnitData

        private java.util.List<java.lang.String[]> fMixedUnitData
        Stores unit data for each of the individual units. For each unit, it stores ARRAY_LENGTH strings, as returned by getMeasureData.
      • fIntegerFormatter

        private LocalizedNumberFormatter fIntegerFormatter
        A localized NumberFormatter used to format the integer-valued bigger units of Mixed Unit measurements.
      • fListFormatter

        private ListFormatter fListFormatter
        A localised list formatter for joining mixed units together.
    • Method Detail

      • forMeasureUnit

        public static MixedUnitLongNameHandler forMeasureUnit​(ULocale locale,
                                                              MeasureUnit mixedUnit,
                                                              NumberFormatter.UnitWidth width,
                                                              java.lang.String unitDisplayCase,
                                                              PluralRules rules,
                                                              MicroPropsGenerator parent)
        Construct a localized MixedUnitLongNameHandler for the specified MeasureUnit. It must be a MIXED unit.

        Parameters:
        locale - The desired locale.
        mixedUnit - The mixed measure unit to construct a MixedUnitLongNameHandler for.
        width - Specifies the desired unit rendering.
        unitDisplayCase - Specifies the desired grammatical case. If the specified case is not found, we fall back to nominative or no-case.
        rules - PluralRules instance.
        parent - MicroPropsGenerator instance.
      • processQuantity

        public MicroProps processQuantity​(DecimalQuantity quantity)
        Produces a plural-appropriate Modifier for a mixed unit: quantity is taken as the final smallest unit, while the larger unit values must be provided by micros.mixedMeasures, micros being the MicroProps instance returned by the parent. This function must not be called if this instance has no parent: call processQuantityWithMicros() instead.
        Specified by:
        processQuantity in interface MicroPropsGenerator
        Parameters:
        quantity - The quantity for consideration and optional mutation.
        Returns:
        A MicroProps instance resolved for the quantity.
      • getMixedUnitModifier

        private Modifier getMixedUnitModifier​(DecimalQuantity quantity,
                                              MicroProps micros)
        For a mixed unit, returns a Modifier that takes only one parameter: the smallest and final unit of the set. The bigger units' values and labels get baked into this Modifier, together with the unit label of the final unit.