Interface MicroPropsGenerator
-
- All Known Implementing Classes:
CompactNotation.CompactHandler
,LongNameHandler
,LongNameMultiplexer
,MicroProps
,MixedUnitLongNameHandler
,MultiplierFormatHandler
,MutablePatternModifier
,MutablePatternModifier.ImmutablePatternModifier
,ScientificNotation.ScientificHandler
,UnitConversionHandler
,UsagePrefsHandler
public interface MicroPropsGenerator
This interface is used when all number formatting settings, including the locale, are known, except for the quantity itself. TheprocessQuantity(com.ibm.icu.impl.number.DecimalQuantity)
method performs the final step in the number processing pipeline: it uses the quantity to generate a finalizedMicroProps
, which can be used to render the number to output.In other words, this interface is used for the parts of number processing that are quantity-dependent.
In order to allow for multiple different objects to all mutate the same MicroProps, a "chain" of MicroPropsGenerators are linked together, and each one is responsible for manipulating a certain quantity-dependent part of the MicroProps. At the top of the linked list is a base instance of
MicroProps
with properties that are not quantity-dependent. Each element in the linked list callsprocessQuantity(com.ibm.icu.impl.number.DecimalQuantity)
on its "parent", then does its work, and then returns the result.This chain of MicroPropsGenerators is typically constructed by NumberFormatterImpl::macrosToMicroGenerator() when constructing a NumberFormatter.
A class implementing MicroPropsGenerator looks something like this:
class Foo implements MicroPropsGenerator { private final MicroPropsGenerator parent; public Foo(MicroPropsGenerator parent) { this.parent = parent; } @Override public MicroProps processQuantity(DecimalQuantity quantity) { MicroProps micros = this.parent.processQuantity(quantity); // Perform manipulations on micros and/or quantity return micros; } }
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description MicroProps
processQuantity(DecimalQuantity quantity)
Considers the givenDecimalQuantity
, optionally mutates it, and returns aMicroProps
.
-
-
-
Method Detail
-
processQuantity
MicroProps processQuantity(DecimalQuantity quantity)
Considers the givenDecimalQuantity
, optionally mutates it, and returns aMicroProps
.- Parameters:
quantity
- The quantity for consideration and optional mutation.- Returns:
- A MicroProps instance resolved for the quantity.
-
-