protected void addBreadcrumbs(Map<String, Resource> index) { for (Resource resource : index.values()) { List<String> breadcrumbs = new ArrayList<>(); collectBreadcrumbs(breadcrumbs, resource, index); resource.setBreadcrumbs(breadcrumbs); } }
private void collectBreadcrumbs(List<String> breadcrumbs, Resource resource, Map<String, Resource> index) { if (resource.hasParent()) { String parentName = resource.getParentName(); breadcrumbs.add(0, parentName); Resource parent = index.get(parentName); if (parent != null) { collectBreadcrumbs(breadcrumbs, parent, index); } } }