1 /* GENERATED SOURCE. DO NOT MODIFY. */ 2 // © 2017 and later: Unicode, Inc. and others. 3 // License & terms of use: http://www.unicode.org/copyright.html#License 4 package ohos.global.icu.impl.number; 5 6 import ohos.global.icu.text.DecimalFormatSymbols; 7 import ohos.global.icu.util.Currency; 8 import ohos.global.icu.util.ULocale; 9 10 /** 11 * @hide exposed on OHOS 12 */ 13 public class CustomSymbolCurrency extends Currency { 14 private static final long serialVersionUID = 2497493016770137670L; 15 // TODO: Serialization methods? 16 17 private String symbol1; 18 private String symbol2; 19 resolve(Currency currency, ULocale locale, DecimalFormatSymbols symbols)20 public static Currency resolve(Currency currency, ULocale locale, DecimalFormatSymbols symbols) { 21 if (currency == null) { 22 currency = symbols.getCurrency(); 23 } 24 if (currency == null) { 25 return Currency.getInstance("XXX"); 26 } 27 if (!currency.equals(symbols.getCurrency())) { 28 return currency; 29 } 30 String currency1Sym = symbols.getCurrencySymbol(); 31 String currency2Sym = symbols.getInternationalCurrencySymbol(); 32 String currency1 = currency.getName(symbols.getULocale(), Currency.SYMBOL_NAME, null); 33 String currency2 = currency.getCurrencyCode(); 34 if (!currency1.equals(currency1Sym) || !currency2.equals(currency2Sym)) { 35 return new CustomSymbolCurrency(currency2, currency1Sym, currency2Sym); 36 } 37 return currency; 38 } 39 CustomSymbolCurrency(String isoCode, String currency1Sym, String currency2Sym)40 public CustomSymbolCurrency(String isoCode, String currency1Sym, String currency2Sym) { 41 super(isoCode); 42 this.symbol1 = currency1Sym; 43 this.symbol2 = currency2Sym; 44 } 45 46 @Override getName(ULocale locale, int nameStyle, boolean[] isChoiceFormat)47 public String getName(ULocale locale, int nameStyle, boolean[] isChoiceFormat) { 48 if (nameStyle == SYMBOL_NAME) { 49 if (isChoiceFormat != null) { 50 isChoiceFormat[0] = false; 51 } 52 return symbol1; 53 } 54 return super.getName(locale, nameStyle, isChoiceFormat); 55 } 56 57 @Override getName(ULocale locale, int nameStyle, String pluralCount, boolean[] isChoiceFormat)58 public String getName(ULocale locale, int nameStyle, String pluralCount, boolean[] isChoiceFormat) { 59 return super.getName(locale, nameStyle, pluralCount, isChoiceFormat); 60 } 61 62 @Override getCurrencyCode()63 public String getCurrencyCode() { 64 return symbol2; 65 } 66 67 @Override hashCode()68 public int hashCode() { 69 return super.hashCode() ^ symbol1.hashCode() ^ symbol2.hashCode(); 70 } 71 72 @Override equals(Object other)73 public boolean equals(Object other) { 74 return super.equals(other) 75 && ((CustomSymbolCurrency) other).symbol1.equals(symbol1) 76 && ((CustomSymbolCurrency) other).symbol2.equals(symbol2); 77 } 78 } 79