871 if (!dataKey.equals(ukey)) { 872 formatData.put(ukey, value); 873 } 874 } 875 } 876 } 877 } 878 879 copyIfPresent(map, "DefaultNumberingSystem", formatData); 880 881 @SuppressWarnings("unchecked") 882 List<String> numberingScripts = (List<String>) map.remove("numberingScripts"); 883 if (numberingScripts != null) { 884 for (String script : numberingScripts) { 885 copyIfPresent(map, script + "." + "NumberElements", formatData); 886 } 887 } else { 888 copyIfPresent(map, "NumberElements", formatData); 889 } 890 copyIfPresent(map, "NumberPatterns", formatData); 891 892 // put extra number elements for available scripts into formatData, if it is "root" 893 if (id.equals("root")) { 894 handlerNumbering.keySet().stream() 895 .filter(k -> !numberingScripts.contains(k)) 896 .forEach(k -> { 897 String[] ne = (String[])map.get("latn.NumberElements"); 898 String[] neNew = Arrays.copyOf(ne, ne.length); 899 neNew[4] = handlerNumbering.get(k).substring(0, 1); 900 formatData.put(k + ".NumberElements", neNew); 901 }); 902 } 903 return formatData; 904 } 905 906 private static void copyIfPresent(Map<String, Object> src, String key, Map<String, Object> dest) { 907 Object value = src.get(key); 908 if (value != null) { 909 dest.put(key, value); 910 } | 871 if (!dataKey.equals(ukey)) { 872 formatData.put(ukey, value); 873 } 874 } 875 } 876 } 877 } 878 879 copyIfPresent(map, "DefaultNumberingSystem", formatData); 880 881 @SuppressWarnings("unchecked") 882 List<String> numberingScripts = (List<String>) map.remove("numberingScripts"); 883 if (numberingScripts != null) { 884 for (String script : numberingScripts) { 885 copyIfPresent(map, script + "." + "NumberElements", formatData); 886 } 887 } else { 888 copyIfPresent(map, "NumberElements", formatData); 889 } 890 copyIfPresent(map, "NumberPatterns", formatData); 891 copyIfPresent(map, "short.CompactNumberPatterns", formatData); 892 copyIfPresent(map, "long.CompactNumberPatterns", formatData); 893 894 // put extra number elements for available scripts into formatData, if it is "root" 895 if (id.equals("root")) { 896 handlerNumbering.keySet().stream() 897 .filter(k -> !numberingScripts.contains(k)) 898 .forEach(k -> { 899 String[] ne = (String[])map.get("latn.NumberElements"); 900 String[] neNew = Arrays.copyOf(ne, ne.length); 901 neNew[4] = handlerNumbering.get(k).substring(0, 1); 902 formatData.put(k + ".NumberElements", neNew); 903 }); 904 } 905 return formatData; 906 } 907 908 private static void copyIfPresent(Map<String, Object> src, String key, Map<String, Object> dest) { 909 Object value = src.get(key); 910 if (value != null) { 911 dest.put(key, value); 912 } |