public Set<HierarchyNode> getDependenciesFor(HierarchyNode node) { Validate.notNull(node, "Hierarchy node can't be null"); Set<File> nodeDependencies = node.getDependencies(); Set<HierarchyNode> dependencies = new LinkedHashSet<HierarchyNode>(nodeDependencies.size()); for (File f : nodeDependencies) { dependencies.add(nodes.get(f)); } return dependencies; }
public Set<HierarchyNode> getParentsFor(HierarchyNode node) { Validate.notNull(node, "Hierarchy node can't be null"); Set<HierarchyNode> parents = new LinkedHashSet<HierarchyNode>(); for (HierarchyNode n : nodes.values()) { if (n.getDependencies().contains(node.getFile())) { parents.add(n); } } return parents; }
private void initNodes() { Collection<HierarchyNode> allNodes = nodes.values(); topLevelNodes = new LinkedHashSet<HierarchyNode>(allNodes); bottomLevelNodes = new LinkedHashSet<HierarchyNode>(); for (HierarchyNode n : allNodes) { if (!n.hasDependencies()) { bottomLevelNodes.add(n); } for (File f : n.getDependencies()) { topLevelNodes.remove(nodes.get(f)); } } }