/* */ package com.ibm.icu.text; /* */ /* */ import com.ibm.icu.impl.CurrencyData; /* */ import com.ibm.icu.impl.CurrencyData.CurrencyDisplayInfo; /* */ import com.ibm.icu.impl.CurrencyData.CurrencyDisplayInfoProvider; /* */ import com.ibm.icu.util.ULocale; /* */ import com.ibm.icu.util.ULocale.Category; /* */ import java.io.Serializable; /* */ import java.util.HashMap; /* */ import java.util.Iterator; /* */ import java.util.Locale; /* */ import java.util.Map; /* */ import java.util.Map.Entry; /* */ import java.util.Set; /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ public class CurrencyPluralInfo /* */ implements Cloneable, Serializable /* */ { /* */ private static final long serialVersionUID = 1L; /* */ /* */ public CurrencyPluralInfo() /* */ { /* 46 */ initialize(ULocale.getDefault(ULocale.Category.FORMAT)); /* */ } /* */ /* */ /* */ /* */ /* */ /* */ public CurrencyPluralInfo(Locale locale) /* */ { /* 55 */ initialize(ULocale.forLocale(locale)); /* */ } /* */ /* */ /* */ /* */ /* */ /* */ public CurrencyPluralInfo(ULocale locale) /* */ { /* 64 */ initialize(locale); /* */ } /* */ /* */ /* */ /* */ /* */ /* */ /* */ public static CurrencyPluralInfo getInstance() /* */ { /* 74 */ return new CurrencyPluralInfo(); /* */ } /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ public static CurrencyPluralInfo getInstance(Locale locale) /* */ { /* 85 */ return new CurrencyPluralInfo(locale); /* */ } /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ public static CurrencyPluralInfo getInstance(ULocale locale) /* */ { /* 96 */ return new CurrencyPluralInfo(locale); /* */ } /* */ /* */ /* */ /* */ /* */ /* */ /* */ public PluralRules getPluralRules() /* */ { /* 106 */ return this.pluralRules; /* */ } /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ public String getCurrencyPluralPattern(String pluralCount) /* */ { /* 118 */ String currencyPluralPattern = (String)this.pluralCountToCurrencyUnitPattern.get(pluralCount); /* 119 */ if (currencyPluralPattern == null) /* */ { /* 121 */ if (!pluralCount.equals("other")) { /* 122 */ currencyPluralPattern = (String)this.pluralCountToCurrencyUnitPattern.get("other"); /* */ } /* 124 */ if (currencyPluralPattern == null) /* */ { /* */ /* */ /* */ /* */ /* 130 */ currencyPluralPattern = defaultCurrencyPluralPattern; /* */ } /* */ } /* 133 */ return currencyPluralPattern; /* */ } /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ public ULocale getLocale() /* */ { /* 144 */ return this.ulocale; /* */ } /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ public void setPluralRules(String ruleDescription) /* */ { /* 155 */ this.pluralRules = PluralRules.createRules(ruleDescription); /* */ } /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ public void setCurrencyPluralPattern(String pluralCount, String pattern) /* */ { /* 168 */ this.pluralCountToCurrencyUnitPattern.put(pluralCount, pattern); /* */ } /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ public void setLocale(ULocale loc) /* */ { /* 179 */ this.ulocale = loc; /* 180 */ initialize(loc); /* */ } /* */ /* */ /* */ /* */ /* */ public Object clone() /* */ { /* */ try /* */ { /* 190 */ CurrencyPluralInfo other = (CurrencyPluralInfo)super.clone(); /* */ /* 192 */ other.ulocale = ((ULocale)this.ulocale.clone()); /* */ /* */ /* */ /* */ /* 197 */ other.pluralCountToCurrencyUnitPattern = new HashMap(); /* 198 */ for (String pluralCount : this.pluralCountToCurrencyUnitPattern.keySet()) { /* 199 */ String currencyPattern = (String)this.pluralCountToCurrencyUnitPattern.get(pluralCount); /* 200 */ other.pluralCountToCurrencyUnitPattern.put(pluralCount, currencyPattern); /* */ } /* 202 */ return other; /* */ } catch (CloneNotSupportedException e) { /* 204 */ throw new IllegalStateException(); /* */ } /* */ } /* */ /* */ /* */ /* */ /* */ /* */ public boolean equals(Object a) /* */ { /* 214 */ if ((a instanceof CurrencyPluralInfo)) { /* 215 */ CurrencyPluralInfo other = (CurrencyPluralInfo)a; /* 216 */ return (this.pluralRules.equals(other.pluralRules)) && (this.pluralCountToCurrencyUnitPattern.equals(other.pluralCountToCurrencyUnitPattern)); /* */ } /* */ /* 219 */ return false; /* */ } /* */ /* */ /* */ /* */ /* */ String select(double number) /* */ { /* 227 */ return this.pluralRules.select(number); /* */ } /* */ /* */ /* */ /* */ /* */ /* */ Iterator<String> pluralPatternIterator() /* */ { /* 236 */ return this.pluralCountToCurrencyUnitPattern.keySet().iterator(); /* */ } /* */ /* */ private void initialize(ULocale uloc) { /* 240 */ this.ulocale = uloc; /* 241 */ this.pluralRules = PluralRules.forLocale(uloc); /* 242 */ setupCurrencyPluralPattern(uloc); /* */ } /* */ /* */ private void setupCurrencyPluralPattern(ULocale uloc) { /* 246 */ this.pluralCountToCurrencyUnitPattern = new HashMap(); /* */ /* 248 */ String numberStylePattern = NumberFormat.getPattern(uloc, 0); /* */ /* 250 */ int separatorIndex = numberStylePattern.indexOf(";"); /* 251 */ String negNumberPattern = null; /* 252 */ if (separatorIndex != -1) { /* 253 */ negNumberPattern = numberStylePattern.substring(separatorIndex + 1); /* 254 */ numberStylePattern = numberStylePattern.substring(0, separatorIndex); /* */ } /* 256 */ Map<String, String> map = CurrencyData.provider.getInstance(uloc, true).getUnitPatterns(); /* 257 */ for (Map.Entry<String, String> e : map.entrySet()) { /* 258 */ String pluralCount = (String)e.getKey(); /* 259 */ String pattern = (String)e.getValue(); /* */ /* */ /* */ /* 263 */ String patternWithNumber = pattern.replace("{0}", numberStylePattern); /* 264 */ String patternWithCurrencySign = patternWithNumber.replace("{1}", tripleCurrencyStr); /* 265 */ if (separatorIndex != -1) { /* 266 */ String negPattern = pattern; /* 267 */ String negWithNumber = negPattern.replace("{0}", negNumberPattern); /* 268 */ String negWithCurrSign = negWithNumber.replace("{1}", tripleCurrencyStr); /* 269 */ StringBuilder posNegPatterns = new StringBuilder(patternWithCurrencySign); /* 270 */ posNegPatterns.append(";"); /* 271 */ posNegPatterns.append(negWithCurrSign); /* 272 */ patternWithCurrencySign = posNegPatterns.toString(); /* */ } /* 274 */ this.pluralCountToCurrencyUnitPattern.put(pluralCount, patternWithCurrencySign); /* */ } /* */ } /* */ /* */ /* */ /* */ /* */ /* 282 */ private static final char[] tripleCurrencySign = { '¤', '¤', '¤' }; /* */ /* 284 */ private static final String tripleCurrencyStr = new String(tripleCurrencySign); /* */ /* */ /* 287 */ private static final char[] defaultCurrencyPluralPatternChar = { '\000', '.', '#', '#', ' ', '¤', '¤', '¤' }; /* */ /* 289 */ private static final String defaultCurrencyPluralPattern = new String(defaultCurrencyPluralPatternChar); /* */ /* */ /* */ /* */ /* 294 */ private Map<String, String> pluralCountToCurrencyUnitPattern = null; /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* 302 */ private PluralRules pluralRules = null; /* */ /* */ /* 305 */ private ULocale ulocale = null; /* */ } /* Location: C:\Users\Ethan\Desktop\FontZip\FontTool\sfnttool.jar!\com\ibm\icu\text\CurrencyPluralInfo.class * Java compiler version: 5 (49.0) * JD-Core Version: 0.7.1 */