(no commit message)
[utils] / system / general / src / main / java / org / wamblee / system / graph / component / CheckStartupDependenciesVisitor.java
index 5b50e0925c0b57ce16f3796d2651133a2f9b0ee6..dcc8498989b4ce784a43d70ed92ecfbb453c6752 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2008 the original author or authors.
+ * Copyright 2005-2010 the original author or authors.
  * 
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
- */ 
+ */
 package org.wamblee.system.graph.component;
 
-import java.util.ArrayList;
-import java.util.List;
-
 import org.wamblee.system.core.SystemAssemblyException;
 import org.wamblee.system.graph.Edge;
 import org.wamblee.system.graph.Graph;
 import org.wamblee.system.graph.Node;
 import org.wamblee.system.graph.Visitor;
 
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Checks whether the given component graph can be started in component order
+ * without any missing dependencies.
+ * 
+ * @author Erik Brakkee
+ */
 public class CheckStartupDependenciesVisitor implements Visitor {
-    
-    private Graph _graph; 
-    private List<Node> _available; 
-    
-    public CheckStartupDependenciesVisitor(Graph aGraph) { 
-        _graph = aGraph; 
-        _available = new ArrayList<Node>();
+    private Graph graph;
+
+    private List<Node> available;
+
+    /**
+     * Constructs the visitor.
+     * 
+     * @param aGraph
+     *            Graph.
+     */
+    public CheckStartupDependenciesVisitor(Graph aGraph) {
+        graph = aGraph;
+        available = new ArrayList<Node>();
     }
 
     @Override
@@ -41,17 +53,18 @@ public class CheckStartupDependenciesVisitor implements Visitor {
 
     @Override
     public void visitNode(Node aNode) {
-        List<Edge> edges = _graph.findOutgoing(aNode);
-        
+        List<Edge> edges = graph.findOutgoing(aNode);
+
         // check dependencies.
-        for (Edge edge: edges) { 
+        for (Edge edge : edges) {
             Node dep = edge.getTo();
-            if ( !_available.contains(dep)) { 
-                throw new SystemAssemblyException(aNode + ": required dependency '" + dep + "' was not started");
+
+            if (!available.contains(dep)) {
+                throw new SystemAssemblyException(aNode +
+                    ": required dependency '" + dep + "' was not started");
             }
         }
-        
-        _available.add(aNode);
-    }
 
+        available.add(aNode);
+    }
 }