X-Git-Url: http://wamblee.org/gitweb/?a=blobdiff_plain;f=system%2Fgeneral%2Fsrc%2Fmain%2Fjava%2Forg%2Fwamblee%2Fsystem%2Fgraph%2Fcomponent%2FComponentGraph.java;h=aedaa0c3e94021a33c86cc7bdaf14bcc47e48a75;hb=102eebeba2200f9bb2d8523bdfe7ace4ff663628;hp=be861f309255da4deb64ed63cd12e63f15ab56da;hpb=531559394b56b0dbf817d52c8c596216550a5cbb;p=utils diff --git a/system/general/src/main/java/org/wamblee/system/graph/component/ComponentGraph.java b/system/general/src/main/java/org/wamblee/system/graph/component/ComponentGraph.java index be861f30..aedaa0c3 100644 --- a/system/general/src/main/java/org/wamblee/system/graph/component/ComponentGraph.java +++ b/system/general/src/main/java/org/wamblee/system/graph/component/ComponentGraph.java @@ -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); + } }