Class MixedUnitLongNameHandler

java.lang.Object
org.graalvm.shadowed.com.ibm.icu.impl.number.MixedUnitLongNameHandler
All Implemented Interfaces:
LongNameMultiplexer.ParentlessMicroPropsGenerator, MicroPropsGenerator, ModifierStore

public class MixedUnitLongNameHandler extends Object implements MicroPropsGenerator, ModifierStore, LongNameMultiplexer.ParentlessMicroPropsGenerator
Similar to LongNameHandler, but only for MIXED units.
  • Method Details

    • forMeasureUnit

      public static MixedUnitLongNameHandler forMeasureUnit(ULocale locale, MeasureUnit mixedUnit, NumberFormatter.UnitWidth width, 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.
    • processQuantityWithMicros

      public MicroProps processQuantityWithMicros(DecimalQuantity quantity, MicroProps micros)
      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 via micros.mixedMeasures. Does not call parent.processQuantity, so cannot get a MicroProps instance that way. Instead, the instance is passed in as a parameter.
      Specified by:
      processQuantityWithMicros in interface LongNameMultiplexer.ParentlessMicroPropsGenerator
    • getModifier

      public Modifier getModifier(Modifier.Signum signum, StandardPlural plural)
      Required for ModifierStore. And ModifierStore is required by SimpleModifier constructor's last parameter. We assert his will never get called though.
      Specified by:
      getModifier in interface ModifierStore