void (byte[] in, Locale locale, @Nls String[] names) { XmlElement document = XmlDomReader.readXmlAsModel(in); Iterator<XmlElement> annotations = document.children("annotation").iterator(); while (annotations.hasNext()) { XmlElement node = annotations.next(); @NonNls String emoji = node.getAttributeValue("cp"); Integer index = emojiData.indicesMap.get(emoji); if (index == null) { continue; } @NonNls String value = Objects.requireNonNull(node.content); if (node.getAttributeValue("type") == null) { for (String keyword : value.split("\\|")) { indexTree.add(keyword.strip().toLowerCase(), index); } } else if (names != null) { @Nls String name = value.substring(0, 1).toUpperCase(locale) + value.substring(1); names[index] = name; } } }