blob: dfb2182301cc31ac5e132a04a248acf0bb3a286a [file] [log] [blame]
package org.unicode.cldr.tool;
import java.util.EnumMap;
import java.util.TreeSet;
import org.unicode.cldr.util.CLDRConfig;
import org.unicode.cldr.util.CLDRFile;
import org.unicode.cldr.util.CoverageInfo;
import org.unicode.cldr.util.Level;
import com.ibm.icu.impl.Relation;
public class ShowCoverageLevels {
private static CLDRConfig testInfo = ToolConfig.getToolInstance();
private static int count = 0;
public static void main(String[] args) {
if (true) {
//ShowLocaleCoverage foo;
throw new IllegalArgumentException("See ShowLocaleCoverage (TODO: merge these).");
}
double startTime = System.currentTimeMillis();
Relation<Level, String> values = new Relation(new EnumMap<Level, String>(Level.class), TreeSet.class);
int oldSize = 0;
CoverageInfo coverageInfo = CLDRConfig.getInstance().getCoverageInfo();
for (String locale : testInfo.getCldrFactory().getAvailable()) {
CLDRFile cldrFileToCheck = testInfo.getCldrFactory().make(locale, true);
for (String path : cldrFileToCheck) {
String fullPath = cldrFileToCheck.getFullXPath(path);
if (fullPath == null) {
continue;
}
try {
// Level level = testInfo.getSupplementalDataInfo().getCoverageLevel(fullPath, locale);
Level level = coverageInfo.getCoverageLevel(fullPath, locale);
values.put(level, path);
} catch (Exception e) {
String value = cldrFileToCheck.getStringValue(path);
System.out.println("Can't create coverage level for path\t"
+ locale + ", " + path + ", " + fullPath + ", " + value);
}
}
int size = keyValuePairCount(values);
int deltaSize = size - oldSize;
oldSize = size;
System.out.println(locale + "\tadditions: " + deltaSize + "\ttotal: " + size);
}
double deltaTime = System.currentTimeMillis() - startTime;
System.out.println("Elapsed: " + deltaTime / 1000.0 + " seconds");
System.out.println("Instances found: " + count);
for (Level level : values.keySet()) {
System.out.println(level.toString());
for (String path : values.getAll(level)) {
System.out.println("\t" + path);
}
}
}
private static int keyValuePairCount(Relation<Level, String> values) {
return values.entrySet().size();
}
}