コード例 #1
0
ファイル: Fat.java プロジェクト: wolfses/pmd_STANly
 private Map<String, Integer> getChilrenRelation(ElementNode ancestor, ElementNode node) {
   String[] ancSplit = ancestor.getFullName().split("\\.");
   String[] tarSplit = null;
   String[] srcSplit = null;
   Map<String, Integer> relations = new HashMap<String, Integer>();
   for (ElementNode child : node.getChildren()) {
     srcSplit = child.getFullName().split("\\.");
     for (DomainRelation rel : child.getRelationTargets()) {
       if (!rel.getTargetNode().isAncestor(ancestor)) continue;
       tarSplit = rel.getTargetNode().getFullName().split("\\.");
       if (ancSplit.length < srcSplit.length
           && ancSplit.length < tarSplit.length
           && !srcSplit[ancSplit.length].equals(tarSplit[ancSplit.length])) {
         String key = srcSplit[ancSplit.length] + ">" + tarSplit[ancSplit.length];
         Integer value = 0;
         if (relations.containsKey(key)) value = relations.get(key);
         value++;
         relations.put(key, value);
       }
     }
     if (child.getChildren().size() > 0) relations.putAll(getChilrenRelation(ancestor, child));
   }
   return relations;
 }
コード例 #2
0
ファイル: Fat.java プロジェクト: wolfses/pmd_STANly
 private Map<String, Integer> getPackageRelation(ElementNode ancestor, ElementNode node) {
   Map<String, Integer> relations = new HashMap<String, Integer>();
   for (ElementNode child : node.getChildren()) {
     for (DomainRelation rel : child.getRelationTargets()) {
       if (!rel.getTargetNode().isAncestor(ancestor)) continue;
       if (!rel.getSourceNode().getPackageName().equals(rel.getTargetNode().getPackageName())) {
         String key =
             rel.getSourceNode().getPackageName() + ">" + rel.getTargetNode().getPackageName();
         Integer value = 0;
         if (relations.containsKey(key)) value = relations.get(key);
         value++;
         relations.put(key, value);
       }
     }
     if (child.getChildren().size() > 0) relations.putAll(getPackageRelation(ancestor, child));
   }
   return relations;
 }