Removed InterfaceRestriction. Now introduced a friendlier API in
[utils] / system / general / src / main / java / org / wamblee / system / graph / component / ComponentGraph.java
index be861f309255da4deb64ed63cd12e63f15ab56da..aedaa0c3e94021a33c86cc7bdaf14bcc47e48a75 100644 (file)
@@ -19,11 +19,10 @@ import java.util.ArrayList;
 import java.util.List;
 
 import org.wamblee.general.Pair;
-import org.wamblee.system.container.CompositeInterfaceRestriction;
-import org.wamblee.system.container.InterfaceRestriction;
 import org.wamblee.system.core.Component;
 import org.wamblee.system.core.ProvidedInterface;
 import org.wamblee.system.core.RequiredInterface;
+import org.wamblee.system.graph.CompositeEdgeFilter;
 import org.wamblee.system.graph.DefaultEdge;
 import org.wamblee.system.graph.Edge;
 import org.wamblee.system.graph.Graph;
@@ -37,21 +36,13 @@ import org.wamblee.system.graph.Node;
  */
 public class ComponentGraph extends Graph {
     
-    private CompositeInterfaceRestriction _restriction
+    private CompositeEdgeFilter _edgeFilter
 
     /**
      * Constructs an empty component graph. 
      */
     public ComponentGraph() {
-        _restriction = new CompositeInterfaceRestriction(); 
-    }
-    
-    /**
-     * Adds a restriction that must be satisfied by the component model. 
-     * @param aRestriction Restriction. 
-     */
-    public void addRestriction(InterfaceRestriction aRestriction) { 
-        _restriction.add(aRestriction);
+        _edgeFilter = new CompositeEdgeFilter(); 
     }
     
     /**
@@ -80,7 +71,7 @@ public class ComponentGraph extends Graph {
      */
     public void validate() { 
         extend(new RequiredProvidedEdgeFactory());
-        accept(new ApplyRestrictionsVisitor(this, _restriction));
+        applyFilter(_edgeFilter);
         accept(new CheckRequiredProvidedMultiplicityVisitor(this));
         accept(new CheckExternallyRequiredVisitor(this)); 
         accept(new CheckExternallyProvidedVisitor(this));
@@ -150,4 +141,8 @@ public class ComponentGraph extends Graph {
             addEdge(new DefaultEdge(provNode, compNode));
         }
     }
+
+    public void addEdgeFilter(CompositeEdgeFilter aEdgeFilter) {
+        _edgeFilter.add(aEdgeFilter);    
+    }
 }