private UserNode searchUserNodeByPageReference(Collection<UserNode> userNodes, String pageReference) { if (userNodes == null || userNodes.isEmpty()) { return null; } for (UserNode userNode : userNodes) { if (userNode.getPageRef() != null && userNode.getPageRef().format().equals(pageReference)) { return userNode; } else if (userNode.getChildren() != null && !userNode.getChildren().isEmpty()) { UserNode childNode = searchUserNodeByPageReference(userNode.getChildren(), pageReference); if (childNode != null) { return childNode; } } } return null; }
private UserNode searchUserNodeByPageReference(UserPortal userPortal, UserNavigation nav, String pageReference) { if (nav != null) { try { UserNode rootNode = userPortal.getNode(nav, Scope.ALL, myGroupsFilterConfig, null); if (rootNode.getPageRef() != null && pageReference.equals(rootNode.getPageRef())) { return rootNode; } if (rootNode.getChildren() != null && !rootNode.getChildren().isEmpty()) { return searchUserNodeByPageReference(rootNode.getChildren(), pageReference); } } catch (Exception exp) { LOG.warn(nav.getKey().getName() + " has been deleted"); } } return null; }
public List<TreeNode> getChildren() { if (children == null) { children = new LinkedList<TreeNode>(); for (UserNode child : node.getChildren()) { String key = child.getId() == null ? String.valueOf(child.hashCode()) : child.getId(); TreeNode node = findNode(key); if (node == null) { throw new IllegalStateException("Can' find node " + child.getURI() + " in the cache"); } children.add(node); } } return children; }
public static Collection<UserNode> getUserNodes(UserNavigation nav) { UserPortal userPortall = getUserPortal(); if (nav != null) { try { UserNode rootNode = userPortall.getNode(nav, Scope.CHILDREN, toolbarFilterConfig, null); return rootNode.getChildren(); } catch (Exception exp) { LOG.warn(nav.getKey().getName() + " has been deleted"); } } return Collections.emptyList(); }
private TreeNode addToCached(TreeNode node) { if (node == null) { return null; } if (findNode(node.getId()) != null) { return node; } this.rootNode.caches.put(node.getId(), node); for (UserNode child : node.getNode().getChildren()) { addToCached(new TreeNode(nav, child, this.rootNode)); } return node; }