コード例 #1
0
ファイル: DependencyUtil.java プロジェクト: iihero/liquibase
 private void computeDependencies(List<GraphNode<T>> nodes) {
   List<GraphNode<T>> nextNodesToDisplay = null;
   for (GraphNode<T> node : nodes) {
     if (!isAlreadyEvaluated(node)) {
       List<GraphNode<T>> comingInNodes = node.getComingInNodes();
       if (areAlreadyEvaluated(comingInNodes)) {
         listener.evaluating(node.value);
         evaluatedNodes.add(node);
         List<GraphNode<T>> goingOutNodes = node.getGoingOutNodes();
         if (goingOutNodes != null) {
           if (nextNodesToDisplay == null) nextNodesToDisplay = new ArrayList<GraphNode<T>>();
           // add these too, so they get a chance to be displayed
           // as well
           nextNodesToDisplay.addAll(goingOutNodes);
         }
       } else {
         if (nextNodesToDisplay == null) nextNodesToDisplay = new ArrayList<GraphNode<T>>();
         // the checked node should be carried
         nextNodesToDisplay.add(node);
       }
     }
   }
   if (nextNodesToDisplay != null) {
     computeDependencies(nextNodesToDisplay);
   }
   // here the recursive call ends
 }
コード例 #2
0
ファイル: DependencyUtil.java プロジェクト: iihero/liquibase
 private List<GraphNode<T>> getOrphanNodes() {
   List<GraphNode<T>> orphanNodes = null;
   Set<T> keys = nodes.keySet();
   for (T key : keys) {
     GraphNode<T> node = nodes.get(key);
     if (node.getComingInNodes() == null) {
       if (orphanNodes == null) orphanNodes = new ArrayList<GraphNode<T>>();
       orphanNodes.add(node);
     }
   }
   return orphanNodes;
 }