示例#1
0
 public boolean fileHasDependency(File file, File dependency) {
   Validate.notNull(file, "File can't be null");
   Validate.notNull(dependency, "Dependency can't be null");
   HierarchyNode fileNode = getNode(file);
   Validate.notNull(fileNode, "File isn't in hierarchy: " + file);
   return fileNode.containsDependency(dependency);
 }
示例#2
0
 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;
 }
示例#3
0
 public Hierarchy(Project project, Collection<HierarchyNode> collection) {
   Validate.notNull(project, "Project can't be null");
   Validate.notNull(collection, "Nodes can't be null");
   this.project = EntityUtils.lightweightClone(project);
   this.nodes = new LinkedHashMap<File, HierarchyNode>(collection.size());
   for (HierarchyNode n : collection) {
     this.nodes.put(n.getFile(), n);
   }
   this.initNodes();
 }
示例#4
0
 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));
     }
   }
 }
示例#5
0
 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 static Hashtable buildInheritanceHierarchyTree(Project project) {
   Map descriptors = project.getDescriptors();
   Hashtable hierarchyTree = new Hashtable(descriptors.size());
   for (Iterator descriptorIterator = descriptors.values().iterator();
       descriptorIterator.hasNext(); ) {
     ClassDescriptor descriptor = (ClassDescriptor) descriptorIterator.next();
     String className = descriptor.getJavaClassName();
     if (className == null) {
       className = descriptor.getJavaClass().getName();
     }
     HierarchyNode node = getNodeForClass(className, hierarchyTree);
     if (descriptor.hasInheritance()
         && (descriptor.getInheritancePolicy().getParentClassName() != null)) {
       HierarchyNode parentNode =
           getNodeForClass(descriptor.getInheritancePolicy().getParentClassName(), hierarchyTree);
       node.setParent(parentNode);
     }
   }
   return hierarchyTree;
 }