diff options
Diffstat (limited to 'luni/src/main/java/java/text/DecimalFormatSymbols.java')
-rw-r--r-- | luni/src/main/java/java/text/DecimalFormatSymbols.java | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/luni/src/main/java/java/text/DecimalFormatSymbols.java b/luni/src/main/java/java/text/DecimalFormatSymbols.java index 708b291..fba2d6e 100644 --- a/luni/src/main/java/java/text/DecimalFormatSymbols.java +++ b/luni/src/main/java/java/text/DecimalFormatSymbols.java @@ -50,7 +50,7 @@ public class DecimalFormatSymbols implements Cloneable, Serializable { private char percent; private char perMill; private char monetarySeparator; - private char minusSign; + private String minusSign; private String infinity, NaN, currencySymbol, intlCurrencySymbol; private transient Currency currency; @@ -81,6 +81,11 @@ public class DecimalFormatSymbols implements Cloneable, Serializable { * the locale. */ public DecimalFormatSymbols(Locale locale) { + if (locale == null) { + throw new NullPointerException("locale == null"); + } + + locale = LocaleData.mapInvalidAndNullLocales(locale); LocaleData localeData = LocaleData.get(locale); this.zeroDigit = localeData.zeroDigit; this.digit = '#'; @@ -179,7 +184,7 @@ public class DecimalFormatSymbols implements Cloneable, Serializable { groupingSeparator == obj.groupingSeparator && infinity.equals(obj.infinity) && intlCurrencySymbol.equals(obj.intlCurrencySymbol) && - minusSign == obj.minusSign && + minusSign.equals(obj.minusSign) && monetarySeparator == obj.monetarySeparator && NaN.equals(obj.NaN) && patternSeparator == obj.patternSeparator && @@ -288,6 +293,16 @@ public class DecimalFormatSymbols implements Cloneable, Serializable { * @return the minus sign as a character. */ public char getMinusSign() { + if (minusSign.length() == 1) { + return minusSign.charAt(0); + } + + throw new UnsupportedOperationException( + "Minus sign spans multiple characters: " + minusSign); + } + + /** @hide */ + public String getMinusSignString() { return minusSign; } @@ -366,7 +381,7 @@ public class DecimalFormatSymbols implements Cloneable, Serializable { result = 31*result + percent; result = 31*result + perMill; result = 31*result + monetarySeparator; - result = 31*result + minusSign; + result = 31*result + minusSign.hashCode(); result = 31*result + exponentSeparator.hashCode(); result = 31*result + infinity.hashCode(); result = 31*result + NaN.hashCode(); @@ -487,7 +502,7 @@ public class DecimalFormatSymbols implements Cloneable, Serializable { * the minus sign character. */ public void setMinusSign(char value) { - this.minusSign = value; + this.minusSign = String.valueOf(value); } /** |