- return mutableRoot;\r
- }\r
-\r
- /**\r
- * @param mutableRoot2\r
- * @param wanted\r
- */\r
- private static void removeUnrelevantNodes(MutableCompositeNode mutRoot,\r
- Set<Node<?>> wanted) {\r
- Stack<MutableNode<?>> jobQueue = new Stack<>();\r
- jobQueue.push(mutRoot);\r
- while (!jobQueue.isEmpty()) {\r
- MutableNode<?> mutNode = jobQueue.pop();\r
- if (!wanted.contains(mutNode)) {\r
- if (mutNode.getParent() != null) {\r
- mutNode.getParent().getChildren().remove(mutNode);\r
- }\r
- } else {\r
- if (mutNode instanceof MutableCompositeNode) {\r
- for (Node<?> mutChild : ((MutableCompositeNode) mutNode).getChildren()) {\r
- jobQueue.push((MutableNode<?>) mutChild);\r
- }\r
- }\r
- }\r
- }\r