private List mergeLinkItemLists()

in doxia-site-model/src/main/java/org/apache/maven/doxia/site/inheritance/DefaultSiteModelInheritanceAssembler.java [239:268]


    private List<LinkItem> mergeLinkItemLists(
            final List<LinkItem> childList,
            final List<LinkItem> parentList,
            final URLRebaser urlContainer,
            boolean cutParentAfterDuplicate) {
        List<LinkItem> items = new ArrayList<>(childList.size() + parentList.size());

        for (LinkItem item : parentList) {
            if (!items.contains(item) && !childList.contains(item)) {
                final LinkItem clone = item.clone();

                rebaseLinkItemPaths(clone, urlContainer);

                items.add(clone);
            } else if (cutParentAfterDuplicate) {
                // if a parent item is found in child, ignore next items (case for breadcrumbs)
                // merge ( "B > E", "A > B > C > D" ) -> "A > B > E" (notice missing "C > D")
                // see https://issues.apache.org/jira/browse/DOXIASITETOOLS-62
                break;
            }
        }

        for (LinkItem item : childList) {
            if (!items.contains(item)) {
                items.add(item);
            }
        }

        return items;
    }