<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<!-- © 2019 and later: Unicode, Inc. and others. -->
<!-- License & terms of use: http://www.unicode.org/copyright.html#License -->
-<title>ICU4J API Comparison: ICU4J 63.1 with ICU4J 64.2</title>
+<title>ICU4J API Comparison: ICU4J 64.2 with ICU4J 65.1</title>
</head>
<body>
-<h1>ICU4J API Comparison: ICU4J 63.1 with ICU4J 64.2</h1>
+<h1>ICU4J API Comparison: ICU4J 64.2 with ICU4J 65.1</h1>
<hr/>
-<h2>Removed from ICU4J 63.1</h2>
-
-<h3>Package com.ibm.icu.number</h3>
-<ul>
-<li><span style='color:gray'>(deprecated)</span> public abstract class <i>CurrencyRounder</i></li>
-<li><span style='color:gray'>(deprecated)</span> public abstract class <i>FractionRounder</i></li>
-<li><span style='color:gray'>(deprecated)</span> public abstract class <i>Rounder</i></li>
-FormattedNumber
-<ul>
-<li><span style='color:gray'>(deprecated)</span> public java.text.AttributedCharacterIterator <i>getFieldIterator</i>()</li>
-<li><span style='color:gray'>(deprecated)</span> public void <i>populateFieldPosition</i>(java.text.FieldPosition)</li>
-</ul>
-NumberFormatterSettings
-<ul>
-<li><span style='color:gray'>(deprecated)</span> public T extends NumberFormatterSettings<?> <i>rounding</i>(Precision)</li>
-</ul>
-Precision
-<ul>
-<li><span style='color:gray'>(deprecated)</span> public static Precision <i>fixedDigits</i>(int)</li>
-<li><span style='color:gray'>(deprecated)</span> public static Precision <i>maxDigits</i>(int)</li>
-<li><span style='color:gray'>(deprecated)</span> public static Precision <i>minDigits</i>(int)</li>
-<li><span style='color:gray'>(deprecated)</span> public static Precision <i>minMaxDigits</i>(int, int)</li>
-<li><span style='color:gray'>(deprecated)</span> public Precision <i>withMode</i>(java.math.RoundingMode)</li>
-</ul>
-</ul>
+<h2>Removed from ICU4J 64.2</h2>
<h3>Package com.ibm.icu.util</h3>
<ul>
-CharsTrie
+LocaleMatcher
<ul>
-<li><span style='color:green'>(stable)</span> public java.lang.Object <i>clone</i>()</li>
+<li><span style='color:green'>(stable)</span> public ULocale <i>getBestMatch</i>(LocalePriorityList)</li>
</ul>
</ul>
<hr/>
-<h2>Deprecated or Obsoleted in ICU4J 64.2</h2>
+<h2>Deprecated or Obsoleted in ICU4J 65.1</h2>
-<h3>Package com.ibm.icu.text</h3>
+<h3>Package com.ibm.icu.util</h3>
<ul>
-BreakIterator
+LocaleMatcher
<ul>
-<li><span style='color:gray'>(deprecated)</span> public static final int KIND_TITLE</li>
-<li><span style='color:gray'>(deprecated)</span> public static BreakIterator <i>getTitleInstance</i>()</li>
-<li><span style='color:gray'>(deprecated)</span> public static BreakIterator <i>getTitleInstance</i>(ULocale)</li>
-<li><span style='color:gray'>(deprecated)</span> public static BreakIterator <i>getTitleInstance</i>(java.util.Locale)</li>
+<li><span style='color:gray'>(deprecated)</span> public double <i>match</i>(ULocale, ULocale, ULocale, ULocale)</li>
</ul>
</ul>
<hr/>
-<h2>Changed in ICU4J 64.2 (old, new)</h2>
+<h2>Changed in ICU4J 65.1 (old, new)</h2>
+<p>(no API changed)</p>
-<h3>Package com.ibm.icu.number</h3>
+<hr/>
+<h2>Promoted to stable in ICU4J 65.1</h2>
+
+<h3>Package com.ibm.icu.lang</h3>
<ul>
-<li> <span style='color:orange'>(draft)</span> public class <i>FormattedNumber</i> extends java.lang.Object</br>
-<span style='color:orange'>(draft)</span> public class <i>FormattedNumber</i> extends java.lang.Object implements com.ibm.icu.text.FormattedValue</li>
-<li> <span style='color:orange'>(draft)</span> public class <i>FormattedNumberRange</i> extends java.lang.Object</br>
-<span style='color:orange'>(draft)</span> public class <i>FormattedNumberRange</i> extends java.lang.Object implements com.ibm.icu.text.FormattedValue</li>
+<li><span style='color:green'>(stable)</span> public final class <i>CharacterProperties</i></li>
</ul>
-<h3>Package com.ibm.icu.util</h3>
-<ul>
-BytesTrie
+<h3>Package com.ibm.icu.number</h3>
<ul>
-<li> <span style='color:green'>(stable)</span> public java.lang.Object <i>clone</i>()</br>
-<span style='color:green'>(stable)</span> public com.ibm.icu.util.BytesTrie <i>clone</i>()</li>
+<li><span style='color:green'>(stable)</span> public class <i>CompactNotation</i></li>
+<li><span style='color:green'>(stable)</span> public abstract class <i>CurrencyPrecision</i></li>
+<li><span style='color:green'>(stable)</span> public class <i>FormattedNumber</i></li>
+<li><span style='color:green'>(stable)</span> public class <i>FormattedNumberRange</i></li>
+<li><span style='color:green'>(stable)</span> public abstract class <i>FractionPrecision</i></li>
+<li><span style='color:green'>(stable)</span> public class <i>IntegerWidth</i></li>
+<li><span style='color:green'>(stable)</span> public class <i>LocalizedNumberFormatter</i></li>
+<li><span style='color:green'>(stable)</span> public class <i>LocalizedNumberRangeFormatter</i></li>
+<li><span style='color:green'>(stable)</span> public class <i>Notation</i></li>
+<li><span style='color:green'>(stable)</span> public final class <i>NumberFormatter</i></li>
+<li><span style='color:green'>(stable)</span> public abstract class <i>NumberFormatterSettings</i></li>
+<li><span style='color:green'>(stable)</span> public abstract class <i>NumberRangeFormatter</i></li>
+<li><span style='color:green'>(stable)</span> public abstract class <i>NumberRangeFormatterSettings</i></li>
+<li><span style='color:green'>(stable)</span> public abstract class <i>Precision</i></li>
+<li><span style='color:green'>(stable)</span> public class <i>Scale</i></li>
+<li><span style='color:green'>(stable)</span> public class <i>ScientificNotation</i></li>
+<li><span style='color:green'>(stable)</span> public class <i>SimpleNotation</i></li>
+<li><span style='color:green'>(stable)</span> public class <i>SkeletonSyntaxException</i></li>
+<li><span style='color:green'>(stable)</span> public class <i>UnlocalizedNumberFormatter</i></li>
+<li><span style='color:green'>(stable)</span> public class <i>UnlocalizedNumberRangeFormatter</i></li>
+<li><span style='color:green'>(stable)</span> public static enum <i>NumberFormatter.DecimalSeparatorDisplay</i></li>
+<li><span style='color:green'>(stable)</span> public static enum <i>NumberFormatter.GroupingStrategy</i></li>
+<li><span style='color:green'>(stable)</span> public static enum <i>NumberFormatter.SignDisplay</i></li>
+<li><span style='color:green'>(stable)</span> public static enum <i>NumberFormatter.UnitWidth</i></li>
+<li><span style='color:green'>(stable)</span> public static enum <i>NumberRangeFormatter.RangeCollapse</i></li>
+<li><span style='color:green'>(stable)</span> public static enum <i>NumberRangeFormatter.RangeIdentityFallback</i></li>
+<li><span style='color:green'>(stable)</span> public static enum <i>NumberRangeFormatter.RangeIdentityResult</i></li>
+NumberFormatter.DecimalSeparatorDisplay
+<ul>
+<li><span style='color:green'>(stable)</span> public static final NumberFormatter.DecimalSeparatorDisplay ALWAYS</li>
+<li><span style='color:green'>(stable)</span> public static final NumberFormatter.DecimalSeparatorDisplay AUTO</li>
+</ul>
+NumberFormatter.GroupingStrategy
+<ul>
+<li><span style='color:green'>(stable)</span> public static final NumberFormatter.GroupingStrategy AUTO</li>
+<li><span style='color:green'>(stable)</span> public static final NumberFormatter.GroupingStrategy MIN2</li>
+<li><span style='color:green'>(stable)</span> public static final NumberFormatter.GroupingStrategy OFF</li>
+<li><span style='color:green'>(stable)</span> public static final NumberFormatter.GroupingStrategy ON_ALIGNED</li>
+<li><span style='color:green'>(stable)</span> public static final NumberFormatter.GroupingStrategy THOUSANDS</li>
+</ul>
+NumberFormatter.SignDisplay
+<ul>
+<li><span style='color:green'>(stable)</span> public static final NumberFormatter.SignDisplay ACCOUNTING</li>
+<li><span style='color:green'>(stable)</span> public static final NumberFormatter.SignDisplay ACCOUNTING_ALWAYS</li>
+<li><span style='color:green'>(stable)</span> public static final NumberFormatter.SignDisplay ACCOUNTING_EXCEPT_ZERO</li>
+<li><span style='color:green'>(stable)</span> public static final NumberFormatter.SignDisplay ALWAYS</li>
+<li><span style='color:green'>(stable)</span> public static final NumberFormatter.SignDisplay AUTO</li>
+<li><span style='color:green'>(stable)</span> public static final NumberFormatter.SignDisplay EXCEPT_ZERO</li>
+<li><span style='color:green'>(stable)</span> public static final NumberFormatter.SignDisplay NEVER</li>
+</ul>
+NumberFormatter.UnitWidth
+<ul>
+<li><span style='color:green'>(stable)</span> public static final NumberFormatter.UnitWidth FULL_NAME</li>
+<li><span style='color:green'>(stable)</span> public static final NumberFormatter.UnitWidth HIDDEN</li>
+<li><span style='color:green'>(stable)</span> public static final NumberFormatter.UnitWidth ISO_CODE</li>
+<li><span style='color:green'>(stable)</span> public static final NumberFormatter.UnitWidth NARROW</li>
+<li><span style='color:green'>(stable)</span> public static final NumberFormatter.UnitWidth SHORT</li>
+</ul>
+NumberRangeFormatter.RangeCollapse
+<ul>
+<li><span style='color:green'>(stable)</span> public static final NumberRangeFormatter.RangeCollapse ALL</li>
+<li><span style='color:green'>(stable)</span> public static final NumberRangeFormatter.RangeCollapse AUTO</li>
+<li><span style='color:green'>(stable)</span> public static final NumberRangeFormatter.RangeCollapse NONE</li>
+<li><span style='color:green'>(stable)</span> public static final NumberRangeFormatter.RangeCollapse UNIT</li>
+</ul>
+NumberRangeFormatter.RangeIdentityFallback
+<ul>
+<li><span style='color:green'>(stable)</span> public static final NumberRangeFormatter.RangeIdentityFallback APPROXIMATELY</li>
+<li><span style='color:green'>(stable)</span> public static final NumberRangeFormatter.RangeIdentityFallback APPROXIMATELY_OR_SINGLE_VALUE</li>
+<li><span style='color:green'>(stable)</span> public static final NumberRangeFormatter.RangeIdentityFallback RANGE</li>
+<li><span style='color:green'>(stable)</span> public static final NumberRangeFormatter.RangeIdentityFallback SINGLE_VALUE</li>
+</ul>
+NumberRangeFormatter.RangeIdentityResult
+<ul>
+<li><span style='color:green'>(stable)</span> public static final NumberRangeFormatter.RangeIdentityResult EQUAL_AFTER_ROUNDING</li>
+<li><span style='color:green'>(stable)</span> public static final NumberRangeFormatter.RangeIdentityResult EQUAL_BEFORE_ROUNDING</li>
+<li><span style='color:green'>(stable)</span> public static final NumberRangeFormatter.RangeIdentityResult NOT_EQUAL</li>
</ul>
</ul>
-
-<hr/>
-<h2>Promoted to stable in ICU4J 64.2</h2>
-
<h3>Package com.ibm.icu.text</h3>
<ul>
-<li><span style='color:green'>(stable)</span> public static enum <i>DateTimePatternGenerator.DisplayWidth</i></li>
-CurrencyDisplayNames
-<ul>
-<li><span style='color:green'>(stable)</span> public abstract java.lang.String <i>getNarrowSymbol</i>(java.lang.String)</li>
-</ul>
-DateTimePatternGenerator
+DecimalFormat
<ul>
-<li><span style='color:green'>(stable)</span> public java.lang.String <i>getFieldDisplayName</i>(int, DateTimePatternGenerator.DisplayWidth)</li>
+<li><span style='color:green'>(stable)</span> public LocalizedNumberFormatter <i>toNumberFormatter</i>()</li>
</ul>
-DateTimePatternGenerator.DisplayWidth
+SpoofChecker
<ul>
-<li><span style='color:green'>(stable)</span> public static final DateTimePatternGenerator.DisplayWidth ABBREVIATED</li>
-<li><span style='color:green'>(stable)</span> public static final DateTimePatternGenerator.DisplayWidth NARROW</li>
-<li><span style='color:green'>(stable)</span> public static final DateTimePatternGenerator.DisplayWidth WIDE</li>
+<li><span style='color:green'>(stable)</span> public static final int HIDDEN_OVERLAY</li>
</ul>
</ul>
<h3>Package com.ibm.icu.util</h3>
<ul>
-Currency
+<li><span style='color:green'>(stable)</span> public abstract class <i>CodePointMap</i></li>
+<li><span style='color:green'>(stable)</span> public static final class <i>CodePointMap.Range</i></li>
+<li><span style='color:green'>(stable)</span> public class <i>CodePointMap.StringIterator</i></li>
+<li><span style='color:green'>(stable)</span> public static interface <i>CodePointMap.ValueFilter</i></li>
+<li><span style='color:green'>(stable)</span> public abstract class <i>CodePointTrie</i></li>
+<li><span style='color:green'>(stable)</span> public static abstract class <i>CodePointTrie.Fast</i></li>
+<li><span style='color:green'>(stable)</span> public static final class <i>CodePointTrie.Fast16</i></li>
+<li><span style='color:green'>(stable)</span> public static final class <i>CodePointTrie.Fast32</i></li>
+<li><span style='color:green'>(stable)</span> public static final class <i>CodePointTrie.Fast8</i></li>
+<li><span style='color:green'>(stable)</span> public static abstract class <i>CodePointTrie.Small</i></li>
+<li><span style='color:green'>(stable)</span> public static final class <i>CodePointTrie.Small16</i></li>
+<li><span style='color:green'>(stable)</span> public static final class <i>CodePointTrie.Small32</i></li>
+<li><span style='color:green'>(stable)</span> public static final class <i>CodePointTrie.Small8</i></li>
+<li><span style='color:green'>(stable)</span> public final class <i>MutableCodePointTrie</i></li>
+<li><span style='color:green'>(stable)</span> public static enum <i>CodePointMap.RangeOption</i></li>
+<li><span style='color:green'>(stable)</span> public static enum <i>CodePointTrie.Type</i></li>
+<li><span style='color:green'>(stable)</span> public static enum <i>CodePointTrie.ValueWidth</i></li>
+CodePointMap.RangeOption
+<ul>
+<li><span style='color:green'>(stable)</span> public static final CodePointMap.RangeOption FIXED_ALL_SURROGATES</li>
+<li><span style='color:green'>(stable)</span> public static final CodePointMap.RangeOption FIXED_LEAD_SURROGATES</li>
+<li><span style='color:green'>(stable)</span> public static final CodePointMap.RangeOption NORMAL</li>
+</ul>
+CodePointTrie.Type
+<ul>
+<li><span style='color:green'>(stable)</span> public static final CodePointTrie.Type FAST</li>
+<li><span style='color:green'>(stable)</span> public static final CodePointTrie.Type SMALL</li>
+</ul>
+CodePointTrie.ValueWidth
+<ul>
+<li><span style='color:green'>(stable)</span> public static final CodePointTrie.ValueWidth BITS_16</li>
+<li><span style='color:green'>(stable)</span> public static final CodePointTrie.ValueWidth BITS_32</li>
+<li><span style='color:green'>(stable)</span> public static final CodePointTrie.ValueWidth BITS_8</li>
+</ul>
+MeasureUnit
<ul>
-<li><span style='color:green'>(stable)</span> public static final int NARROW_SYMBOL_NAME</li>
+<li><span style='color:green'>(stable)</span> public static final MeasureUnit ATMOSPHERE</li>
+<li><span style='color:green'>(stable)</span> public static final MeasureUnit PERCENT</li>
+<li><span style='color:green'>(stable)</span> public static final MeasureUnit PERMILLE</li>
+<li><span style='color:green'>(stable)</span> public static final MeasureUnit PETABYTE</li>
</ul>
</ul>
<hr/>
-<h2>Added in ICU4J 64.2</h2>
-
-<h3>Package com.ibm.icu.lang</h3>
-<ul>
-UCharacter.UnicodeBlock
-<ul>
-<li><span style='color:green'>(stable)</span> public static final UCharacter.UnicodeBlock EGYPTIAN_HIEROGLYPH_FORMAT_CONTROLS</li>
-<li><span style='color:green'>(stable)</span> public static final int EGYPTIAN_HIEROGLYPH_FORMAT_CONTROLS_ID</li>
-<li><span style='color:green'>(stable)</span> public static final UCharacter.UnicodeBlock ELYMAIC</li>
-<li><span style='color:green'>(stable)</span> public static final int ELYMAIC_ID</li>
-<li><span style='color:green'>(stable)</span> public static final UCharacter.UnicodeBlock NANDINAGARI</li>
-<li><span style='color:green'>(stable)</span> public static final int NANDINAGARI_ID</li>
-<li><span style='color:green'>(stable)</span> public static final UCharacter.UnicodeBlock NYIAKENG_PUACHUE_HMONG</li>
-<li><span style='color:green'>(stable)</span> public static final int NYIAKENG_PUACHUE_HMONG_ID</li>
-<li><span style='color:green'>(stable)</span> public static final UCharacter.UnicodeBlock OTTOMAN_SIYAQ_NUMBERS</li>
-<li><span style='color:green'>(stable)</span> public static final int OTTOMAN_SIYAQ_NUMBERS_ID</li>
-<li><span style='color:green'>(stable)</span> public static final UCharacter.UnicodeBlock SMALL_KANA_EXTENSION</li>
-<li><span style='color:green'>(stable)</span> public static final int SMALL_KANA_EXTENSION_ID</li>
-<li><span style='color:green'>(stable)</span> public static final UCharacter.UnicodeBlock SYMBOLS_AND_PICTOGRAPHS_EXTENDED_A</li>
-<li><span style='color:green'>(stable)</span> public static final int SYMBOLS_AND_PICTOGRAPHS_EXTENDED_A_ID</li>
-<li><span style='color:green'>(stable)</span> public static final UCharacter.UnicodeBlock TAMIL_SUPPLEMENT</li>
-<li><span style='color:green'>(stable)</span> public static final int TAMIL_SUPPLEMENT_ID</li>
-<li><span style='color:green'>(stable)</span> public static final UCharacter.UnicodeBlock WANCHO</li>
-<li><span style='color:green'>(stable)</span> public static final int WANCHO_ID</li>
-</ul>
-UScript
-<ul>
-<li><span style='color:green'>(stable)</span> public static final int ELYMAIC</li>
-<li><span style='color:green'>(stable)</span> public static final int NANDINAGARI</li>
-<li><span style='color:green'>(stable)</span> public static final int NYIAKENG_PUACHUE_HMONG</li>
-<li><span style='color:green'>(stable)</span> public static final int WANCHO</li>
-</ul>
-</ul>
-
-<h3>Package com.ibm.icu.number</h3>
-<ul>
-FormattedNumber
-<ul>
-<li><span style='color:orange'>(draft)</span> public char <i>charAt</i>(int)</li>
-<li><span style='color:orange'>(draft)</span> public int <i>length</i>()</li>
-<li><span style='color:orange'>(draft)</span> public boolean <i>nextPosition</i>(ConstrainedFieldPosition)</li>
-<li><span style='color:orange'>(draft)</span> public java.lang.CharSequence <i>subSequence</i>(int, int)</li>
-</ul>
-FormattedNumberRange
-<ul>
-<li><span style='color:orange'>(draft)</span> public char <i>charAt</i>(int)</li>
-<li><span style='color:orange'>(draft)</span> public int <i>length</i>()</li>
-<li><span style='color:orange'>(draft)</span> public boolean <i>nextPosition</i>(ConstrainedFieldPosition)</li>
-<li><span style='color:orange'>(draft)</span> public java.lang.CharSequence <i>subSequence</i>(int, int)</li>
-</ul>
-</ul>
+<h2>Added in ICU4J 65.1</h2>
<h3>Package com.ibm.icu.text</h3>
<ul>
-<li><span style='color:orange'>(draft)</span> public class <i>ConstrainedFieldPosition</i></li>
-<li><span style='color:orange'>(draft)</span> public static final class <i>DateIntervalFormat.FormattedDateInterval</i></li>
-<li><span style='color:orange'>(draft)</span> public static final class <i>DateIntervalFormat.SpanField</i></li>
-<li><span style='color:orange'>(draft)</span> public interface <i>FormattedValue</i></li>
-<li><span style='color:orange'>(draft)</span> public static class <i>RelativeDateTimeFormatter.Field</i></li>
-<li><span style='color:orange'>(draft)</span> public static class <i>RelativeDateTimeFormatter.FormattedRelativeDateTime</i></li>
-<li><span style='color:orange'>(draft)</span> public static abstract class <i>UFormat.SpanField</i></li>
-DateFormatSymbols
-<ul>
-<li><span style='color:orange'>(draft)</span> public java.lang.String[] <i>getNarrowEras</i>()</li>
-<li><span style='color:orange'>(draft)</span> public void <i>setNarrowEras</i>(java.lang.String[])</li>
-</ul>
-DateIntervalFormat
-<ul>
-<li><span style='color:orange'>(draft)</span> public DateIntervalFormat.FormattedDateInterval <i>formatToValue</i>(Calendar, Calendar)</li>
-<li><span style='color:orange'>(draft)</span> public DateIntervalFormat.FormattedDateInterval <i>formatToValue</i>(DateInterval)</li>
-</ul>
-DecimalFormat
-<ul>
-<li><span style='color:orange'>(draft)</span> public synchronized int <i>getMinimumGroupingDigits</i>()</li>
-<li><span style='color:orange'>(draft)</span> public synchronized boolean <i>isParseCaseSensitive</i>()</li>
-<li><span style='color:orange'>(draft)</span> public synchronized boolean <i>isParseNoExponent</i>()</li>
-<li><span style='color:orange'>(draft)</span> public synchronized boolean <i>isSignAlwaysShown</i>()</li>
-<li><span style='color:orange'>(draft)</span> public synchronized void <i>setMinimumGroupingDigits</i>(int)</li>
-<li><span style='color:orange'>(draft)</span> public synchronized void <i>setParseCaseSensitive</i>(boolean)</li>
-<li><span style='color:orange'>(draft)</span> public synchronized void <i>setParseNoExponent</i>(boolean)</li>
-<li><span style='color:orange'>(draft)</span> public synchronized void <i>setSignAlwaysShown</i>(boolean)</li>
-</ul>
-NumberFormat.Field
-<ul>
-<li><span style='color:orange'>(draft)</span> public static final NumberFormat.Field COMPACT</li>
-<li><span style='color:orange'>(draft)</span> public static final NumberFormat.Field MEASURE_UNIT</li>
-</ul>
-PluralRules
-<ul>
-<li><span style='color:orange'>(draft)</span> public java.lang.String <i>select</i>(FormattedNumber)</li>
-</ul>
-RelativeDateTimeFormatter
-<ul>
-<li><span style='color:orange'>(draft)</span> public RelativeDateTimeFormatter.FormattedRelativeDateTime <i>formatNumericToValue</i>(double, RelativeDateTimeFormatter.RelativeDateTimeUnit)</li>
-<li><span style='color:orange'>(draft)</span> public RelativeDateTimeFormatter.FormattedRelativeDateTime <i>formatToValue</i>(RelativeDateTimeFormatter.Direction, RelativeDateTimeFormatter.AbsoluteUnit)</li>
-<li><span style='color:orange'>(draft)</span> public RelativeDateTimeFormatter.FormattedRelativeDateTime <i>formatToValue</i>(double, RelativeDateTimeFormatter.Direction, RelativeDateTimeFormatter.RelativeUnit)</li>
-<li><span style='color:orange'>(draft)</span> public RelativeDateTimeFormatter.FormattedRelativeDateTime <i>formatToValue</i>(double, RelativeDateTimeFormatter.RelativeDateTimeUnit)</li>
-</ul>
RelativeDateTimeFormatter.AbsoluteUnit
<ul>
-<li><span style='color:orange'>(draft)</span> public static final RelativeDateTimeFormatter.AbsoluteUnit QUARTER</li>
+<li><span style='color:orange'>(draft)</span> public static final RelativeDateTimeFormatter.AbsoluteUnit HOUR</li>
+<li><span style='color:orange'>(draft)</span> public static final RelativeDateTimeFormatter.AbsoluteUnit MINUTE</li>
</ul>
</ul>
<h3>Package com.ibm.icu.util</h3>
<ul>
-BytesTrie
+<li><span style='color:orange'>(draft)</span> public static final class <i>LocaleMatcher.Builder</i></li>
+<li><span style='color:orange'>(draft)</span> public static final class <i>LocaleMatcher.Result</i></li>
+<li><span style='color:orange'>(draft)</span> public static enum <i>LocaleMatcher.Demotion</i></li>
+<li><span style='color:orange'>(draft)</span> public static enum <i>LocaleMatcher.FavorSubtag</i></li>
+<li><span style='color:orange'>(draft)</span> public static enum <i>ULocale.AvailableType</i></li>
+LocaleMatcher
<ul>
-<li><span style='color:orange'>(draft)</span> public <i>BytesTrie</i>(BytesTrie)</li>
-<li><span style='color:orange'>(draft)</span> public long <i>getState64</i>()</li>
-<li><span style='color:orange'>(draft)</span> public BytesTrie <i>resetToState64</i>(long)</li>
+<li><span style='color:orange'>(draft)</span> public static LocaleMatcher.Builder <i>builder</i>()</li>
+<li><span style='color:orange'>(draft)</span> public java.util.Locale <i>getBestLocale</i>(java.lang.Iterable<java.util.Locale>)</li>
+<li><span style='color:orange'>(draft)</span> public java.util.Locale <i>getBestLocale</i>(java.util.Locale)</li>
+<li><span style='color:orange'>(draft)</span> public LocaleMatcher.Result <i>getBestLocaleResult</i>(java.lang.Iterable<java.util.Locale>)</li>
+<li><span style='color:orange'>(draft)</span> public LocaleMatcher.Result <i>getBestLocaleResult</i>(java.util.Locale)</li>
+<li><span style='color:green'>(stable)</span> public ULocale <i>getBestMatch</i>(java.lang.Iterable<ULocale>)</li>
+<li><span style='color:orange'>(draft)</span> public LocaleMatcher.Result <i>getBestMatchResult</i>(ULocale)</li>
+<li><span style='color:orange'>(draft)</span> public LocaleMatcher.Result <i>getBestMatchResult</i>(java.lang.Iterable<ULocale>)</li>
</ul>
-CharsTrie
+LocaleMatcher.Demotion
<ul>
-<li><span style='color:orange'>(draft)</span> public <i>CharsTrie</i>(CharsTrie)</li>
-<li><span style='color:green'>(stable)</span> public CharsTrie <i>clone</i>()</li>
-<li><span style='color:orange'>(draft)</span> public long <i>getState64</i>()</li>
-<li><span style='color:orange'>(draft)</span> public CharsTrie <i>resetToState64</i>(long)</li>
+<li><span style='color:orange'>(draft)</span> public static final LocaleMatcher.Demotion NONE</li>
+<li><span style='color:orange'>(draft)</span> public static final LocaleMatcher.Demotion REGION</li>
</ul>
-JapaneseCalendar
+LocaleMatcher.FavorSubtag
<ul>
-<li><span style='color:green'>(stable)</span> public static final int REIWA</li>
+<li><span style='color:orange'>(draft)</span> public static final LocaleMatcher.FavorSubtag LANGUAGE</li>
+<li><span style='color:orange'>(draft)</span> public static final LocaleMatcher.FavorSubtag SCRIPT</li>
</ul>
-MeasureUnit
+LocalePriorityList
+<ul>
+<li><span style='color:orange'>(draft)</span> public java.util.Set<ULocale> <i>getULocales</i>()</li>
+</ul>
+ULocale
<ul>
-<li><span style='color:orange'>(draft)</span> public static final MeasureUnit BARREL</li>
-<li><span style='color:orange'>(draft)</span> public static final MeasureUnit BRITISH_THERMAL_UNIT</li>
-<li><span style='color:orange'>(draft)</span> public static final MeasureUnit DALTON</li>
-<li><span style='color:orange'>(draft)</span> public static final MeasureUnit DAY_PERSON</li>
-<li><span style='color:orange'>(draft)</span> public static final MeasureUnit DUNAM</li>
-<li><span style='color:orange'>(draft)</span> public static final MeasureUnit EARTH_MASS</li>
-<li><span style='color:orange'>(draft)</span> public static final MeasureUnit ELECTRONVOLT</li>
-<li><span style='color:orange'>(draft)</span> public static final MeasureUnit FLUID_OUNCE_IMPERIAL</li>
-<li><span style='color:orange'>(draft)</span> public static final MeasureUnit KILOPASCAL</li>
-<li><span style='color:orange'>(draft)</span> public static final MeasureUnit MEGAPASCAL</li>
-<li><span style='color:orange'>(draft)</span> public static final MeasureUnit MOLE</li>
-<li><span style='color:orange'>(draft)</span> public static final MeasureUnit MONTH_PERSON</li>
-<li><span style='color:orange'>(draft)</span> public static final MeasureUnit NEWTON</li>
-<li><span style='color:orange'>(draft)</span> public static final MeasureUnit NEWTON_METER</li>
-<li><span style='color:orange'>(draft)</span> public static final MeasureUnit PERMYRIAD</li>
-<li><span style='color:orange'>(draft)</span> public static final MeasureUnit POUND_FOOT</li>
-<li><span style='color:orange'>(draft)</span> public static final MeasureUnit POUND_FORCE</li>
-<li><span style='color:orange'>(draft)</span> public static final MeasureUnit SOLAR_LUMINOSITY</li>
-<li><span style='color:orange'>(draft)</span> public static final MeasureUnit SOLAR_MASS</li>
-<li><span style='color:orange'>(draft)</span> public static final MeasureUnit SOLAR_RADIUS</li>
-<li><span style='color:orange'>(draft)</span> public static final MeasureUnit WEEK_PERSON</li>
-<li><span style='color:orange'>(draft)</span> public static final MeasureUnit YEAR_PERSON</li>
+<li><span style='color:orange'>(draft)</span> public static java.util.Collection<ULocale> <i>getAvailableLocalesByType</i>(ULocale.AvailableType)</li>
</ul>
-VersionInfo
+ULocale.AvailableType
<ul>
-<li><span style='color:green'>(stable)</span> public static final VersionInfo UNICODE_12_0</li>
-<li><span style='color:green'>(stable)</span> public static final VersionInfo UNICODE_12_1</li>
+<li><span style='color:orange'>(draft)</span> public static final ULocale.AvailableType DEFAULT</li>
+<li><span style='color:orange'>(draft)</span> public static final ULocale.AvailableType ONLY_LEGACY_ALIASES</li>
+<li><span style='color:orange'>(draft)</span> public static final ULocale.AvailableType WITH_LEGACY_ALIASES</li>
</ul>
</ul>
<hr/>
-<p><i><font size="-1">Contents generated by ReportAPI tool on Tue Apr 09 17:32:39 EDT 2019<br/>© 2019 and later: Unicode, Inc. and others. License & terms of use: <a href="http://www.unicode.org/copyright.html#License">http://www.unicode.org/copyright.html#License</a></font></i></p>
+<p><i><font size="-1">Contents generated by ReportAPI tool on Wed Sep 04 14:00:20 EDT 2019<br/>© 2019 and later: Unicode, Inc. and others. License & terms of use: <a href="http://www.unicode.org/copyright.html#License">http://www.unicode.org/copyright.html#License</a></font></i></p>
</body>
</html>
* <p>For details see the method descriptions.
* For lookup of property values by code point see class {@link UCharacter}.
*
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
public final class CharacterProperties {
private CharacterProperties() {} // all-static
* @return the property as a set
* @see UProperty
* @see UCharacter#hasBinaryProperty
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
public static final UnicodeSet getBinaryPropertySet(int property) {
if (property < 0 || UProperty.BINARY_LIMIT <= property) {
* @return the property as a map
* @see UProperty
* @see UCharacter#getIntPropertyValue
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
public static final CodePointMap getIntPropertyMap(int property) {
if (property < UProperty.INT_START || UProperty.INT_LIMIT <= property) {
* This class exposes no public functionality. To create a CompactNotation, use one of the factory
* methods in {@link Notation}.
*
- * @draft ICU 60
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 60
* @see NumberFormatter
*/
public class CompactNotation extends Notation {
* <p>
* To create a CurrencyPrecision, use one of the factory methods on Precision.
*
- * @draft ICU 60
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 60
* @see NumberFormatter
*/
public abstract class CurrencyPrecision extends Precision {
* @param currency
* The currency to associate with this rounding strategy.
* @return A Precision for chaining or passing to the NumberFormatter rounding() setter.
- * @draft ICU 60
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 60
* @see NumberFormatter
*/
public Precision withCurrency(Currency currency) {
*
* Instances of this class are immutable and thread-safe.
*
- * @draft ICU 60
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 60
* @see NumberFormatter
*/
public class FormattedNumber implements FormattedValue {
/**
* {@inheritDoc}
*
- * @draft ICU 60
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 60
*/
@Override
public String toString() {
/**
* {@inheritDoc}
*
- * @draft ICU 60
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 60
*/
@Override
public <A extends Appendable> A appendTo(A appendable) {
/**
* {@inheritDoc}
*
- * @draft ICU 62
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 62
*/
@Override
public AttributedCharacterIterator toCharacterIterator() {
* pipeline.
*
* @return A BigDecimal representation of the formatted number.
- * @draft ICU 60
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 60
* @see NumberFormatter
*/
public BigDecimal toBigDecimal() {
* Instances of this class are immutable and thread-safe.
*
* @author sffc
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
* @see NumberRangeFormatter
*/
public class FormattedNumberRange implements FormattedValue {
/**
* {@inheritDoc}
*
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
@Override
public String toString() {
/**
* {@inheritDoc}
*
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
@Override
public <A extends Appendable> A appendTo(A appendable) {
/**
* {@inheritDoc}
*
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
@Override
public AttributedCharacterIterator toCharacterIterator() {
* printed after scaling and rounding have been applied by the number range formatting pipeline.
*
* @return A BigDecimal representation of the first formatted number.
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
* @see NumberRangeFormatter
* @see #getSecondBigDecimal
*/
* printed after scaling and rounding have been applied by the number range formatting pipeline.
*
* @return A BigDecimal representation of the second formatted number.
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
* @see NumberRangeFormatter
* @see #getFirstBigDecimal
*/
* identity fallback was used.
*
* @return A RangeIdentityType indicating the resulting identity situation in the formatted number range.
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
* @see NumberRangeFormatter
* @see NumberRangeFormatter.RangeIdentityFallback
*/
* <p>
* To create a FractionPrecision, use one of the factory methods on Precision.
*
- * @draft ICU 60
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 60
* @see NumberFormatter
*/
public abstract class FractionPrecision extends Precision {
* @param minSignificantDigits
* The number of significant figures to guarantee.
* @return A Precision for chaining or passing to the NumberFormatter rounding() setter.
- * @draft ICU 60
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 60
* @see NumberFormatter
*/
public Precision withMinDigits(int minSignificantDigits) {
* @param maxSignificantDigits
* Round the number to no more than this number of significant figures.
* @return A Precision for chaining or passing to the NumberFormatter rounding() setter.
- * @draft ICU 60
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 60
* @see NumberFormatter
*/
public Precision withMaxDigits(int maxSignificantDigits) {
* <p>
* To create an IntegerWidth, use one of the factory methods.
*
- * @draft ICU 60
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 60
* @see NumberFormatter
*/
public class IntegerWidth {
* @param minInt
* The minimum number of places before the decimal separator.
* @return An IntegerWidth for chaining or passing to the NumberFormatter integerWidth() setter.
- * @draft ICU 60
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 60
* @see NumberFormatter
*/
public static IntegerWidth zeroFillTo(int minInt) {
* The maximum number of places before the decimal separator. maxInt == -1 means no
* truncation.
* @return An IntegerWidth for passing to the NumberFormatter integerWidth() setter.
- * @draft ICU 60
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 60
* @see NumberFormatter
*/
public IntegerWidth truncateAt(int maxInt) {
* Instances of this class are immutable and thread-safe.
*
* @see NumberFormatter
- * @draft ICU 60
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 60
* @see NumberFormatter
*/
public class LocalizedNumberFormatter extends NumberFormatterSettings<LocalizedNumberFormatter> {
* @param input
* The number to format.
* @return A FormattedNumber object; call .toString() to get the string.
- * @draft ICU 60
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 60
* @see NumberFormatter
*/
public FormattedNumber format(long input) {
* @param input
* The number to format.
* @return A FormattedNumber object; call .toString() to get the string.
- * @draft ICU 60
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 60
* @see NumberFormatter
*/
public FormattedNumber format(double input) {
* @param input
* The number to format.
* @return A FormattedNumber object; call .toString() to get the string.
- * @draft ICU 60
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 60
* @see NumberFormatter
*/
public FormattedNumber format(Number input) {
* @param input
* The number to format.
* @return A FormattedNumber object; call .toString() to get the string.
- * @draft ICU 60
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 60
* @see NumberFormatter
*/
public FormattedNumber format(Measure input) {
* method.
*
* @return A Format wrapping this LocalizedNumberFormatter.
- * @draft ICU 62
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 62
* @see NumberFormatter
*/
public Format toFormat() {
* Instances of this class are immutable and thread-safe.
*
* @author sffc
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
* @see NumberRangeFormatter
*/
public class LocalizedNumberRangeFormatter extends NumberRangeFormatterSettings<LocalizedNumberRangeFormatter> {
* @param second
* The second number in the range, usually to the right in LTR locales.
* @return A FormattedNumberRange object; call .toString() to get the string.
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
* @see NumberRangeFormatter
*/
public FormattedNumberRange formatRange(int first, int second) {
* @param second
* The second number in the range, usually to the right in LTR locales.
* @return A FormattedNumberRange object; call .toString() to get the string.
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
* @see NumberRangeFormatter
*/
public FormattedNumberRange formatRange(double first, double second) {
* @param second
* The second number in the range, usually to the right in LTR locales.
* @return A FormattedNumberRange object; call .toString() to get the string.
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
* @see NumberRangeFormatter
*/
public FormattedNumberRange formatRange(Number first, Number second) {
/**
* A class that defines the notation style to be used when formatting numbers in NumberFormatter.
*
- * @draft ICU 60
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 60
* @see NumberFormatter
*/
public class Notation {
* </pre>
*
* @return A ScientificNotation for chaining or passing to the NumberFormatter notation() setter.
- * @draft ICU 60
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 60
* @see NumberFormatter
*/
public static ScientificNotation scientific() {
* </pre>
*
* @return A ScientificNotation for chaining or passing to the NumberFormatter notation() setter.
- * @draft ICU 60
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 60
* @see NumberFormatter
*/
public static ScientificNotation engineering() {
* </pre>
*
* @return A CompactNotation for passing to the NumberFormatter notation() setter.
- * @draft ICU 60
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 60
* @see NumberFormatter
*/
public static CompactNotation compactShort() {
* </pre>
*
* @return A CompactNotation for passing to the NumberFormatter notation() setter.
- * @draft ICU 60
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 60
* @see NumberFormatter
*/
public static CompactNotation compactLong() {
* </pre>
*
* @return A SimpleNotation for passing to the NumberFormatter notation() setter.
- * @draft ICU 60
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 60
* @see NumberFormatter
*/
public static SimpleNotation simple() {
* design doc</a>.
*
* @author Shane Carr
- * @draft ICU 60
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 60
*/
public final class NumberFormatter {
* <p>
* This enum is similar to {@link com.ibm.icu.text.MeasureFormat.FormatWidth}.
*
- * @draft ICU 60
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 60
* @see NumberFormatter
*/
public static enum UnitWidth {
* In CLDR, this option corresponds to the "Narrow" format for measure units and the "¤¤¤¤¤"
* placeholder for currencies.
*
- * @draft ICU 60
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 60
* @see NumberFormatter
*/
NARROW,
* In CLDR, this option corresponds to the "Short" format for measure units and the "¤"
* placeholder for currencies.
*
- * @draft ICU 60
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 60
* @see NumberFormatter
*/
SHORT,
* In CLDR, this option corresponds to the default format for measure units and the "¤¤¤"
* placeholder for currencies.
*
- * @draft ICU 60
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 60
* @see NumberFormatter
*/
FULL_NAME,
* <p>
* In CLDR, this option corresponds to the "¤¤" placeholder for currencies.
*
- * @draft ICU 60
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 60
* @see NumberFormatter
*/
ISO_CODE,
* currencies, apply monetary symbols and formats as with SHORT, but omit the currency symbol.
* For measure units, the behavior is equivalent to not specifying the unit at all.
*
- * @draft ICU 60
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 60
* @see NumberFormatter
*/
HIDDEN,
* Note: This enum specifies the strategy for grouping sizes. To set which character to use as the
* grouping separator, use the "symbols" setter.
*
- * @draft ICU 61
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 61
* @see NumberFormatter
*/
public static enum GroupingStrategy {
/**
* Do not display grouping separators in any locale.
*
- * @draft ICU 61
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 61
* @see NumberFormatter
*/
OFF,
* Locale data is used to determine whether to separate larger numbers into groups of 2
* (customary in South Asia) or groups of 3 (customary in Europe and the Americas).
*
- * @draft ICU 61
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 61
* @see NumberFormatter
*/
MIN2,
* Locale data is used to determine whether to separate larger numbers into groups of 2
* (customary in South Asia) or groups of 3 (customary in Europe and the Americas).
*
- * @draft ICU 61
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 61
* @see NumberFormatter
*/
AUTO,
* Locale data is used to determine whether to separate larger numbers into groups of 2
* (customary in South Asia) or groups of 3 (customary in Europe and the Americas).
*
- * @draft ICU 61
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 61
* @see NumberFormatter
*/
ON_ALIGNED,
* Use the Western defaults: groups of 3 and enabled for all numbers 1000 or greater. Do not use
* locale data for determining the grouping strategy.
*
- * @draft ICU 61
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 61
* @see NumberFormatter
*/
THOUSANDS
* <p>
* The exact format, including the position and the code point of the sign, differ by locale.
*
- * @draft ICU 60
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 60
* @see NumberFormatter
*/
public static enum SignDisplay {
* Show the minus sign on negative numbers, and do not show the sign on positive numbers. This is
* the default behavior.
*
- * @draft ICU 60
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 60
* @see NumberFormatter
*/
AUTO,
* Show the minus sign on negative numbers and the plus sign on positive numbers, including zero.
* To hide the sign on zero, see {@link #EXCEPT_ZERO}.
*
- * @draft ICU 60
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 60
* @see NumberFormatter
*/
ALWAYS,
/**
* Do not show the sign on positive or negative numbers.
*
- * @draft ICU 60
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 60
* @see NumberFormatter
*/
NEVER,
* back to the AUTO sign display strategy when formatting without a currency unit. This
* limitation may be lifted in the future.
*
- * @draft ICU 60
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 60
* @see NumberFormatter
*/
ACCOUNTING,
* ACCOUNTING sign display strategy. To hide the sign on zero, see
* {@link #ACCOUNTING_EXCEPT_ZERO}.
*
- * @draft ICU 60
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 60
* @see NumberFormatter
*/
ACCOUNTING_ALWAYS,
* Show the minus sign on negative numbers and the plus sign on positive numbers. Do not show a
* sign on zero or NaN, unless the sign bit is set (-0.0 gets a sign).
*
- * @draft ICU 61
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 61
* @see NumberFormatter
*/
EXCEPT_ZERO,
* sign). For more information on the accounting format, see the ACCOUNTING sign display
* strategy.
*
- * @draft ICU 61
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 61
* @see NumberFormatter
*/
ACCOUNTING_EXCEPT_ZERO,
* <li>ALWAYS: "1." and "1.1"
* </ul>
*
- * @draft ICU 60
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 60
* @see NumberFormatter
*/
public static enum DecimalSeparatorDisplay {
* Show the decimal separator when there are one or more digits to display after the separator,
* and do not show it otherwise. This is the default behavior.
*
- * @draft ICU 60
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 60
* @see NumberFormatter
*/
AUTO,
/**
* Always show the decimal separator, even if there are no digits to display after the separator.
*
- * @draft ICU 60
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 60
* @see NumberFormatter
*/
ALWAYS,
* currently known at the call site.
*
* @return An {@link UnlocalizedNumberFormatter}, to be used for chaining.
- * @draft ICU 60
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 60
*/
public static UnlocalizedNumberFormatter with() {
return BASE;
* @param locale
* The locale from which to load formats and symbols for number formatting.
* @return A {@link LocalizedNumberFormatter}, to be used for chaining.
- * @draft ICU 60
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 60
*/
public static LocalizedNumberFormatter withLocale(Locale locale) {
return BASE.locale(locale);
* @param locale
* The locale from which to load formats and symbols for number formatting.
* @return A {@link LocalizedNumberFormatter}, to be used for chaining.
- * @draft ICU 60
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 60
*/
public static LocalizedNumberFormatter withLocale(ULocale locale) {
return BASE.locale(locale);
* The skeleton string off of which to base this NumberFormatter.
* @return An {@link UnlocalizedNumberFormatter}, to be used for chaining.
* @throws SkeletonSyntaxException If the given string is not a valid number formatting skeleton.
- * @draft ICU 62
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 62
*/
public static UnlocalizedNumberFormatter forSkeleton(String skeleton) {
return NumberSkeletonImpl.getOrCreate(skeleton);
* by {@link UnlocalizedNumberFormatter} and {@link LocalizedNumberFormatter}. This class is not intended
* for public subclassing.
*
- * @draft ICU 60
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 60
* @see NumberFormatter
*/
public abstract class NumberFormatterSettings<T extends NumberFormatterSettings<?>> {
* The notation strategy to use.
* @return The fluent chain.
* @see Notation
- * @draft ICU 60
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 60
*/
public T notation(Notation notation) {
return create(KEY_NOTATION, notation);
* @see Currency
* @see NoUnit
* @see #perUnit
- * @draft ICU 60
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 60
*/
public T unit(MeasureUnit unit) {
return create(KEY_UNIT, unit);
* The unit to render in the denominator.
* @return The fluent chain
* @see #unit
- * @draft ICU 61
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 61
*/
public T perUnit(MeasureUnit perUnit) {
return create(KEY_PER_UNIT, perUnit);
* The rounding precision to use.
* @return The fluent chain.
* @see Precision
- * @draft ICU 62
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 62
*/
public T precision(Precision precision) {
return create(KEY_PRECISION, precision);
* The rounding mode to use.
* @return The fluent chain.
* @see Precision
- * @draft ICU 62
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 62
*/
public T roundingMode(RoundingMode roundingMode) {
return create(KEY_ROUNDING_MODE, roundingMode);
* The grouping strategy to use.
* @return The fluent chain.
* @see GroupingStrategy
- * @draft ICU 61
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 61
*/
public T grouping(GroupingStrategy strategy) {
return create(KEY_GROUPING, strategy);
* The integer width to use.
* @return The fluent chain.
* @see IntegerWidth
- * @draft ICU 60
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 60
*/
public T integerWidth(IntegerWidth style) {
return create(KEY_INTEGER, style);
* The DecimalFormatSymbols to use.
* @return The fluent chain.
* @see DecimalFormatSymbols
- * @draft ICU 60
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 60
*/
public T symbols(DecimalFormatSymbols symbols) {
symbols = (DecimalFormatSymbols) symbols.clone();
* The NumberingSystem to use.
* @return The fluent chain.
* @see NumberingSystem
- * @draft ICU 60
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 60
*/
public T symbols(NumberingSystem ns) {
return create(KEY_SYMBOLS, ns);
* The width to use when rendering numbers.
* @return The fluent chain
* @see UnitWidth
- * @draft ICU 60
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 60
*/
public T unitWidth(UnitWidth style) {
return create(KEY_UNIT_WIDTH, style);
* The sign display strategy to use when rendering numbers.
* @return The fluent chain
* @see SignDisplay
- * @draft ICU 60
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 60
*/
public T sign(SignDisplay style) {
return create(KEY_SIGN, style);
* The decimal separator display strategy to use when rendering numbers.
* @return The fluent chain
* @see DecimalSeparatorDisplay
- * @draft ICU 60
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 60
*/
public T decimal(DecimalSeparatorDisplay style) {
return create(KEY_DECIMAL, style);
* An amount to be multiplied against numbers before formatting.
* @return The fluent chain
* @see Scale
- * @draft ICU 62
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 62
*/
public T scale(Scale scale) {
return create(KEY_SCALE, scale);
* @return A number skeleton string with behavior corresponding to this number formatter.
* @throws UnsupportedOperationException
* If the number formatter has an option that cannot be represented in a skeleton string.
- * @draft ICU 62
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 62
*/
public String toSkeleton() {
return NumberSkeletonImpl.generate(resolve());
/**
* {@inheritDoc}
*
- * @draft ICU 60
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 60
*/
@Override
public int hashCode() {
/**
* {@inheritDoc}
*
- * @draft ICU 60
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 60
*/
@Override
public boolean equals(Object other) {
* <em>fluent</em> design pattern popularized by libraries such as Google's Guava.
*
* @author sffc
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
* @see NumberFormatter
*/
public abstract class NumberRangeFormatter {
/**
* Defines how to merge fields that are identical across the range sign.
*
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
* @see NumberRangeFormatter
*/
public enum RangeCollapse {
* <p>
* The heuristics used for this option are subject to change over time.
*
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
* @see NumberRangeFormatter
*/
AUTO,
/**
* Do not collapse any part of the number. Example: "3.2 thousand kilograms – 5.3 thousand kilograms"
*
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
* @see NumberRangeFormatter
*/
NONE,
* Collapse the unit part of the number, but not the notation, if present. Example: "3.2 thousand – 5.3 thousand
* kilograms"
*
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
* @see NumberRangeFormatter
*/
UNIT,
* Collapse any field that is equal across the range sign. May introduce ambiguity on the magnitude of the
* number. Example: "3.2 – 5.3 thousand kilograms"
*
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
* @see NumberRangeFormatter
*/
ALL
* Defines the behavior when the two numbers in the range are identical after rounding. To programmatically detect
* when the identity fallback is used, compare the lower and upper BigDecimals via FormattedNumber.
*
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
* @see NumberRangeFormatter
*/
public static enum RangeIdentityFallback {
/**
* Show the number as a single value rather than a range. Example: "$5"
*
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
* @see NumberRangeFormatter
*/
SINGLE_VALUE,
* Show the number using a locale-sensitive approximation pattern. If the numbers were the same before rounding,
* show the single value. Example: "~$5" or "$5"
*
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
* @see NumberRangeFormatter
*/
APPROXIMATELY_OR_SINGLE_VALUE,
* Show the number using a locale-sensitive approximation pattern. Use the range pattern always, even if the
* inputs are the same. Example: "~$5"
*
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
* @see NumberRangeFormatter
*/
APPROXIMATELY,
* Show the number as the range of two equal values. Use the range pattern always, even if the inputs are the
* same. Example (with RangeCollapse.NONE): "$5 – $5"
*
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
* @see NumberRangeFormatter
*/
RANGE
* Used in the result class FormattedNumberRange to indicate to the user whether the numbers formatted in the range
* were equal or not, and whether or not the identity fallback was applied.
*
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
* @see NumberRangeFormatter
*/
public static enum RangeIdentityResult {
/**
* Used to indicate that the two numbers in the range were equal, even before any rounding rules were applied.
*
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
* @see NumberRangeFormatter
*/
EQUAL_BEFORE_ROUNDING,
/**
* Used to indicate that the two numbers in the range were equal, but only after rounding rules were applied.
*
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
* @see NumberRangeFormatter
*/
EQUAL_AFTER_ROUNDING,
/**
* Used to indicate that the two numbers in the range were not equal, even after rounding rules were applied.
*
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
* @see NumberRangeFormatter
*/
NOT_EQUAL
* known at the call site.
*
* @return An {@link UnlocalizedNumberRangeFormatter}, to be used for chaining.
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
public static UnlocalizedNumberRangeFormatter with() {
return BASE;
* @param locale
* The locale from which to load formats and symbols for number range formatting.
* @return A {@link LocalizedNumberRangeFormatter}, to be used for chaining.
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
public static LocalizedNumberRangeFormatter withLocale(Locale locale) {
return BASE.locale(locale);
* @param locale
* The locale from which to load formats and symbols for number range formatting.
* @return A {@link LocalizedNumberRangeFormatter}, to be used for chaining.
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
public static LocalizedNumberRangeFormatter withLocale(ULocale locale) {
return BASE.locale(locale);
* public subclassing.
*
* @author sffc
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
* @see NumberRangeFormatter
*/
public abstract class NumberRangeFormatterSettings<T extends NumberRangeFormatterSettings<?>> {
* @param formatter
* The formatter to use for both numbers in the range.
* @return The fluent chain.
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
* @see NumberFormatter
* @see NumberRangeFormatter
*/
* @param formatterFirst
* The formatter to use for the first number in the range.
* @return The fluent chain.
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
* @see NumberFormatter
* @see NumberRangeFormatter
*/
* @param formatterSecond
* The formatter to use for the second number in the range.
* @return The fluent chain.
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
* @see NumberFormatter
* @see NumberRangeFormatter
*/
* @param collapse
* The collapsing strategy to use for this range.
* @return The fluent chain.
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
* @see NumberRangeFormatter
*/
public T collapse(RangeCollapse collapse) {
* @param identityFallback
* The strategy to use when formatting two numbers that end up being the same.
* @return The fluent chain.
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
* @see NumberRangeFormatter
*/
public T identityFallback(RangeIdentityFallback identityFallback) {
/**
* {@inheritDoc}
*
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
@Override
public int hashCode() {
/**
* {@inheritDoc}
*
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
@Override
public boolean equals(Object other) {
* <p>
* To create a Precision, use one of the factory methods.
*
- * @draft ICU 62
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 62
* @see NumberFormatter
*/
public abstract class Precision implements Cloneable {
* http://www.serpentine.com/blog/2011/06/29/here-be-dragons-advances-in-problems-you-didnt-even-know-you-had/
*
* @return A Precision for chaining or passing to the NumberFormatter precision() setter.
- * @draft ICU 60
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 60
* @see NumberFormatter
*/
public static Precision unlimited() {
* Show numbers rounded if necessary to the nearest integer.
*
* @return A FractionPrecision for chaining or passing to the NumberFormatter precision() setter.
- * @draft ICU 60
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 60
* @see NumberFormatter
*/
public static FractionPrecision integer() {
* The minimum and maximum number of numerals to display after the decimal separator
* (rounding if too long or padding with zeros if too short).
* @return A FractionPrecision for chaining or passing to the NumberFormatter precision() setter.
- * @draft ICU 60
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 60
* @see NumberFormatter
*/
public static FractionPrecision fixedFraction(int minMaxFractionPlaces) {
* The minimum number of numerals to display after the decimal separator (padding with
* zeros if necessary).
* @return A FractionPrecision for chaining or passing to the NumberFormatter precision() setter.
- * @draft ICU 60
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 60
* @see NumberFormatter
*/
public static FractionPrecision minFraction(int minFractionPlaces) {
* The maximum number of numerals to display after the decimal mark (rounding if
* necessary).
* @return A FractionPrecision for chaining or passing to the NumberFormatter precision() setter.
- * @draft ICU 60
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 60
* @see NumberFormatter
*/
public static FractionPrecision maxFraction(int maxFractionPlaces) {
* The maximum number of numerals to display after the decimal separator (rounding if
* necessary).
* @return A FractionPrecision for chaining or passing to the NumberFormatter precision() setter.
- * @draft ICU 60
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 60
* @see NumberFormatter
*/
public static FractionPrecision minMaxFraction(int minFractionPlaces, int maxFractionPlaces) {
* The minimum and maximum number of significant digits to display (rounding if too long
* or padding with zeros if too short).
* @return A Precision for chaining or passing to the NumberFormatter precision() setter.
- * @draft ICU 62
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 62
* @see NumberFormatter
*/
public static Precision fixedSignificantDigits(int minMaxSignificantDigits) {
* @param minSignificantDigits
* The minimum number of significant digits to display (padding with zeros if too short).
* @return A Precision for chaining or passing to the NumberFormatter precision() setter.
- * @draft ICU 62
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 62
* @see NumberFormatter
*/
public static Precision minSignificantDigits(int minSignificantDigits) {
* @param maxSignificantDigits
* The maximum number of significant digits to display (rounding if too long).
* @return A Precision for chaining or passing to the NumberFormatter precision() setter.
- * @draft ICU 62
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 62
* @see NumberFormatter
*/
public static Precision maxSignificantDigits(int maxSignificantDigits) {
* @param maxSignificantDigits
* The maximum number of significant digits to display (rounding if necessary).
* @return A Precision for chaining or passing to the NumberFormatter precision() setter.
- * @draft ICU 62
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 62
* @see NumberFormatter
*/
public static Precision minMaxSignificantDigits(int minSignificantDigits, int maxSignificantDigits) {
* @param roundingIncrement
* The increment to which to round numbers.
* @return A Precision for chaining or passing to the NumberFormatter precision() setter.
- * @draft ICU 60
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 60
* @see NumberFormatter
*/
public static Precision increment(BigDecimal roundingIncrement) {
* Either STANDARD (for digital transactions) or CASH (for transactions where the rounding
* increment may be limited by the available denominations of cash or coins).
* @return A CurrencyPrecision for chaining or passing to the NumberFormatter precision() setter.
- * @draft ICU 60
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 60
* @see NumberFormatter
*/
public static CurrencyPrecision currency(CurrencyUsage currencyUsage) {
* <p>
* To create a Multiplier, use one of the factory methods.
*
- * @draft ICU 62
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 62
* @see NumberFormatter
*/
public class Scale {
* Do not change the value of numbers when formatting or parsing.
*
* @return A Multiplier to prevent any multiplication.
- * @draft ICU 62
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 62
* @see NumberFormatter
*/
public static Scale none() {
* </pre>
*
* @return A Multiplier for passing to the setter in NumberFormatter.
- * @draft ICU 62
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 62
* @see NumberFormatter
*/
public static Scale powerOfTen(int power) {
* This method takes a BigDecimal; also see the version that takes a double.
*
* @return A Multiplier for passing to the setter in NumberFormatter.
- * @draft ICU 62
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 62
* @see NumberFormatter
*/
public static Scale byBigDecimal(BigDecimal multiplicand) {
* This method takes a double; also see the version that takes a BigDecimal.
*
* @return A Multiplier for passing to the setter in NumberFormatter.
- * @draft ICU 62
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 62
* @see NumberFormatter
*/
public static Scale byDouble(double multiplicand) {
* Multiply a number by both a power of ten and by an arbitrary double value before formatting.
*
* @return A Multiplier for passing to the setter in NumberFormatter.
- * @draft ICU 62
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 62
* @see NumberFormatter
*/
public static Scale byDoubleAndPowerOfTen(double multiplicand, int power) {
* <p>
* To create a ScientificNotation, use one of the factory methods in {@link Notation}.
*
- * @draft ICU 60
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 60
* @see NumberFormatter
*/
public class ScientificNotation extends Notation implements Cloneable {
* @param minExponentDigits
* The minimum number of digits to show in the exponent.
* @return A ScientificNotation, for chaining.
- * @draft ICU 60
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 60
* @see NumberFormatter
*/
public ScientificNotation withMinExponentDigits(int minExponentDigits) {
* @param exponentSignDisplay
* The strategy for displaying the sign in the exponent.
* @return A ScientificNotation, for chaining.
- * @draft ICU 60
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 60
* @see NumberFormatter
*/
public ScientificNotation withExponentSignDisplay(SignDisplay exponentSignDisplay) {
* This class exposes no public functionality. To create a SimpleNotation, use one of the factory methods
* in {@link Notation}.
*
- * @draft ICU 60
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 60
* @see NumberFormatter
*/
public class SimpleNotation extends Notation {
/**
* Exception used for illegal number skeleton strings.
*
- * @draft ICU 62
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 62
* @see NumberFormatter
*/
public class SkeletonSyntaxException extends IllegalArgumentException {
/**
* Construct a new SkeletonSyntaxException with information about the token at the point of failure.
*
- * @draft ICU 62
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 62
* @see NumberFormatter
*/
public SkeletonSyntaxException(String message, CharSequence token) {
/**
* Construct a new SkeletonSyntaxException with information about the token at the point of failure.
*
- * @draft ICU 62
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 62
* @see NumberFormatter
*/
public SkeletonSyntaxException(String message, CharSequence token, Throwable cause) {
* Instances of this class are immutable and thread-safe.
*
* @see NumberFormatter
- * @draft ICU 60
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 60
*/
public class UnlocalizedNumberFormatter extends NumberFormatterSettings<UnlocalizedNumberFormatter> {
* @param locale
* The locale to use when loading data for number formatting.
* @return The fluent chain
- * @draft ICU 60
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 60
*/
public LocalizedNumberFormatter locale(Locale locale) {
return new LocalizedNumberFormatter(this, KEY_LOCALE, ULocale.forLocale(locale));
* The locale to use when loading data for number formatting.
* @return The fluent chain
* @see #locale(Locale)
- * @draft ICU 60
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 60
*/
public LocalizedNumberFormatter locale(ULocale locale) {
return new LocalizedNumberFormatter(this, KEY_LOCALE, locale);
* Instances of this class are immutable and thread-safe.
*
* @author sffc
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
* @see NumberRangeFormatter
*/
public class UnlocalizedNumberRangeFormatter extends NumberRangeFormatterSettings<UnlocalizedNumberRangeFormatter> {
* @param locale
* The locale to use when loading data for number range formatting.
* @return The fluent chain
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
public LocalizedNumberRangeFormatter locale(Locale locale) {
return new LocalizedNumberRangeFormatter(this, KEY_LOCALE, ULocale.forLocale(locale));
* The locale to use when loading data for number range formatting.
* @return The fluent chain
* @see #locale(Locale)
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
public LocalizedNumberRangeFormatter locale(ULocale locale) {
return new LocalizedNumberRangeFormatter(this, KEY_LOCALE, locale);
/**
* Android libcore uses this internal method to set {@link ParseMode#JAVA_COMPATIBILITY}.
* @internal
+ * @deprecated This API is ICU internal only.
*/
- public synchronized void setParseStrictMode(ParseMode parseMode) {
+ @Deprecated
+public synchronized void setParseStrictMode(ParseMode parseMode) {
properties.setParseMode(parseMode);
refreshFormatter();
}
* @return An instance of {@link LocalizedNumberFormatter} with the same behavior as this instance of
* DecimalFormat.
* @see NumberFormatter
- * @provisional This API might change or be removed in a future release.
- * @draft ICU 60
+ * @stable ICU 60
*/
public LocalizedNumberFormatter toNumberFormatter() {
return formatter;
* <p>
* This list and the number of combing characters considered by this check may grow over time.
*
- * @draft ICU 62
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 62
*/
public static final int HIDDEN_OVERLAY = 256;
* Abstract map from Unicode code points (U+0000..U+10FFFF) to integer values.
* This does not implement java.util.Map.
*
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
public abstract class CodePointMap implements Iterable<CodePointMap.Range> {
/**
* Most users should use NORMAL.
*
* @see #getRange
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
public enum RangeOption {
/**
* getRange() enumerates all same-value ranges as stored in the map.
* Most users should use this option.
*
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
NORMAL,
/**
* or for special error behavior for unpaired surrogates,
* but those values are not to be associated with the lead surrogate code *points*.
*
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
FIXED_LEAD_SURROGATES,
/**
* or for special error behavior for unpaired surrogates,
* but those values are not to be associated with the lead surrogate code *points*.
*
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
FIXED_ALL_SURROGATES
}
*
* @see #getRange
* @see #iterator
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
public interface ValueFilter {
/**
*
* @param value map value
* @return modified value
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
public int apply(int value);
}
*
* @see #getRange
* @see #iterator
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
public static final class Range {
private int start;
/**
* Constructor. Sets start and end to -1 and value to 0.
*
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
public Range() {
start = end = -1;
/**
* @return the start code point
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
public int getStart() { return start; }
/**
* @return the (inclusive) end code point
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
public int getEnd() { return end; }
/**
* @return the range value
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
public int getValue() { return value; }
/**
* @param start new start code point
* @param end new end code point
* @param value new value
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
public void set(int start, int end, int value) {
this.start = start;
*
* <p>This class is not intended for public subclassing.
*
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
public class StringIterator {
/**
*
* @param s string to iterate over
* @param sIndex string index where the iteration will start
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
public void reset(CharSequence s, int sIndex) {
this.s = s;
*
* @return true if the string index was not yet at the end of the string;
* otherwise the iterator did not advance
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
public boolean next() {
if (sIndex >= s.length()) {
*
* @return true if the string index was not yet at the start of the string;
* otherwise the iterator did not advance
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
public boolean previous() {
if (sIndex <= 0) {
}
/**
* @return the string index
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
public final int getIndex() { return sIndex; }
/**
* @return the code point
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
public final int getCodePoint() { return c; }
/**
* @return the map value,
* or an implementation-defined error value if
* the code point is an unpaired surrogate
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
public final int getValue() { return value; }
}
/**
* Protected no-args constructor.
*
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
protected CodePointMap() {
}
* @return the map value,
* or an implementation-defined error value if
* the code point is not in the range 0..U+10FFFF
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
public abstract int get(int c);
* or null if the values from the map are to be used unmodified
* @param range the range object that will be set to the code point range and value
* @return true if start is 0..U+10FFFF; otherwise no new range is fetched
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
public abstract boolean getRange(int start, ValueFilter filter, Range range);
* or null if the values from the map are to be used unmodified
* @param range the range object that will be set to the code point range and value
* @return true if start is 0..U+10FFFF; otherwise no new range is fetched
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
public boolean getRange(int start, RangeOption option, int surrogateValue,
ValueFilter filter, Range range) {
* <p>The iterator always returns the same Range object.
*
* @return a Range iterator
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
@Override
public Iterator<Range> iterator() {
* @param s string to iterate over
* @param sIndex string index where the iteration will start
* @return the iterator
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
public StringIterator stringIterator(CharSequence s, int sIndex) {
return new StringIterator(s, sIndex);
* <p>This class is not intended for public subclassing.
*
* @see MutableCodePointTrie
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
public abstract class CodePointTrie extends CodePointMap {
/**
* @see MutableCodePointTrie#buildImmutable(CodePointTrie.Type, CodePointTrie.ValueWidth)
* @see #fromBinary
* @see #getType
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
public enum Type {
/**
* The {@link Fast} subclasses have additional functions for lookup for BMP and supplementary code points.
*
* @see Fast
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
FAST,
/**
* Small/slower BMP data structure.
*
* @see Small
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
SMALL
}
* <p>Use null for {@link #fromBinary} to accept any data value width;
* {@link #getValueWidth} will return the actual data value width.
*
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
public enum ValueWidth {
/**
* The trie stores 16 bits per data value.
* It returns them as unsigned values 0..0xffff=65535.
*
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
BITS_16,
/**
* The trie stores 32 bits per data value.
*
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
BITS_32,
/**
* The trie stores 8 bits per data value.
* It returns them as unsigned values 0..0xff=255.
*
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
BITS_8
}
* @see MutableCodePointTrie#MutableCodePointTrie(int, int)
* @see MutableCodePointTrie#buildImmutable(CodePointTrie.Type, CodePointTrie.ValueWidth)
* @see #toBinary(OutputStream)
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
public static CodePointTrie fromBinary(Type type, ValueWidth valueWidth, ByteBuffer bytes) {
ByteOrder outerByteOrder = bytes.order();
* Returns the trie type.
*
* @return the trie type
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
public abstract Type getType();
/**
* Returns the number of bits in a trie data value.
*
* @return the number of bits in a trie data value
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
public final ValueWidth getValueWidth() { return data.getValueWidth(); }
/**
* {@inheritDoc}
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
@Override
public int get(int c) {
*
* @param c the input code point; must be U+0000..U+007F
* @return The ASCII code point's trie value.
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
public final int asciiGet(int c) {
return ascii[c];
/**
* {@inheritDoc}
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
@Override
public final boolean getRange(int start, ValueFilter filter, Range range) {
*
* @param os the output stream
* @return the number of bytes written
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
public final int toBinary(OutputStream os) {
try {
/**
* A CodePointTrie with {@link Type#FAST}.
*
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
public static abstract class Fast extends CodePointTrie {
private Fast(char[] index, Data data, int highStart,
* use null to accept any data value width
* @param bytes a buffer containing the binary data of a CodePointTrie
* @return the trie
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
public static Fast fromBinary(ValueWidth valueWidth, ByteBuffer bytes) {
return (Fast) CodePointTrie.fromBinary(Type.FAST, valueWidth, bytes);
/**
* @return {@link Type#FAST}
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
@Override
public final Type getType() { return Type.FAST; }
*
* @param c the input code point, must be U+0000..U+FFFF
* @return The BMP code point's trie value.
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
public abstract int bmpGet(int c);
*
* @param c the input code point, must be U+10000..U+10FFFF
* @return The supplementary code point's trie value.
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
public abstract int suppGet(int c);
/**
* {@inheritDoc}
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
@Override
public final StringIterator stringIterator(CharSequence s, int sIndex) {
/**
* A CodePointTrie with {@link Type#SMALL}.
*
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
public static abstract class Small extends CodePointTrie {
private Small(char[] index, Data data, int highStart,
* use null to accept any data value width
* @param bytes a buffer containing the binary data of a CodePointTrie
* @return the trie
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
public static Small fromBinary(ValueWidth valueWidth, ByteBuffer bytes) {
return (Small) CodePointTrie.fromBinary(Type.SMALL, valueWidth, bytes);
/**
* @return {@link Type#SMALL}
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
@Override
public final Type getType() { return Type.SMALL; }
/**
* {@inheritDoc}
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
@Override
public final StringIterator stringIterator(CharSequence s, int sIndex) {
/**
* A CodePointTrie with {@link Type#FAST} and {@link ValueWidth#BITS_16}.
*
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
public static final class Fast16 extends Fast {
private final char[] dataArray;
*
* @param bytes a buffer containing the binary data of a CodePointTrie
* @return the trie
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
public static Fast16 fromBinary(ByteBuffer bytes) {
return (Fast16) CodePointTrie.fromBinary(Type.FAST, ValueWidth.BITS_16, bytes);
/**
* {@inheritDoc}
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
@Override
public final int get(int c) {
/**
* {@inheritDoc}
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
@Override
public final int bmpGet(int c) {
/**
* {@inheritDoc}
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
@Override
public final int suppGet(int c) {
/**
* A CodePointTrie with {@link Type#FAST} and {@link ValueWidth#BITS_32}.
*
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
public static final class Fast32 extends Fast {
private final int[] dataArray;
*
* @param bytes a buffer containing the binary data of a CodePointTrie
* @return the trie
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
public static Fast32 fromBinary(ByteBuffer bytes) {
return (Fast32) CodePointTrie.fromBinary(Type.FAST, ValueWidth.BITS_32, bytes);
/**
* {@inheritDoc}
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
@Override
public final int get(int c) {
/**
* {@inheritDoc}
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
@Override
public final int bmpGet(int c) {
/**
* {@inheritDoc}
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
@Override
public final int suppGet(int c) {
/**
* A CodePointTrie with {@link Type#FAST} and {@link ValueWidth#BITS_8}.
*
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
public static final class Fast8 extends Fast {
private final byte[] dataArray;
*
* @param bytes a buffer containing the binary data of a CodePointTrie
* @return the trie
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
public static Fast8 fromBinary(ByteBuffer bytes) {
return (Fast8) CodePointTrie.fromBinary(Type.FAST, ValueWidth.BITS_8, bytes);
/**
* {@inheritDoc}
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
@Override
public final int get(int c) {
/**
* {@inheritDoc}
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
@Override
public final int bmpGet(int c) {
/**
* {@inheritDoc}
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
@Override
public final int suppGet(int c) {
/**
* A CodePointTrie with {@link Type#SMALL} and {@link ValueWidth#BITS_16}.
*
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
public static final class Small16 extends Small {
Small16(char[] index, char[] data16, int highStart,
*
* @param bytes a buffer containing the binary data of a CodePointTrie
* @return the trie
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
public static Small16 fromBinary(ByteBuffer bytes) {
return (Small16) CodePointTrie.fromBinary(Type.SMALL, ValueWidth.BITS_16, bytes);
/**
* A CodePointTrie with {@link Type#SMALL} and {@link ValueWidth#BITS_32}.
*
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
public static final class Small32 extends Small {
Small32(char[] index, int[] data32, int highStart,
*
* @param bytes a buffer containing the binary data of a CodePointTrie
* @return the trie
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
public static Small32 fromBinary(ByteBuffer bytes) {
return (Small32) CodePointTrie.fromBinary(Type.SMALL, ValueWidth.BITS_32, bytes);
/**
* A CodePointTrie with {@link Type#SMALL} and {@link ValueWidth#BITS_8}.
*
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
public static final class Small8 extends Small {
Small8(char[] index, byte[] data8, int highStart,
*
* @param bytes a buffer containing the binary data of a CodePointTrie
* @return the trie
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
public static Small8 fromBinary(ByteBuffer bytes) {
return (Small8) CodePointTrie.fromBinary(Type.SMALL, ValueWidth.BITS_8, bytes);
/**
* Builder option for whether the language subtag or the script subtag is most important.
*
- * @see Builder#setFavorSubtag(FavorSubtag)
+ * @see LocaleMatcher.Builder#setFavorSubtag(LocaleMatcher.FavorSubtag)
* @draft ICU 65
* @provisional This API might change or be removed in a future release.
*/
* Builder option for whether all desired locales are treated equally or
* earlier ones are preferred.
*
- * @see Builder#setDemotionPerDesiredLocale(Demotion)
+ * @see LocaleMatcher.Builder#setDemotionPerDesiredLocale(LocaleMatcher.Demotion)
* @draft ICU 65
* @provisional This API might change or be removed in a future release.
*/
/**
* Constant for unit of concentr: percent
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
public static final MeasureUnit PERCENT = MeasureUnit.internalGetInstance("concentr", "percent");
/**
* Constant for unit of concentr: permille
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
public static final MeasureUnit PERMILLE = MeasureUnit.internalGetInstance("concentr", "permille");
/**
* Constant for unit of digital: petabyte
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
public static final MeasureUnit PETABYTE = MeasureUnit.internalGetInstance("digital", "petabyte");
/**
* Constant for unit of pressure: atmosphere
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
public static final MeasureUnit ATMOSPHERE = MeasureUnit.internalGetInstance("pressure", "atmosphere");
* Iterate over those source ranges; for each of them iterate over this trie;
* add the source value into the value of each trie range.
*
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
public final class MutableCodePointTrie extends CodePointMap implements Cloneable {
/**
*
* @param initialValue the initial value that is set for all code points
* @param errorValue the value for out-of-range code points and ill-formed UTF-8/16
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
public MutableCodePointTrie(int initialValue, int errorValue) {
index = new int[BMP_I_LIMIT];
* Clones this mutable trie.
*
* @return the clone
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
@Override
public MutableCodePointTrie clone() {
*
* @param map the source map or trie
* @return the mutable trie
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
public static MutableCodePointTrie fromCodePointMap(CodePointMap map) {
// TODO: Consider special code branch for map instanceof CodePointTrie?
/**
* {@inheritDoc}
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
@Override
public int get(int c) {
*
* <p>The trie can be modified between calls to this function.
*
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
@Override
public boolean getRange(int start, CodePointTrie.ValueFilter filter,
*
* @param c the code point
* @param value the value
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
public void set(int c, int value) {
if (c < 0 || MAX_UNICODE < c) {
* @param start the first code point to get the value
* @param end the last code point to get the value (inclusive)
* @param value the value
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
public void setRange(int start, int end, int value) {
if (start < 0 || MAX_UNICODE < start || end < 0 || MAX_UNICODE < end || start > end) {
* then the values stored in the trie will be truncated first
*
* @see #fromCodePointMap(CodePointMap)
- * @draft ICU 63
- * @provisional This API might change or be removed in a future release.
+ * @stable ICU 63
*/
public CodePointTrie buildImmutable(CodePointTrie.Type type, CodePointTrie.ValueWidth valueWidth) {
if (type == null || valueWidth == null) {