< prev index next >

make/jdk/src/classes/build/tools/cldrconverter/LDMLParseHandler.java

Print this page
rev 47480 : [mq]: 8176841

*** 74,89 **** // case "identity": // ignore this element - it has language and territory elements that aren't locale data pushIgnoredContainer(qName); break; ! case "type": ! if ("calendar".equals(attributes.getValue("key"))) { ! pushStringEntry(qName, attributes, CLDRConverter.CALENDAR_NAME_PREFIX + attributes.getValue("type")); ! } else { ! pushIgnoredContainer(qName); ! } break; case "language": case "script": case "territory": --- 74,93 ---- // case "identity": // ignore this element - it has language and territory elements that aren't locale data pushIgnoredContainer(qName); break; ! ! // for LocaleNames ! // copy string ! case "localeSeparator": ! pushStringEntry(qName, attributes, ! CLDRConverter.LOCALE_SEPARATOR); ! break; ! case "localeKeyTypePattern": ! pushStringEntry(qName, attributes, ! CLDRConverter.LOCALE_KEYTYPE); break; case "language": case "script": case "territory":
*** 94,103 **** --- 98,125 ---- CLDRConverter.LOCALE_NAME_PREFIX + (qName.equals("variant") ? "%%" : "") + attributes.getValue("type")); break; + case "key": + // for LocaleNames + // copy string + pushStringEntry(qName, attributes, + CLDRConverter.LOCALE_KEY_PREFIX + + convertOldKeyName(attributes.getValue("type"))); + break; + + case "type": + // for LocaleNames/CalendarNames + // copy string + pushStringEntry(qName, attributes, + CLDRConverter.LOCALE_TYPE_PREFIX + + convertOldKeyName(attributes.getValue("key")) + "." + + attributes.getValue("type")); + + break; + // // Currency information // case "currency": // for CurrencyNames
*** 513,542 **** // Use keys as <script>."NumberElements/<symbol>" currentNumberingSystem = script + "."; String digits = CLDRConverter.handlerNumbering.get(script); if (digits == null) { - throw new InternalError("null digits for " + script); - } - if (Character.isSurrogate(digits.charAt(0))) { - // DecimalFormatSymbols doesn't support supplementary characters as digit zero. pushIgnoredContainer(qName); break; } ! // in case digits are in the reversed order, reverse back the order. ! if (digits.charAt(0) > digits.charAt(digits.length() - 1)) { ! StringBuilder sb = new StringBuilder(digits); ! digits = sb.reverse().toString(); ! } ! // Check if the order is sequential. ! char c0 = digits.charAt(0); ! for (int i = 1; i < digits.length(); i++) { ! if (digits.charAt(i) != c0 + i) { ! pushIgnoredContainer(qName); ! break symbols; ! } ! } @SuppressWarnings("unchecked") List<String> numberingScripts = (List<String>) get("numberingScripts"); if (numberingScripts == null) { numberingScripts = new ArrayList<>(); put("numberingScripts", numberingScripts); --- 535,548 ---- // Use keys as <script>."NumberElements/<symbol>" currentNumberingSystem = script + "."; String digits = CLDRConverter.handlerNumbering.get(script); if (digits == null) { pushIgnoredContainer(qName); break; } ! @SuppressWarnings("unchecked") List<String> numberingScripts = (List<String>) get("numberingScripts"); if (numberingScripts == null) { numberingScripts = new ArrayList<>(); put("numberingScripts", numberingScripts);
*** 935,940 **** --- 941,965 ---- } put(entry.getKey(), value); } } } + + public String convertOldKeyName(String key) { + // TODO: This should not be hard coded. Instead, obtained from "alias" + // attribute in each "key" element. + switch (key) { + case "calendar": + return "ca"; + case "currency": + return "cu"; + case "collation": + return "co"; + case "numbers": + return "nu"; + case "timezone": + return "tz"; + default: + return key; + } } + }
< prev index next >