Search in sources :

Example 1 with TOSCAIsomorphismMatcher

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);
}
Also used : TOSCAIsomorphismMatcher(org.eclipse.winery.compliance.matching.TOSCAIsomorphismMatcher) TOSCAComplianceRuleMatcher(org.eclipse.winery.compliance.matching.TOSCAComplianceRuleMatcher) GraphMapping(org.jgrapht.GraphMapping)

Example 2 with TOSCAIsomorphismMatcher

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);
}
Also used : TOSCAEdge(org.eclipse.winery.compliance.model.TOSCAEdge) TOSCAIsomorphismMatcher(org.eclipse.winery.compliance.matching.TOSCAIsomorphismMatcher) TOSCAGraph(org.eclipse.winery.compliance.model.TOSCAGraph) TOSCANode(org.eclipse.winery.compliance.model.TOSCANode) TOSCAEdgeFactory(org.eclipse.winery.compliance.model.TOSCAEdgeFactory) GraphMapping(org.jgrapht.GraphMapping) Test(org.junit.Test)

Aggregations

TOSCAIsomorphismMatcher (org.eclipse.winery.compliance.matching.TOSCAIsomorphismMatcher)2 GraphMapping (org.jgrapht.GraphMapping)2 TOSCAComplianceRuleMatcher (org.eclipse.winery.compliance.matching.TOSCAComplianceRuleMatcher)1 TOSCAEdge (org.eclipse.winery.compliance.model.TOSCAEdge)1 TOSCAEdgeFactory (org.eclipse.winery.compliance.model.TOSCAEdgeFactory)1 TOSCAGraph (org.eclipse.winery.compliance.model.TOSCAGraph)1 TOSCANode (org.eclipse.winery.compliance.model.TOSCANode)1 Test (org.junit.Test)1