mirror of
https://github.com/unicode-org/icu.git
synced 2025-04-18 11:14:22 +00:00
ICU-7020 fix svn props and line endings
X-SVN-Rev: 26158
This commit is contained in:
parent
78e4232e53
commit
01ec786cf8
4 changed files with 349 additions and 370 deletions
21
.gitattributes
vendored
21
.gitattributes
vendored
|
@ -50,7 +50,6 @@ README text !eol
|
|||
|
||||
/.classpath -text
|
||||
/.project -text
|
||||
/eclipseFragment.txt -text
|
||||
eclipseProjectMisc/initSrc.launch -text
|
||||
eclipseProjectMisc/normSrc.launch -text
|
||||
localespi/.classpath -text
|
||||
|
@ -69,27 +68,10 @@ localespi/src/META-INF/services/java.util.spi.CurrencyNameProvider -text
|
|||
localespi/src/META-INF/services/java.util.spi.LocaleNameProvider -text
|
||||
localespi/src/META-INF/services/java.util.spi.TimeZoneNameProvider -text
|
||||
localespi/src/com/ibm/icu/impl/javaspi/ICULocaleServiceProviderConfig.properties -text
|
||||
/preprocessor.txt -text
|
||||
src/com/ibm/icu/charset/CharsetSelector.java -text
|
||||
src/com/ibm/icu/dev/data/rbbi/english.dict -text
|
||||
src/com/ibm/icu/dev/data/testdata.jar -text
|
||||
src/com/ibm/icu/dev/data/thai6.ucs -text
|
||||
src/com/ibm/icu/dev/eclipse/misc/ICUConfig.properties -text
|
||||
src/com/ibm/icu/dev/test/charset/TestSelection.java -text
|
||||
src/com/ibm/icu/dev/test/duration/RegressionTest.java -text
|
||||
src/com/ibm/icu/dev/test/perf/data/collation/TestNames_Asian.txt -text
|
||||
src/com/ibm/icu/dev/test/perf/data/collation/TestNames_Chinese.txt -text
|
||||
src/com/ibm/icu/dev/test/perf/data/collation/TestNames_Japanese.txt -text
|
||||
src/com/ibm/icu/dev/test/perf/data/collation/TestNames_Japanese_h.txt -text
|
||||
src/com/ibm/icu/dev/test/perf/data/collation/TestNames_Japanese_k.txt -text
|
||||
src/com/ibm/icu/dev/test/perf/data/collation/TestNames_Korean.txt -text
|
||||
src/com/ibm/icu/dev/test/perf/data/collation/TestNames_Latin.txt -text
|
||||
src/com/ibm/icu/dev/test/perf/data/collation/TestNames_Russian.txt -text
|
||||
src/com/ibm/icu/dev/test/perf/data/collation/TestNames_SerbianSH.txt -text
|
||||
src/com/ibm/icu/dev/test/perf/data/collation/TestNames_SerbianSR.txt -text
|
||||
src/com/ibm/icu/dev/test/perf/data/collation/TestNames_Simplified_Chinese.txt -text
|
||||
src/com/ibm/icu/dev/test/perf/data/collation/TestNames_Thai.txt -text
|
||||
src/com/ibm/icu/dev/test/rbbi/rbbitst.txt -text
|
||||
src/com/ibm/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.impl.OlsonTimeZone.dat -text
|
||||
src/com/ibm/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.impl.TimeZoneAdapter.dat -text
|
||||
src/com/ibm/icu/dev/test/serializable/data/ICU_3.6/com.ibm.icu.math.BigDecimal.dat -text
|
||||
|
@ -235,10 +217,7 @@ src/com/ibm/icu/dev/tool/docs/icu4j381.api.gz -text
|
|||
src/com/ibm/icu/dev/tool/docs/icu4j400.api.gz -text
|
||||
src/com/ibm/icu/dev/tool/docs/icu4j401.api.gz -text
|
||||
src/com/ibm/icu/dev/tool/tzu/icu.gif -text
|
||||
src/com/ibm/icu/impl/PVecToTrieCompactHandler.java -text
|
||||
src/com/ibm/icu/impl/PropsVectors.java -text
|
||||
src/com/ibm/icu/impl/data/icudata.jar -text
|
||||
src/com/ibm/icu/text/NumberingSystem.java -text
|
||||
src/com/ibm/richtext/textapps/resources/unicode.arabic.red -text
|
||||
src/com/ibm/richtext/textapps/resources/unicode.hebrew.red -text
|
||||
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
# Copyright (C) 2006-2007, International Business Machines Corporation and
|
||||
# others. All Rights Reserved.
|
||||
|
||||
# These files contains special code blocks for the ICU Eclipse fragment
|
||||
src/com/ibm/icu/impl/ByteBuffer.java
|
||||
src/com/ibm/icu/impl/ICUResourceBundleImpl.java
|
||||
src/com/ibm/icu/lang/UCharacter.java
|
||||
src/com/ibm/icu/text/DecimalFormat.java
|
||||
src/com/ibm/icu/text/RuleBasedCollator.java
|
||||
src/com/ibm/icu/util/UResourceBundle.java
|
||||
# Copyright (C) 2006-2007, International Business Machines Corporation and
|
||||
# others. All Rights Reserved.
|
||||
|
||||
# These files contains special code blocks for the ICU Eclipse fragment
|
||||
src/com/ibm/icu/impl/ByteBuffer.java
|
||||
src/com/ibm/icu/impl/ICUResourceBundleImpl.java
|
||||
src/com/ibm/icu/lang/UCharacter.java
|
||||
src/com/ibm/icu/text/DecimalFormat.java
|
||||
src/com/ibm/icu/text/RuleBasedCollator.java
|
||||
src/com/ibm/icu/util/UResourceBundle.java
|
||||
|
|
180
preprocessor.txt
180
preprocessor.txt
|
@ -1,91 +1,91 @@
|
|||
# Copyright (C) 2007-2009, International Business Machines Corporation and
|
||||
# others. All Rights Reserved.
|
||||
|
||||
## core sources
|
||||
src/com/ibm/icu/impl/ByteBuffer.java
|
||||
src/com/ibm/icu/impl/DateNumberFormat.java
|
||||
src/com/ibm/icu/impl/duration/BasicDurationFormat.java
|
||||
src/com/ibm/icu/impl/ICUResourceBundleImpl.java
|
||||
src/com/ibm/icu/impl/IllegalIcuArgumentException.java
|
||||
src/com/ibm/icu/impl/JavaTimeZone.java
|
||||
src/com/ibm/icu/impl/PatternTokenizer.java
|
||||
src/com/ibm/icu/impl/UnicodeRegex.java
|
||||
src/com/ibm/icu/impl/Utility.java
|
||||
src/com/ibm/icu/lang/UCharacter.java
|
||||
|
||||
src/com/ibm/icu/math/BigDecimal.java
|
||||
|
||||
src/com/ibm/icu/text/Bidi.java
|
||||
src/com/ibm/icu/text/CharsetRecog_sbcs.java
|
||||
src/com/ibm/icu/text/ChineseDateFormat.java
|
||||
src/com/ibm/icu/text/DateFormat.java
|
||||
src/com/ibm/icu/text/DateTimePatternGenerator.java
|
||||
src/com/ibm/icu/text/DecimalFormat.java
|
||||
src/com/ibm/icu/text/DigitList.java
|
||||
src/com/ibm/icu/text/IndexCharacters.java
|
||||
src/com/ibm/icu/text/MessageFormat.java
|
||||
src/com/ibm/icu/text/NumberFormat.java
|
||||
src/com/ibm/icu/text/RuleBasedCollator.java
|
||||
src/com/ibm/icu/text/RuleBasedNumberFormat.java
|
||||
src/com/ibm/icu/text/SimpleDateFormat.java
|
||||
src/com/ibm/icu/text/TransliteratorParser.java
|
||||
src/com/ibm/icu/text/UnicodeSet.java
|
||||
src/com/ibm/icu/text/UTF16.java
|
||||
|
||||
src/com/ibm/icu/util/ByteArrayWrapper.java
|
||||
src/com/ibm/icu/util/UResourceBundle.java
|
||||
|
||||
## test sources
|
||||
src/com/ibm/icu/dev/test/bidi/TestAll.java
|
||||
src/com/ibm/icu/dev/test/bidi/TestCompatibility.java
|
||||
src/com/ibm/icu/dev/test/bigdec/DiagBigDecimal.java
|
||||
src/com/ibm/icu/dev/test/calendar/CalendarRegression.java
|
||||
src/com/ibm/icu/dev/test/calendar/CompatibilityTest.java
|
||||
src/com/ibm/icu/dev/test/charsetdet/TestCharsetDetector.java
|
||||
src/com/ibm/icu/dev/test/cldr/TestCLDRVsICU.java
|
||||
src/com/ibm/icu/dev/test/collator/IndexCharactersTest.java
|
||||
src/com/ibm/icu/dev/test/collator/RandomCollator.java
|
||||
src/com/ibm/icu/dev/test/duration/ICUDurationTest.java
|
||||
src/com/ibm/icu/dev/test/format/BigNumberFormatTest.java
|
||||
src/com/ibm/icu/dev/test/format/DateFormatTest.java
|
||||
src/com/ibm/icu/dev/test/format/IntlTestDecimalFormatAPI.java
|
||||
src/com/ibm/icu/dev/test/format/IntlTestDecimalFormatAPIC.java
|
||||
src/com/ibm/icu/dev/test/format/IntlTestNumberFormatAPI.java
|
||||
src/com/ibm/icu/dev/test/format/NumberFormatRegressionTest.java
|
||||
src/com/ibm/icu/dev/test/format/NumberFormatTest.java
|
||||
src/com/ibm/icu/dev/test/format/NumberRegression.java
|
||||
src/com/ibm/icu/dev/test/format/RbnfTest.java
|
||||
src/com/ibm/icu/dev/test/format/TestMessageFormat.java
|
||||
src/com/ibm/icu/dev/test/ResourceModule.java
|
||||
src/com/ibm/icu/dev/test/serializable/FormatTests.java
|
||||
src/com/ibm/icu/dev/test/serializable/SerializableTest.java
|
||||
src/com/ibm/icu/dev/test/TestAll.java
|
||||
src/com/ibm/icu/dev/test/TestDataModule.java
|
||||
src/com/ibm/icu/dev/test/TestFmwk.java
|
||||
src/com/ibm/icu/dev/test/TestUtil.java
|
||||
src/com/ibm/icu/dev/test/timezone/TimeZoneAliasTest.java
|
||||
src/com/ibm/icu/dev/test/timezone/TimeZoneRegression.java
|
||||
src/com/ibm/icu/dev/test/translit/UnicodeMapTest.java
|
||||
src/com/ibm/icu/dev/test/translit/RegexUtilitiesTest.java
|
||||
src/com/ibm/icu/dev/test/translit/RoundTripTest.java
|
||||
src/com/ibm/icu/dev/test/translit/TestAll.java
|
||||
src/com/ibm/icu/dev/test/util/BagFormatter.java
|
||||
src/com/ibm/icu/dev/test/util/BNF.java
|
||||
src/com/ibm/icu/dev/test/util/CollectionUtilities.java
|
||||
src/com/ibm/icu/dev/test/util/DataInputCompressor.java
|
||||
src/com/ibm/icu/dev/test/util/DataOutputCompressor.java
|
||||
src/com/ibm/icu/dev/test/util/FileUtilities.java
|
||||
src/com/ibm/icu/dev/test/util/ICUPropertyFactory.java
|
||||
src/com/ibm/icu/dev/test/util/ICUResourceBundleTest.java
|
||||
src/com/ibm/icu/dev/test/util/TestBagFormatter.java
|
||||
src/com/ibm/icu/dev/test/util/TestBNF.java
|
||||
src/com/ibm/icu/dev/test/util/TestUtilities.java
|
||||
src/com/ibm/icu/dev/test/util/Tokenizer.java
|
||||
src/com/ibm/icu/dev/test/util/TransliteratorUtilities.java
|
||||
src/com/ibm/icu/dev/test/util/UnicodeMap.java
|
||||
src/com/ibm/icu/dev/test/util/UnicodeProperty.java
|
||||
src/com/ibm/icu/dev/test/util/UtilityTest.java
|
||||
src/com/ibm/icu/dev/test/perf/NormalizerPerformanceTest.java
|
||||
|
||||
## tool sources
|
||||
# Copyright (C) 2007-2009, International Business Machines Corporation and
|
||||
# others. All Rights Reserved.
|
||||
|
||||
## core sources
|
||||
src/com/ibm/icu/impl/ByteBuffer.java
|
||||
src/com/ibm/icu/impl/DateNumberFormat.java
|
||||
src/com/ibm/icu/impl/duration/BasicDurationFormat.java
|
||||
src/com/ibm/icu/impl/ICUResourceBundleImpl.java
|
||||
src/com/ibm/icu/impl/IllegalIcuArgumentException.java
|
||||
src/com/ibm/icu/impl/JavaTimeZone.java
|
||||
src/com/ibm/icu/impl/PatternTokenizer.java
|
||||
src/com/ibm/icu/impl/UnicodeRegex.java
|
||||
src/com/ibm/icu/impl/Utility.java
|
||||
src/com/ibm/icu/lang/UCharacter.java
|
||||
|
||||
src/com/ibm/icu/math/BigDecimal.java
|
||||
|
||||
src/com/ibm/icu/text/Bidi.java
|
||||
src/com/ibm/icu/text/CharsetRecog_sbcs.java
|
||||
src/com/ibm/icu/text/ChineseDateFormat.java
|
||||
src/com/ibm/icu/text/DateFormat.java
|
||||
src/com/ibm/icu/text/DateTimePatternGenerator.java
|
||||
src/com/ibm/icu/text/DecimalFormat.java
|
||||
src/com/ibm/icu/text/DigitList.java
|
||||
src/com/ibm/icu/text/IndexCharacters.java
|
||||
src/com/ibm/icu/text/MessageFormat.java
|
||||
src/com/ibm/icu/text/NumberFormat.java
|
||||
src/com/ibm/icu/text/RuleBasedCollator.java
|
||||
src/com/ibm/icu/text/RuleBasedNumberFormat.java
|
||||
src/com/ibm/icu/text/SimpleDateFormat.java
|
||||
src/com/ibm/icu/text/TransliteratorParser.java
|
||||
src/com/ibm/icu/text/UnicodeSet.java
|
||||
src/com/ibm/icu/text/UTF16.java
|
||||
|
||||
src/com/ibm/icu/util/ByteArrayWrapper.java
|
||||
src/com/ibm/icu/util/UResourceBundle.java
|
||||
|
||||
## test sources
|
||||
src/com/ibm/icu/dev/test/bidi/TestAll.java
|
||||
src/com/ibm/icu/dev/test/bidi/TestCompatibility.java
|
||||
src/com/ibm/icu/dev/test/bigdec/DiagBigDecimal.java
|
||||
src/com/ibm/icu/dev/test/calendar/CalendarRegression.java
|
||||
src/com/ibm/icu/dev/test/calendar/CompatibilityTest.java
|
||||
src/com/ibm/icu/dev/test/charsetdet/TestCharsetDetector.java
|
||||
src/com/ibm/icu/dev/test/cldr/TestCLDRVsICU.java
|
||||
src/com/ibm/icu/dev/test/collator/IndexCharactersTest.java
|
||||
src/com/ibm/icu/dev/test/collator/RandomCollator.java
|
||||
src/com/ibm/icu/dev/test/duration/ICUDurationTest.java
|
||||
src/com/ibm/icu/dev/test/format/BigNumberFormatTest.java
|
||||
src/com/ibm/icu/dev/test/format/DateFormatTest.java
|
||||
src/com/ibm/icu/dev/test/format/IntlTestDecimalFormatAPI.java
|
||||
src/com/ibm/icu/dev/test/format/IntlTestDecimalFormatAPIC.java
|
||||
src/com/ibm/icu/dev/test/format/IntlTestNumberFormatAPI.java
|
||||
src/com/ibm/icu/dev/test/format/NumberFormatRegressionTest.java
|
||||
src/com/ibm/icu/dev/test/format/NumberFormatTest.java
|
||||
src/com/ibm/icu/dev/test/format/NumberRegression.java
|
||||
src/com/ibm/icu/dev/test/format/RbnfTest.java
|
||||
src/com/ibm/icu/dev/test/format/TestMessageFormat.java
|
||||
src/com/ibm/icu/dev/test/ResourceModule.java
|
||||
src/com/ibm/icu/dev/test/serializable/FormatTests.java
|
||||
src/com/ibm/icu/dev/test/serializable/SerializableTest.java
|
||||
src/com/ibm/icu/dev/test/TestAll.java
|
||||
src/com/ibm/icu/dev/test/TestDataModule.java
|
||||
src/com/ibm/icu/dev/test/TestFmwk.java
|
||||
src/com/ibm/icu/dev/test/TestUtil.java
|
||||
src/com/ibm/icu/dev/test/timezone/TimeZoneAliasTest.java
|
||||
src/com/ibm/icu/dev/test/timezone/TimeZoneRegression.java
|
||||
src/com/ibm/icu/dev/test/translit/UnicodeMapTest.java
|
||||
src/com/ibm/icu/dev/test/translit/RegexUtilitiesTest.java
|
||||
src/com/ibm/icu/dev/test/translit/RoundTripTest.java
|
||||
src/com/ibm/icu/dev/test/translit/TestAll.java
|
||||
src/com/ibm/icu/dev/test/util/BagFormatter.java
|
||||
src/com/ibm/icu/dev/test/util/BNF.java
|
||||
src/com/ibm/icu/dev/test/util/CollectionUtilities.java
|
||||
src/com/ibm/icu/dev/test/util/DataInputCompressor.java
|
||||
src/com/ibm/icu/dev/test/util/DataOutputCompressor.java
|
||||
src/com/ibm/icu/dev/test/util/FileUtilities.java
|
||||
src/com/ibm/icu/dev/test/util/ICUPropertyFactory.java
|
||||
src/com/ibm/icu/dev/test/util/ICUResourceBundleTest.java
|
||||
src/com/ibm/icu/dev/test/util/TestBagFormatter.java
|
||||
src/com/ibm/icu/dev/test/util/TestBNF.java
|
||||
src/com/ibm/icu/dev/test/util/TestUtilities.java
|
||||
src/com/ibm/icu/dev/test/util/Tokenizer.java
|
||||
src/com/ibm/icu/dev/test/util/TransliteratorUtilities.java
|
||||
src/com/ibm/icu/dev/test/util/UnicodeMap.java
|
||||
src/com/ibm/icu/dev/test/util/UnicodeProperty.java
|
||||
src/com/ibm/icu/dev/test/util/UtilityTest.java
|
||||
src/com/ibm/icu/dev/test/perf/NormalizerPerformanceTest.java
|
||||
|
||||
## tool sources
|
||||
src/com/ibm/icu/dev/tool/docs/ICUTaglet.java
|
|
@ -1,249 +1,249 @@
|
|||
/*
|
||||
*******************************************************************************
|
||||
* Copyright (C) 2009, International Business Machines Corporation and *
|
||||
* others. All Rights Reserved. *
|
||||
*******************************************************************************
|
||||
*/
|
||||
|
||||
package com.ibm.icu.text;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Locale;
|
||||
import java.util.MissingResourceException;
|
||||
|
||||
import com.ibm.icu.impl.ICUResourceBundle;
|
||||
import com.ibm.icu.lang.UCharacter;
|
||||
import com.ibm.icu.util.ULocale;
|
||||
import com.ibm.icu.util.UResourceBundle;
|
||||
import com.ibm.icu.util.UResourceBundleIterator;
|
||||
import com.ibm.icu.text.UCharacterIterator;
|
||||
|
||||
/**
|
||||
* <code>NumberingSystem</code> is the base class for all number
|
||||
* systems. This class provides the interface for setting different numbering
|
||||
* system types, whether it be a simple alternate digit system such as
|
||||
* Thai digits or Devanagari digits, or an algorithmic numbering system such
|
||||
* as Hebrew numbering or Chinese numbering.
|
||||
*
|
||||
* @author John Emmons
|
||||
* @draft ICU 4.2
|
||||
*/
|
||||
class NumberingSystem {
|
||||
|
||||
/**
|
||||
* Default constructor. Returns a numbering system that uses the Western decimal
|
||||
* digits 0 through 9.
|
||||
* @draft ICU 4.2
|
||||
*/
|
||||
public NumberingSystem() {
|
||||
radix = 10;
|
||||
algorithmic = false;
|
||||
desc = "0123456789";
|
||||
}
|
||||
|
||||
/**
|
||||
* Factory method for creating a numbering system.
|
||||
* @param radix_in The radix for this numbering system. ICU currently
|
||||
* supports only numbering systems whose radix is 10.
|
||||
* @param isAlgorithmic_in Specifies whether the numbering system is algorithmic
|
||||
* (true) or numeric (false).
|
||||
* @param desc_in String used to describe the characteristics of the numbering
|
||||
* system. For numeric systems, this string contains the digits used by the
|
||||
* numbering system, in order, starting from zero. For algorithmic numbering
|
||||
* systems, the string contains the name of the RBNF ruleset in the locale's
|
||||
* NumberingSystemRules section that will be used to format numbers using
|
||||
* this numbering system.
|
||||
* @draft ICU 4.2
|
||||
*/
|
||||
public static NumberingSystem getInstance(int radix_in, boolean isAlgorithmic_in, String desc_in ) {
|
||||
if ( radix_in < 2 ) {
|
||||
throw new IllegalArgumentException("Invalid radix for numbering system");
|
||||
}
|
||||
|
||||
if ( !isAlgorithmic_in ) {
|
||||
if ( desc_in.length() != radix_in || !isValidDigitString(desc_in)) {
|
||||
throw new IllegalArgumentException("Invalid digit string for numbering system");
|
||||
}
|
||||
}
|
||||
NumberingSystem ns = new NumberingSystem();
|
||||
ns.radix = radix_in;
|
||||
ns.algorithmic = isAlgorithmic_in;
|
||||
ns.desc = desc_in;
|
||||
return ns;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the default numbering system for the specified locale.
|
||||
* @draft ICU 4.2
|
||||
*/
|
||||
public static NumberingSystem getInstance(Locale inLocale) {
|
||||
return getInstance(ULocale.forLocale(inLocale));
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the default numbering system for the specified ULocale.
|
||||
* @draft ICU 4.2
|
||||
*/
|
||||
public static NumberingSystem getInstance(ULocale locale) {
|
||||
|
||||
String numbersKeyword = locale.getKeywordValue("numbers");
|
||||
if (numbersKeyword != null) {
|
||||
NumberingSystem ns = getInstanceByName(numbersKeyword);
|
||||
if ( ns != null ) {
|
||||
return ns;
|
||||
}
|
||||
}
|
||||
|
||||
String defaultNumberingSystem;
|
||||
|
||||
try {
|
||||
ICUResourceBundle rb = (ICUResourceBundle)UResourceBundle.getBundleInstance(ICUResourceBundle.ICU_BASE_NAME,locale);
|
||||
defaultNumberingSystem = rb.getString("defaultNumberingSystem");
|
||||
} catch (MissingResourceException ex) {
|
||||
return new NumberingSystem();
|
||||
}
|
||||
|
||||
NumberingSystem ns = getInstanceByName(defaultNumberingSystem);
|
||||
if ( ns != null ) {
|
||||
return ns;
|
||||
}
|
||||
|
||||
return new NumberingSystem();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the default numbering system for the default locale.
|
||||
* @draft ICU 4.2
|
||||
*/
|
||||
public static NumberingSystem getInstance() {
|
||||
return getInstance(ULocale.getDefault());
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a numbering system from one of the predefined numbering systems
|
||||
* known to ICU. Numbering system names are based on the numbering systems
|
||||
* defined in CLDR. To get a list of available numbering systems, use the
|
||||
* getAvailableNames method.
|
||||
* @param name The name of the desired numbering system. Numbering system
|
||||
* names often correspond with the name of the script they are associated
|
||||
* with. For example, "thai" for Thai digits, "hebr" for Hebrew numerals.
|
||||
* @draft ICU 4.2
|
||||
*/
|
||||
public static NumberingSystem getInstanceByName(String name) {
|
||||
int radix;
|
||||
boolean isAlgorithmic;
|
||||
String description;
|
||||
try {
|
||||
UResourceBundle numberingSystemsInfo = UResourceBundle.getBundleInstance(ICUResourceBundle.ICU_BASE_NAME, "numberingSystems");
|
||||
UResourceBundle nsCurrent = numberingSystemsInfo.get("numberingSystems");
|
||||
UResourceBundle nsTop = nsCurrent.get(name);
|
||||
|
||||
description = nsTop.getString("desc");
|
||||
UResourceBundle nsRadixBundle = nsTop.get("radix");
|
||||
UResourceBundle nsAlgBundle = nsTop.get("algorithmic");
|
||||
radix = nsRadixBundle.getInt();
|
||||
int algorithmic = nsAlgBundle.getInt();
|
||||
|
||||
isAlgorithmic = ( algorithmic == 1 );
|
||||
|
||||
} catch (MissingResourceException ex) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return getInstance(radix,isAlgorithmic,description);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a string array containing a list of the names of numbering systems
|
||||
* currently known to ICU.
|
||||
* @draft ICU 4.2
|
||||
*/
|
||||
public static String [] getAvailableNames() {
|
||||
|
||||
UResourceBundle numberingSystemsInfo = UResourceBundle.getBundleInstance(ICUResourceBundle.ICU_BASE_NAME, "numberingSystems");
|
||||
UResourceBundle nsCurrent = numberingSystemsInfo.get("numberingSystems");
|
||||
UResourceBundle temp;
|
||||
|
||||
String nsName;
|
||||
ArrayList output = new ArrayList();
|
||||
UResourceBundleIterator it = nsCurrent.getIterator();
|
||||
while (it.hasNext()) {
|
||||
temp = it.next();
|
||||
nsName = temp.getKey();
|
||||
output.add(nsName);
|
||||
}
|
||||
return (String[]) output.toArray(new String[output.size()]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Convenience method to determine if a given digit string is valid for use as a
|
||||
* descriptor of a numeric ( non-algorithmic ) numbering system. In order for
|
||||
* a digit string to be valid, it must meet the following criteria:
|
||||
* 1. It must only contain characters that are decimal digits as defined by Unicode.
|
||||
* 2. It must contain characters that are contiguous code points.
|
||||
* 3. Digits must be in Unicode's basic multilingual plane.
|
||||
* @draft ICU 4.2
|
||||
*/
|
||||
public static boolean isValidDigitString(String str) {
|
||||
|
||||
int c;
|
||||
int prev = 0;
|
||||
int i = 0;
|
||||
UCharacterIterator it = UCharacterIterator.getInstance(str);
|
||||
|
||||
it.setToStart();
|
||||
while ( (c = it.nextCodePoint()) != UCharacterIterator.DONE) {
|
||||
if ( UCharacter.digit(c) != i ) { // Digits outside the Unicode decimal digit class are not currently supported
|
||||
return false;
|
||||
}
|
||||
if ( prev != 0 && c != prev + 1 ) { // Non-contiguous digits are not currently supported
|
||||
return false;
|
||||
}
|
||||
if ( UCharacter.isSupplementary(c)) { // Digits outside the BMP are not currently supported
|
||||
return false;
|
||||
}
|
||||
i++;
|
||||
prev = c;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the radix of the current numbering system.
|
||||
* @draft ICU 4.2
|
||||
*/
|
||||
public int getRadix() {
|
||||
return radix;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the description string of the current numbering system.
|
||||
* The description string describes the characteristics of the numbering
|
||||
* system. For numeric systems, this string contains the digits used by the
|
||||
* numbering system, in order, starting from zero. For algorithmic numbering
|
||||
* systems, the string contains the name of the RBNF ruleset in the locale's
|
||||
* NumberingSystemRules section that will be used to format numbers using
|
||||
* this numbering system.
|
||||
* @draft ICU 4.2
|
||||
*/
|
||||
public String getDescription() {
|
||||
return desc;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the numbering system's algorithmic status. If true,
|
||||
* the numbering system is algorithmic and uses an RBNF formatter to
|
||||
* format numerals. If false, the numbering system is numeric and
|
||||
* uses a fixed set of digits.
|
||||
* @draft ICU 4.2
|
||||
*/
|
||||
public boolean isAlgorithmic() {
|
||||
return algorithmic;
|
||||
}
|
||||
|
||||
|
||||
private String desc;
|
||||
private int radix;
|
||||
private boolean algorithmic;
|
||||
|
||||
}
|
||||
/*
|
||||
*******************************************************************************
|
||||
* Copyright (C) 2009, International Business Machines Corporation and *
|
||||
* others. All Rights Reserved. *
|
||||
*******************************************************************************
|
||||
*/
|
||||
|
||||
package com.ibm.icu.text;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Locale;
|
||||
import java.util.MissingResourceException;
|
||||
|
||||
import com.ibm.icu.impl.ICUResourceBundle;
|
||||
import com.ibm.icu.lang.UCharacter;
|
||||
import com.ibm.icu.util.ULocale;
|
||||
import com.ibm.icu.util.UResourceBundle;
|
||||
import com.ibm.icu.util.UResourceBundleIterator;
|
||||
import com.ibm.icu.text.UCharacterIterator;
|
||||
|
||||
/**
|
||||
* <code>NumberingSystem</code> is the base class for all number
|
||||
* systems. This class provides the interface for setting different numbering
|
||||
* system types, whether it be a simple alternate digit system such as
|
||||
* Thai digits or Devanagari digits, or an algorithmic numbering system such
|
||||
* as Hebrew numbering or Chinese numbering.
|
||||
*
|
||||
* @author John Emmons
|
||||
* @draft ICU 4.2
|
||||
*/
|
||||
class NumberingSystem {
|
||||
|
||||
/**
|
||||
* Default constructor. Returns a numbering system that uses the Western decimal
|
||||
* digits 0 through 9.
|
||||
* @draft ICU 4.2
|
||||
*/
|
||||
public NumberingSystem() {
|
||||
radix = 10;
|
||||
algorithmic = false;
|
||||
desc = "0123456789";
|
||||
}
|
||||
|
||||
/**
|
||||
* Factory method for creating a numbering system.
|
||||
* @param radix_in The radix for this numbering system. ICU currently
|
||||
* supports only numbering systems whose radix is 10.
|
||||
* @param isAlgorithmic_in Specifies whether the numbering system is algorithmic
|
||||
* (true) or numeric (false).
|
||||
* @param desc_in String used to describe the characteristics of the numbering
|
||||
* system. For numeric systems, this string contains the digits used by the
|
||||
* numbering system, in order, starting from zero. For algorithmic numbering
|
||||
* systems, the string contains the name of the RBNF ruleset in the locale's
|
||||
* NumberingSystemRules section that will be used to format numbers using
|
||||
* this numbering system.
|
||||
* @draft ICU 4.2
|
||||
*/
|
||||
public static NumberingSystem getInstance(int radix_in, boolean isAlgorithmic_in, String desc_in ) {
|
||||
if ( radix_in < 2 ) {
|
||||
throw new IllegalArgumentException("Invalid radix for numbering system");
|
||||
}
|
||||
|
||||
if ( !isAlgorithmic_in ) {
|
||||
if ( desc_in.length() != radix_in || !isValidDigitString(desc_in)) {
|
||||
throw new IllegalArgumentException("Invalid digit string for numbering system");
|
||||
}
|
||||
}
|
||||
NumberingSystem ns = new NumberingSystem();
|
||||
ns.radix = radix_in;
|
||||
ns.algorithmic = isAlgorithmic_in;
|
||||
ns.desc = desc_in;
|
||||
return ns;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the default numbering system for the specified locale.
|
||||
* @draft ICU 4.2
|
||||
*/
|
||||
public static NumberingSystem getInstance(Locale inLocale) {
|
||||
return getInstance(ULocale.forLocale(inLocale));
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the default numbering system for the specified ULocale.
|
||||
* @draft ICU 4.2
|
||||
*/
|
||||
public static NumberingSystem getInstance(ULocale locale) {
|
||||
|
||||
String numbersKeyword = locale.getKeywordValue("numbers");
|
||||
if (numbersKeyword != null) {
|
||||
NumberingSystem ns = getInstanceByName(numbersKeyword);
|
||||
if ( ns != null ) {
|
||||
return ns;
|
||||
}
|
||||
}
|
||||
|
||||
String defaultNumberingSystem;
|
||||
|
||||
try {
|
||||
ICUResourceBundle rb = (ICUResourceBundle)UResourceBundle.getBundleInstance(ICUResourceBundle.ICU_BASE_NAME,locale);
|
||||
defaultNumberingSystem = rb.getString("defaultNumberingSystem");
|
||||
} catch (MissingResourceException ex) {
|
||||
return new NumberingSystem();
|
||||
}
|
||||
|
||||
NumberingSystem ns = getInstanceByName(defaultNumberingSystem);
|
||||
if ( ns != null ) {
|
||||
return ns;
|
||||
}
|
||||
|
||||
return new NumberingSystem();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the default numbering system for the default locale.
|
||||
* @draft ICU 4.2
|
||||
*/
|
||||
public static NumberingSystem getInstance() {
|
||||
return getInstance(ULocale.getDefault());
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a numbering system from one of the predefined numbering systems
|
||||
* known to ICU. Numbering system names are based on the numbering systems
|
||||
* defined in CLDR. To get a list of available numbering systems, use the
|
||||
* getAvailableNames method.
|
||||
* @param name The name of the desired numbering system. Numbering system
|
||||
* names often correspond with the name of the script they are associated
|
||||
* with. For example, "thai" for Thai digits, "hebr" for Hebrew numerals.
|
||||
* @draft ICU 4.2
|
||||
*/
|
||||
public static NumberingSystem getInstanceByName(String name) {
|
||||
int radix;
|
||||
boolean isAlgorithmic;
|
||||
String description;
|
||||
try {
|
||||
UResourceBundle numberingSystemsInfo = UResourceBundle.getBundleInstance(ICUResourceBundle.ICU_BASE_NAME, "numberingSystems");
|
||||
UResourceBundle nsCurrent = numberingSystemsInfo.get("numberingSystems");
|
||||
UResourceBundle nsTop = nsCurrent.get(name);
|
||||
|
||||
description = nsTop.getString("desc");
|
||||
UResourceBundle nsRadixBundle = nsTop.get("radix");
|
||||
UResourceBundle nsAlgBundle = nsTop.get("algorithmic");
|
||||
radix = nsRadixBundle.getInt();
|
||||
int algorithmic = nsAlgBundle.getInt();
|
||||
|
||||
isAlgorithmic = ( algorithmic == 1 );
|
||||
|
||||
} catch (MissingResourceException ex) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return getInstance(radix,isAlgorithmic,description);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a string array containing a list of the names of numbering systems
|
||||
* currently known to ICU.
|
||||
* @draft ICU 4.2
|
||||
*/
|
||||
public static String [] getAvailableNames() {
|
||||
|
||||
UResourceBundle numberingSystemsInfo = UResourceBundle.getBundleInstance(ICUResourceBundle.ICU_BASE_NAME, "numberingSystems");
|
||||
UResourceBundle nsCurrent = numberingSystemsInfo.get("numberingSystems");
|
||||
UResourceBundle temp;
|
||||
|
||||
String nsName;
|
||||
ArrayList output = new ArrayList();
|
||||
UResourceBundleIterator it = nsCurrent.getIterator();
|
||||
while (it.hasNext()) {
|
||||
temp = it.next();
|
||||
nsName = temp.getKey();
|
||||
output.add(nsName);
|
||||
}
|
||||
return (String[]) output.toArray(new String[output.size()]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Convenience method to determine if a given digit string is valid for use as a
|
||||
* descriptor of a numeric ( non-algorithmic ) numbering system. In order for
|
||||
* a digit string to be valid, it must meet the following criteria:
|
||||
* 1. It must only contain characters that are decimal digits as defined by Unicode.
|
||||
* 2. It must contain characters that are contiguous code points.
|
||||
* 3. Digits must be in Unicode's basic multilingual plane.
|
||||
* @draft ICU 4.2
|
||||
*/
|
||||
public static boolean isValidDigitString(String str) {
|
||||
|
||||
int c;
|
||||
int prev = 0;
|
||||
int i = 0;
|
||||
UCharacterIterator it = UCharacterIterator.getInstance(str);
|
||||
|
||||
it.setToStart();
|
||||
while ( (c = it.nextCodePoint()) != UCharacterIterator.DONE) {
|
||||
if ( UCharacter.digit(c) != i ) { // Digits outside the Unicode decimal digit class are not currently supported
|
||||
return false;
|
||||
}
|
||||
if ( prev != 0 && c != prev + 1 ) { // Non-contiguous digits are not currently supported
|
||||
return false;
|
||||
}
|
||||
if ( UCharacter.isSupplementary(c)) { // Digits outside the BMP are not currently supported
|
||||
return false;
|
||||
}
|
||||
i++;
|
||||
prev = c;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the radix of the current numbering system.
|
||||
* @draft ICU 4.2
|
||||
*/
|
||||
public int getRadix() {
|
||||
return radix;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the description string of the current numbering system.
|
||||
* The description string describes the characteristics of the numbering
|
||||
* system. For numeric systems, this string contains the digits used by the
|
||||
* numbering system, in order, starting from zero. For algorithmic numbering
|
||||
* systems, the string contains the name of the RBNF ruleset in the locale's
|
||||
* NumberingSystemRules section that will be used to format numbers using
|
||||
* this numbering system.
|
||||
* @draft ICU 4.2
|
||||
*/
|
||||
public String getDescription() {
|
||||
return desc;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the numbering system's algorithmic status. If true,
|
||||
* the numbering system is algorithmic and uses an RBNF formatter to
|
||||
* format numerals. If false, the numbering system is numeric and
|
||||
* uses a fixed set of digits.
|
||||
* @draft ICU 4.2
|
||||
*/
|
||||
public boolean isAlgorithmic() {
|
||||
return algorithmic;
|
||||
}
|
||||
|
||||
|
||||
private String desc;
|
||||
private int radix;
|
||||
private boolean algorithmic;
|
||||
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue