protected void replaceXpp3DOM()

in src/main/java/org/apache/maven/plugins/shade/pom/MavenJDOMWriter.java [926:957]


    protected void replaceXpp3DOM(Element parent, Xpp3Dom parentDom, Counter counter) {
        if (parentDom.getChildCount() > 0) {
            Xpp3Dom[] childs = parentDom.getChildren();
            Collection<Xpp3Dom> domChilds = new ArrayList<>();
            Collections.addAll(domChilds, childs);
            // int domIndex = 0;
            for (Element elem : parent.getChildren()) {
                Xpp3Dom corrDom = null;
                for (Xpp3Dom dm : domChilds) {
                    if (dm.getName().equals(elem.getName())) {
                        corrDom = dm;
                        break;
                    }
                }
                if (corrDom != null) {
                    domChilds.remove(corrDom);
                    replaceXpp3DOM(elem, corrDom, new Counter(counter.getDepth() + 1));
                    counter.increaseCount();
                } else {
                    parent.removeContent(elem);
                }
            }
            for (Xpp3Dom dm : domChilds) {
                Element elem = factory.element(dm.getName(), parent.getNamespace());
                insertAtPreferredLocation(parent, elem, counter);
                counter.increaseCount();
                replaceXpp3DOM(elem, dm, new Counter(counter.getDepth() + 1));
            }
        } else if (parentDom.getValue() != null) {
            parent.setText(parentDom.getValue());
        }
    }