class EdmmConverter {

    public EntityGraph transform(TServiceTemplate serviceTemplate) {
        EntityGraph entityGraph = new EntityGraph();

        List<TNodeTemplate> nodeTemplates = serviceTemplate.getTopologyTemplate().getNodeTemplates();
        List<TRelationshipTemplate> relationshipTemplates = serviceTemplate.getTopologyTemplate().getRelationshipTemplates();
        if (!nodeTemplates.isEmpty()) {
            entityGraph.addEntity(new MappingEntity(EntityGraph.COMPONENTS, entityGraph));
        }

        nodeTemplates.forEach(nodeTemplate -> createNode(nodeTemplate, entityGraph));
        relationshipTemplates.forEach(relationship -> createRelation(relationship, entityGraph));

        return entityGraph;
    }

    public  EdmmConverter(Map<QName, TNodeType> nodeTypes, Map<QName, TRelationshipType> relationshipTypes,
                         Map<QName, TNodeTypeImplementation> nodeTypeImplementations,
                         Map<QName, TRelationshipTypeImplementation> relationshipTypeImplementations,
                         Map<QName, TArtifactTemplate> artifactTemplates,
                         Map<QName, EdmmType> edmmTypeMappings, Map<QName, EdmmType> oneToOneMappings);
    public  EdmmConverter(Map<QName, TNodeType> nodeTypes, Map<QName, TRelationshipType> relationshipTypes,
                         Map<QName, TNodeTypeImplementation> nodeTypeImplementations,
                         Map<QName, TRelationshipTypeImplementation> relationshipTypeImplementations,
                         Map<QName, TArtifactTemplate> artifactTemplates, Map<QName, EdmmType> edmmTypeMappings,
                         Map<QName, EdmmType> oneToOneMappings, boolean useAbsolutePaths);

}