Package com.ibm.icu.impl.number
Class CompactData
- java.lang.Object
-
- com.ibm.icu.impl.number.CompactData
-
- All Implemented Interfaces:
MultiplierProducer
public class CompactData extends java.lang.Object implements MultiplierProducer
Datatype for compact notation data. Includes logic for data loading.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
CompactData.CompactDataSink
static class
CompactData.CompactType
-
Field Summary
Fields Modifier and Type Field Description private static int
COMPACT_MAX_DIGITS
private boolean
isEmpty
private byte
largestMagnitude
private byte[]
multipliers
private java.lang.String[]
patterns
private static java.lang.String
USE_FALLBACK
-
Constructor Summary
Constructors Constructor Description CompactData()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private static int
countZeros(java.lang.String patternString)
private static int
getIndex(int magnitude, StandardPlural plural)
int
getMultiplier(int magnitude)
Maps a magnitude to a multiplier in powers of ten.java.lang.String
getPattern(int magnitude, PluralRules rules, DecimalQuantity dq)
private static void
getResourceBundleKey(java.lang.String nsName, CompactDecimalFormat.CompactStyle compactStyle, CompactData.CompactType compactType, java.lang.StringBuilder sb)
Produces a string like "NumberElements/latn/patternsShort/decimalFormat".void
getUniquePatterns(java.util.Set<java.lang.String> output)
void
populate(ULocale locale, java.lang.String nsName, CompactDecimalFormat.CompactStyle compactStyle, CompactData.CompactType compactType)
void
populate(java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> powersToPluralsToPatterns)
Java-only method used by CLDR tooling.
-
-
-
Field Detail
-
USE_FALLBACK
private static final java.lang.String USE_FALLBACK
- See Also:
- Constant Field Values
-
patterns
private final java.lang.String[] patterns
-
multipliers
private final byte[] multipliers
-
largestMagnitude
private byte largestMagnitude
-
isEmpty
private boolean isEmpty
-
COMPACT_MAX_DIGITS
private static final int COMPACT_MAX_DIGITS
- See Also:
- Constant Field Values
-
-
Method Detail
-
populate
public void populate(ULocale locale, java.lang.String nsName, CompactDecimalFormat.CompactStyle compactStyle, CompactData.CompactType compactType)
-
getResourceBundleKey
private static void getResourceBundleKey(java.lang.String nsName, CompactDecimalFormat.CompactStyle compactStyle, CompactData.CompactType compactType, java.lang.StringBuilder sb)
Produces a string like "NumberElements/latn/patternsShort/decimalFormat".
-
populate
public void populate(java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> powersToPluralsToPatterns)
Java-only method used by CLDR tooling.
-
getMultiplier
public int getMultiplier(int magnitude)
Description copied from interface:MultiplierProducer
Maps a magnitude to a multiplier in powers of ten. For example, in compact notation in English, a magnitude of 5 (e.g., 100,000) should return a multiplier of -3, since the number is displayed in thousands.- Specified by:
getMultiplier
in interfaceMultiplierProducer
- Parameters:
magnitude
- The power of ten of the input number.- Returns:
- The shift in powers of ten.
-
getPattern
public java.lang.String getPattern(int magnitude, PluralRules rules, DecimalQuantity dq)
-
getUniquePatterns
public void getUniquePatterns(java.util.Set<java.lang.String> output)
-
getIndex
private static final int getIndex(int magnitude, StandardPlural plural)
-
countZeros
private static final int countZeros(java.lang.String patternString)
-
-