< prev index next >

test/jdk/java/util/Locale/LSRDataTest.java

Print this page
rev 58690 : [mq]: 8242010

*** 1,7 **** /* ! * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. --- 1,7 ---- /* ! * Copyright (c) 2018, 2020, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation.
*** 21,31 **** * questions. */ /* * @test ! * @bug 8204938 * @summary Checks the IANA language subtag registry data update * with Locale.LanguageRange parse method. * @run main LSRDataTest */ import java.io.IOException; --- 21,31 ---- * questions. */ /* * @test ! * @bug 8204938 8242010 * @summary Checks the IANA language subtag registry data update * with Locale.LanguageRange parse method. * @run main LSRDataTest */ import java.io.IOException;
*** 98,130 **** // load LSR data from the file private static void loadLSRData(Path path) throws IOException { String type = null; String tag = null; ! String preferred; for (String line : Files.readAllLines(path, Charset.forName("UTF-8"))) { line = line.toLowerCase(Locale.ROOT); int index = line.indexOf(' ') + 1; if (line.startsWith("type:")) { type = line.substring(index); } else if (line.startsWith("tag:") || line.startsWith("subtag:")) { tag = line.substring(index); ! } else if (line.startsWith("preferred-value:") && !type.equals("extlang")) { preferred = line.substring(index); ! processDataAndGenerateMaps(type, tag, preferred); } else if (line.equals("%%")) { type = null; tag = null; } } } private static void processDataAndGenerateMaps(String type, String tag, ! String preferred) { ! StringBuilder sb; if (type.equals("region") || type.equals("variant")) { if (!regionVariantEquivMap.containsKey(preferred)) { String tPref = HYPHEN + preferred; String tTag = HYPHEN + tag; regionVariantEquivMap.put(tPref, tTag); --- 98,147 ---- // load LSR data from the file private static void loadLSRData(Path path) throws IOException { String type = null; String tag = null; ! String preferred = null; ! String prefix = null; for (String line : Files.readAllLines(path, Charset.forName("UTF-8"))) { line = line.toLowerCase(Locale.ROOT); int index = line.indexOf(' ') + 1; if (line.startsWith("type:")) { type = line.substring(index); } else if (line.startsWith("tag:") || line.startsWith("subtag:")) { tag = line.substring(index); ! } else if (line.startsWith("preferred-value:")) { preferred = line.substring(index); ! } else if (line.startsWith("prefix:")) { ! prefix = line.substring(index); } else if (line.equals("%%")) { + processDataAndGenerateMaps(type, tag, preferred, prefix); type = null; tag = null; + preferred = null; + prefix = null; } } + + // Last entry + processDataAndGenerateMaps(type, tag, preferred, prefix); } private static void processDataAndGenerateMaps(String type, String tag, ! String preferred, ! String prefix) { ! ! if (type == null || tag == null || preferred == null) { ! return; ! } ! ! if (type.equals("extlang") && prefix != null) { ! tag = prefix + "-" + tag; ! } ! if (type.equals("region") || type.equals("variant")) { if (!regionVariantEquivMap.containsKey(preferred)) { String tPref = HYPHEN + preferred; String tTag = HYPHEN + tag; regionVariantEquivMap.put(tPref, tTag);
*** 132,142 **** } else { throw new RuntimeException("New case, need implementation." + " A region/variant subtag \"" + preferred + "\" is registered for more than one subtags."); } ! } else { // language, grandfathered, and redundant if (!singleLangEquivMap.containsKey(preferred) && !multiLangEquivsMap.containsKey(preferred)) { // new entry add it into single equiv map singleLangEquivMap.put(preferred, tag); singleLangEquivMap.put(tag, preferred); --- 149,159 ---- } else { throw new RuntimeException("New case, need implementation." + " A region/variant subtag \"" + preferred + "\" is registered for more than one subtags."); } ! } else { // language, extlang, grandfathered, and redundant if (!singleLangEquivMap.containsKey(preferred) && !multiLangEquivsMap.containsKey(preferred)) { // new entry add it into single equiv map singleLangEquivMap.put(preferred, tag); singleLangEquivMap.put(tag, preferred);
< prev index next >