• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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