1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.syncope.core.persistence.jpa.content;
20
21 import java.util.Collection;
22 import java.util.Set;
23
24 final class MultiParentNodeOp {
25
26 private MultiParentNodeOp() {
27 }
28
29 public static <T> void traverseTree(final Set<MultiParentNode<T>> roots, final Collection<T> objects) {
30 for (MultiParentNode<T> root : roots) {
31 traverseTree(root, objects);
32 }
33 }
34
35 public static <T> void traverseTree(final MultiParentNode<T> root, final Collection<T> objects) {
36 root.setExploited(true);
37
38 for (MultiParentNode<T> child : root.getChildren()) {
39 if (!child.isExploited()) {
40 traverseTree(child, objects);
41 }
42 }
43
44 if (!objects.contains(root.getObject())) {
45 objects.add(root.getObject());
46 }
47 }
48 }