From a765f3a8b8aa7e2f6aedcf395742ab0013ee8afc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andre=CC=81=20Laugks?= Date: Thu, 17 Oct 2024 13:49:07 +0200 Subject: [PATCH] Move body from getNodes() to getTransUnitsMap() --- .../messagesource/xliff/XliffDocument.java | 47 ++++++++----------- 1 file changed, 20 insertions(+), 27 deletions(-) diff --git a/src/main/java/io/github/alaugks/spring/messagesource/xliff/XliffDocument.java b/src/main/java/io/github/alaugks/spring/messagesource/xliff/XliffDocument.java index c3b6490..8bfc84a 100644 --- a/src/main/java/io/github/alaugks/spring/messagesource/xliff/XliffDocument.java +++ b/src/main/java/io/github/alaugks/spring/messagesource/xliff/XliffDocument.java @@ -23,14 +23,29 @@ public XliffDocument(Document document) { } public Map getTransUnitsMap(String transUnitName, List transUnitIdentifiers) { + Map transUnitMap = new HashMap<>(); + if (this.isXliffDocument()) { - return this.getNodes( - this.root.getElementsByTagName(transUnitName), - transUnitIdentifiers - ); + NodeList nodeList = this.root.getElementsByTagName(transUnitName); + + for (int item = 0; item < nodeList.getLength(); item++) { + Element node = (Element) nodeList.item(item); + Arrays.stream(transUnitIdentifiers.toArray()) + .map(attributeName -> this.getAttributeValue( + node.getAttributes().getNamedItem(attributeName.toString()) + )) + .filter(code -> (code != null && !code.isEmpty())) + .findFirst() + .ifPresent(code -> transUnitMap.put( + code, + this.getCharacterDataFromElement( + node.getElementsByTagName("target").item(0).getFirstChild() + ) + )); + } } - return new HashMap<>(); + return transUnitMap; } public String getXliffVersion() { @@ -48,28 +63,6 @@ private boolean isXliffDocument() { return root.getNodeName().equals("xliff"); } - private Map getNodes(NodeList nodeList, List transUnitIdentifiers) { - Map transUnitMap = new HashMap<>(); - - for (int item = 0; item < nodeList.getLength(); item++) { - Element node = (Element) nodeList.item(item); - Arrays.stream(transUnitIdentifiers.toArray()) - .map(attributeName -> this.getAttributeValue( - node.getAttributes().getNamedItem(attributeName.toString()) - )) - .filter(code -> (code != null && !code.isEmpty())) - .findFirst() - .ifPresent(code -> transUnitMap.put( - code, - this.getCharacterDataFromElement( - node.getElementsByTagName("target").item(0).getFirstChild() - ) - )); - } - - return transUnitMap; - } - private String getCharacterDataFromElement(Node child) { if (child.getNextSibling() != null) { return child.getNextSibling().getTextContent().trim();