use of org.eclipse.winery.compliance.matching.TOSCAIsomorphismMatcher in project winery by eclipse.
the class ComplianceRuleChecker method findMatches.
public List<GraphMapping> findMatches(TOSCAGraph queryGraph, TOSCAGraph searchInGraph) {
TOSCAIsomorphismMatcher matcher = new TOSCAIsomorphismMatcher();
Iterator<GraphMapping<TOSCANode, TOSCAEdge>> iterator = matcher.findMatches(queryGraph, searchInGraph, new TOSCAComplianceRuleMatcher());
return convertToList(iterator);
}
use of org.eclipse.winery.compliance.matching.TOSCAIsomorphismMatcher in project winery by eclipse.
the class TOSCAGraphIsomorphismTest method testTOSCADefaultMatcher.
@Test
public void testTOSCADefaultMatcher() {
TOSCAEdgeFactory ef = new TOSCAEdgeFactory();
TOSCAGraph queryGraph = new TOSCAGraph(ef);
TOSCAGraph searchInGraph = new TOSCAGraph(ef);
TOSCANode node1 = TOSCAModelHelper.createTOSCANode("node_01", "A");
TOSCANode node2 = TOSCAModelHelper.createTOSCANode("node_02", "B");
queryGraph.addVertex(node1);
queryGraph.addVertex(node2);
TOSCAEdge edge1 = TOSCAModelHelper.addEdge(queryGraph, node1, node2, "edge_1", "a");
TOSCANode node3 = TOSCAModelHelper.createTOSCANode("node_03", "A");
TOSCANode node4 = TOSCAModelHelper.createTOSCANode("node_04", "A");
TOSCANode node5 = TOSCAModelHelper.createTOSCANode("node_05", "B");
TOSCANode node6 = TOSCAModelHelper.createTOSCANode("node_06", "B");
searchInGraph.addVertex(node3);
searchInGraph.addVertex(node4);
searchInGraph.addVertex(node5);
searchInGraph.addVertex(node6);
TOSCAEdge edge2 = TOSCAModelHelper.addEdge(searchInGraph, node3, node4, "edge_2", "b");
TOSCAEdge edge3 = TOSCAModelHelper.addEdge(searchInGraph, node3, node5, "edge_3", "a");
TOSCAEdge edge4 = TOSCAModelHelper.addEdge(searchInGraph, node4, node6, "edge_4", "a");
TOSCAIsomorphismMatcher matcher = new TOSCAIsomorphismMatcher();
Iterator<GraphMapping<TOSCANode, TOSCAEdge>> iterator = matcher.findMatches(queryGraph, searchInGraph, null);
int isomorphismCount = 0;
while (iterator.hasNext()) {
isomorphismCount++;
GraphMapping<TOSCANode, TOSCAEdge> mapping = iterator.next();
TOSCAEdge edgeCor = mapping.getEdgeCorrespondence(edge1, false);
TOSCANode nodeCor1 = mapping.getVertexCorrespondence(node1, false);
TOSCANode nodeCor2 = mapping.getVertexCorrespondence(node2, false);
}
assertEquals(2, isomorphismCount);
}
Aggregations