Skip to content

Commit 959829f

Browse files
authored
CLDR-19035 GenerateExampleDependencies, performance, refactoring (#5194)
Merging this, keeping in mind the suggestions for improvements for a follow-up PR
1 parent 9a3c768 commit 959829f

35 files changed

+357
-242
lines changed

tools/cldr-apps/src/main/java/org/unicode/cldr/web/SurveyAjax.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2957,8 +2957,8 @@ private static void generateDateTimesReport(Writer out, SurveyMain sm, CLDRLocal
29572957
CLDRFile englishFile = fac.make("en", true);
29582958
CLDRFile nativeFile = fac.make(l, true);
29592959

2960-
DateTimeFormats formats = new DateTimeFormats().set(nativeFile, calendarType);
2961-
DateTimeFormats english = new DateTimeFormats().set(englishFile, calendarType);
2960+
DateTimeFormats formats = new DateTimeFormats(nativeFile, calendarType);
2961+
DateTimeFormats english = new DateTimeFormats(englishFile, calendarType);
29622962

29632963
formats.addTable(english, out);
29642964
formats.addDateTable(englishFile, out);

tools/cldr-code/src/main/java/org/unicode/cldr/icu/TestCldr.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@
4646
import org.unicode.cldr.util.CldrUtility;
4747
import org.unicode.cldr.util.Factory;
4848
import org.unicode.cldr.util.LanguageTagParser;
49+
import org.unicode.cldr.util.LocaleNames;
4950
import org.unicode.cldr.util.PathUtilities;
5051
import org.unicode.cldr.util.PatternCache;
5152
import org.xml.sax.Attributes;
@@ -223,7 +224,7 @@ void set(AttributeName attributeName, String attributeValue) {
223224
}
224225

225226
void checkResult(String value) {
226-
ULocale ul = new ULocale("xx");
227+
ULocale ul = new ULocale(LocaleNames.XX_TEST);
227228
try {
228229
for (int i = 0; i < currentLocales.size(); ++i) {
229230
ul = currentLocales.get(i);

tools/cldr-code/src/main/java/org/unicode/cldr/test/BuildIcuCompactDecimalFormat.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import java.util.TreeMap;
1919
import java.util.regex.Pattern;
2020
import org.unicode.cldr.util.CLDRFile;
21+
import org.unicode.cldr.util.CLDRLocale;
2122
import org.unicode.cldr.util.ICUServiceBuilder;
2223
import org.unicode.cldr.util.PatternCache;
2324
import org.unicode.cldr.util.SupplementalDataInfo;
@@ -74,8 +75,8 @@ public static final CompactDecimalFormat build(
7475
}
7576

7677
// get the common CLDR data used for number/date/time formats
77-
78-
ICUServiceBuilder builder = new ICUServiceBuilder().setCldrFile(resolvedCldrFile);
78+
final CLDRLocale loc = CLDRLocale.getInstance(resolvedCldrFile.getLocaleID());
79+
final ICUServiceBuilder builder = ICUServiceBuilder.forLocale(loc);
7980

8081
DecimalFormat decimalFormat =
8182
currencyStyle == CurrencyStyle.PLAIN

tools/cldr-code/src/main/java/org/unicode/cldr/test/CheckDates.java

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ public class CheckDates extends FactoryCheckCLDR {
6464
static boolean GREGORIAN_ONLY = CldrUtility.getProperty("GREGORIAN", false);
6565
private static final Set<String> CALENDARS_FOR_CORES = Set.of("gregorian", "iso8601");
6666

67-
ICUServiceBuilder icuServiceBuilder = new ICUServiceBuilder();
67+
private ICUServiceBuilder icuServiceBuilder;
6868
DateTimePatternGenerator.FormatParser formatParser =
6969
new DateTimePatternGenerator.FormatParser();
7070
DateTimePatternGenerator dateTimePatternGenerator = DateTimePatternGenerator.getEmptyInstance();
@@ -130,34 +130,33 @@ public CheckCLDR handleSetCldrFileToCheck(
130130
CLDRFile cldrFileToCheck, Options options, List<CheckStatus> possibleErrors) {
131131
if (cldrFileToCheck == null) return this;
132132
super.handleSetCldrFileToCheck(cldrFileToCheck, options, possibleErrors);
133+
String localeID = cldrFileToCheck.getLocaleID();
134+
final CLDRLocale loc = CLDRLocale.getInstance(localeID);
135+
this.icuServiceBuilder = ICUServiceBuilder.forLocale(loc);
133136

134-
icuServiceBuilder.setCldrFile(getResolvedCldrFileToCheck());
135137
// the following is a hack to work around a bug in ICU4J (the snapshot, not the released
136138
// version).
137139
try {
138-
bi = BreakIterator.getCharacterInstance(new ULocale(cldrFileToCheck.getLocaleID()));
140+
bi = BreakIterator.getCharacterInstance(new ULocale(localeID));
139141
} catch (RuntimeException e) {
140142
bi = BreakIterator.getCharacterInstance(new ULocale(""));
141143
}
142144
CLDRFile resolved = getResolvedCldrFileToCheck();
143-
flexInfo = new FlexibleDateFromCLDR(); // ought to just clear(), but not available.
144-
flexInfo.set(resolved);
145+
flexInfo = new FlexibleDateFromCLDR(resolved);
145146

146147
// load decimal path specially
147148
String decimal = resolved.getWinningValue(DECIMAL_XPATH);
148149
if (decimal != null) {
149150
flexInfo.checkFlexibles(DECIMAL_XPATH, decimal, DECIMAL_XPATH);
150151
}
151152

152-
String localeID = cldrFileToCheck.getLocaleID();
153153
LocaleIDParser lp = new LocaleIDParser();
154154
territory = lp.set(localeID).getRegion();
155155
language = lp.getLanguage();
156156
if (territory == null || territory.isEmpty()) {
157157
if (language.equals("root")) {
158158
territory = "001";
159159
} else {
160-
CLDRLocale loc = CLDRLocale.getInstance(localeID);
161160
CLDRLocale defContent = sdi.getDefaultContentFromBase(loc);
162161
if (defContent == null) {
163162
territory = "001";

tools/cldr-code/src/main/java/org/unicode/cldr/test/CheckNumbers.java

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import org.unicode.cldr.test.DisplayAndInputProcessor.NumericType;
2020
import org.unicode.cldr.util.CLDRConfig;
2121
import org.unicode.cldr.util.CLDRFile;
22+
import org.unicode.cldr.util.CLDRLocale;
2223
import org.unicode.cldr.util.CldrUtility;
2324
import org.unicode.cldr.util.Factory;
2425
import org.unicode.cldr.util.ICUServiceBuilder;
@@ -47,13 +48,12 @@ public class CheckNumbers extends FactoryCheckCLDR {
4748
* If you are going to use ICU services, then ICUServiceBuilder will allow you to create them
4849
* entirely from CLDR data, without using the ICU data.
4950
*/
50-
private ICUServiceBuilder icuServiceBuilder = new ICUServiceBuilder();
51+
private ICUServiceBuilder icuServiceBuilder;
5152

5253
private Set<Count> pluralTypes;
5354
private Map<Count, Set<Double>> pluralExamples;
5455
private Set<String> validNumberingSystems;
5556

56-
private String defaultNumberingSystem;
5757
private String defaultTimeSeparatorPath;
5858
private String patternForHm;
5959

@@ -93,18 +93,19 @@ public CheckCLDR handleSetCldrFileToCheck(
9393
CLDRFile cldrFileToCheck, Options options, List<CheckStatus> possibleErrors) {
9494
if (cldrFileToCheck == null) return this;
9595
super.handleSetCldrFileToCheck(cldrFileToCheck, options, possibleErrors);
96-
icuServiceBuilder.setCldrFile(getResolvedCldrFileToCheck());
96+
String localeId = cldrFileToCheck.getLocaleID();
97+
CLDRLocale loc = CLDRLocale.getInstance(localeId);
98+
this.icuServiceBuilder = ICUServiceBuilder.forLocale(loc);
9799
isPOSIX = cldrFileToCheck.getLocaleID().indexOf("POSIX") >= 0;
98100
SupplementalDataInfo supplementalData =
99101
SupplementalDataInfo.getInstance(getFactory().getSupplementalDirectory());
100-
PluralInfo pluralInfo =
101-
supplementalData.getPlurals(PluralType.cardinal, cldrFileToCheck.getLocaleID());
102+
PluralInfo pluralInfo = supplementalData.getPlurals(PluralType.cardinal, localeId);
102103
pluralTypes = pluralInfo.getCounts();
103104
pluralExamples = pluralInfo.getCountToExamplesMap();
104105
validNumberingSystems = supplementalData.getNumberingSystems();
105106

106107
CLDRFile resolvedFile = getResolvedCldrFileToCheck();
107-
defaultNumberingSystem =
108+
String defaultNumberingSystem =
108109
resolvedFile.getWinningValue("//ldml/numbers/defaultNumberingSystem");
109110
if (defaultNumberingSystem == null
110111
|| !validNumberingSystems.contains(defaultNumberingSystem)) {

tools/cldr-code/src/main/java/org/unicode/cldr/test/ConsoleCheckCLDR.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -553,7 +553,6 @@ public static void main(String[] args) throws Throwable {
553553
Set<PathHeader> paths = new TreeSet<>(); // CLDRFile.ldmlComparator);
554554
Map<String, String> m = new TreeMap<>();
555555
Map<String, String> options = new HashMap<>();
556-
FlexibleDateFromCLDR fset = new FlexibleDateFromCLDR();
557556

558557
if (CLDRFile.isSupplementalName(localeID)) return;
559558
if (supplementalDataInfo.getDefaultContentLocales().contains(localeID)) {
@@ -681,9 +680,8 @@ public static void main(String[] args) throws Throwable {
681680

682681
UnicodeSet missingExemplars = new UnicodeSet();
683682
UnicodeSet missingCurrencyExemplars = new UnicodeSet();
684-
if (checkFlexibleDates) {
685-
fset.set(file);
686-
}
683+
FlexibleDateFromCLDR fset =
684+
checkFlexibleDates ? new FlexibleDateFromCLDR(file) : null;
687685
pathShower.set(localeID);
688686

689687
// only create if we are going to use it

0 commit comments

Comments
 (0)