Search in sources :

Example 56 with IRepository

use of org.eclipse.winery.repository.backend.IRepository in project winery by eclipse.

the class PermutationGenerator method generatePermutations.

public Map<String, OTTopologyFragmentRefinementModel> generatePermutations(OTTopologyFragmentRefinementModel refinementModel) {
    Map<String, OTTopologyFragmentRefinementModel> permutations = new HashMap<>();
    IRepository repository = RepositoryFactory.getRepository();
    if (!checkMutability(refinementModel)) {
        throw new RuntimeException("The refinement model cannot be permuted!");
    }
    QName refinementModelQName = new QName(refinementModel.getTargetNamespace(), refinementModel.getName());
    DefinitionsChildId refinementModelId = new TopologyFragmentRefinementModelId(refinementModelQName);
    if (refinementModel instanceof OTPatternRefinementModel) {
        refinementModelId = new PatternRefinementModelId(refinementModelQName);
    }
    for (OTStringList options : refinementModel.getPermutationOptions()) {
        String permutationName = VersionSupport.getNewComponentVersionId(refinementModelId, "permutation-" + String.join("-", options.getValues()).replaceAll("_", "-"));
        QName permutationQName = new QName(refinementModel.getTargetNamespace(), permutationName);
        DefinitionsChildId permutationModelId = new TopologyFragmentRefinementModelId(permutationQName);
        if (refinementModel instanceof OTPatternRefinementModel) {
            permutationModelId = new PatternRefinementModelId(permutationQName);
        }
        try {
            // To ensure that the permutationMaps are duplicated correctly, save the permutation first
            repository.setElement(refinementModelId, refinementModel);
            repository.setElement(permutationModelId, refinementModel);
        } catch (IOException e) {
            logger.error("Error while creating permutation!", e);
            break;
        }
        OTTopologyFragmentRefinementModel permutation = repository.getElement(permutationModelId);
        permutation.setName(permutationName);
        permutations.put(permutationName, permutation);
        Map<String, String> alreadyAdded = new HashMap<>();
        for (String option : options.getValues()) {
            permutation.getPermutationMappings().stream().filter(permutationMap -> permutationMap.getDetectorElement().getId().equals(option)).map(OTPrmMapping::getRefinementElement).filter(refinementElement -> refinementElement instanceof TNodeTemplate).map(refinementElement -> (TNodeTemplate) refinementElement).forEach(refinementElement -> {
                TNodeTemplate addedDetectorElement = alreadyAdded.containsKey(refinementElement.getId()) ? permutation.getDetector().getNodeTemplate(alreadyAdded.get(refinementElement.getId())) : addNodeFromRefinementStructureToDetector(refinementElement, permutation, alreadyAdded);
                // region outgoing relations of the currently permuted refinementElement
                ModelUtilities.getOutgoingRelationshipTemplates(permutation.getRefinementStructure(), refinementElement).forEach(relation -> {
                    // Using the permutation maps defined in the original model as we remove them in the permutation
                    refinementModel.getPermutationMappings().stream().filter(permutationMap -> permutationMap.getRefinementElement().getId().equals(relation.getTargetElement().getRef().getId())).filter(permutationMap -> permutationMap.getDetectorElement() instanceof TNodeTemplate).forEach(permutationMap -> {
                        // to be mutated, add it the component and create the relation.
                        if (permutationMap.getDetectorElement().getId().equals(option) || options.getValues().contains(permutationMap.getDetectorElement().getId())) {
                            String alreadyAddedElement = alreadyAdded.get(relation.getTargetElement().getRef().getId());
                            TNodeTemplate target = alreadyAddedElement == null ? addNodeFromRefinementStructureToDetector((TNodeTemplate) relation.getTargetElement().getRef(), permutation, alreadyAdded) : permutation.getDetector().getNodeTemplate(alreadyAddedElement);
                            ModelUtilities.createRelationshipTemplateAndAddToTopology(addedDetectorElement, target, relation.getType(), permutation.getDetector());
                        } else if (!options.getValues().contains(permutationMap.getDetectorElement().getId())) {
                            // Else if the target is part of the detector, add the relation between the
                            // added element and the detector element.
                            // No need to check instance of again, as we filter them in line 383.
                            TNodeTemplate target = (TNodeTemplate) permutationMap.getDetectorElement();
                            ModelUtilities.createRelationshipTemplateAndAddToTopology(addedDetectorElement, target, relation.getType(), permutation.getDetector());
                        }
                    });
                });
                // region handle ingoing relations in the detector
                for (TRelationshipTemplate relation : permutation.getDetector().getRelationshipTemplates()) {
                    if (relation.getTargetElement().getRef().getId().equals(option)) {
                        Optional<OTPermutationMapping> relationTarget = permutation.getPermutationMappings().stream().filter(permutationMap -> permutationMap.getDetectorElement().getId().equals(relation.getId())).filter(permutationMap -> permutationMap.getRefinementElement().getId().equals(refinementElement.getId())).findFirst();
                        long refinementEquivalents = permutation.getPermutationMappings().stream().filter(permutationMap -> permutationMap.getDetectorElement().getId().equals(option)).map(OTPrmMapping::getRefinementElement).distinct().count();
                        if (relationTarget.isPresent() || refinementEquivalents == 1) {
                            ModelUtilities.createRelationshipTemplateAndAddToTopology((TNodeTemplate) relation.getSourceElement().getRef(), addedDetectorElement, relation.getType(), permutation.getDetector());
                        }
                    }
                }
            // endregion
            });
            // region remove permuted
            if (permutation.getAttributeMappings() != null) {
                permutation.getRelationMappings().removeIf(map -> map.getDetectorElement().getId().equals(option));
            }
            if (permutation.getAttributeMappings() != null) {
                permutation.getAttributeMappings().removeIf(map -> map.getDetectorElement().getId().equals(option));
            }
            if (permutation.getDeploymentArtifactMappings() != null) {
                permutation.getDeploymentArtifactMappings().removeIf(map -> map.getDetectorElement().getId().equals(option));
            }
            permutation.getPermutationMappings().removeIf(permMap -> permMap.getDetectorElement().getId().equals(option) || permMap.getDetectorElement() instanceof TRelationshipTemplate && (((TRelationshipTemplate) permMap.getDetectorElement()).getSourceElement().getRef().getId().equals(option) || ((TRelationshipTemplate) permMap.getDetectorElement()).getTargetElement().getRef().getId().equals(option)));
            permutation.getDetector().getNodeTemplateOrRelationshipTemplate().removeIf(template -> template instanceof TRelationshipTemplate && (((TRelationshipTemplate) template).getSourceElement().getRef().getId().equals(option) || ((TRelationshipTemplate) template).getTargetElement().getRef().getId().equals(option)) || template.getId().equals(option));
        // endregion
        }
        try {
            RepositoryFactory.getRepository().setElement(permutationModelId, permutation);
        } catch (IOException e) {
            logger.error("Error while saving permutation!", e);
            break;
        }
    }
    return permutations;
}
Also used : Arrays(java.util.Arrays) RefinementUtils.getAllContentMappingsForRefinementNodeWithoutDetectorNode(org.eclipse.winery.model.adaptation.substitution.refinement.RefinementUtils.getAllContentMappingsForRefinementNodeWithoutDetectorNode) TopologyFragmentRefinementModelId(org.eclipse.winery.model.ids.extensions.TopologyFragmentRefinementModelId) LoggerFactory(org.slf4j.LoggerFactory) HashMap(java.util.HashMap) SerializationUtils(org.apache.commons.lang3.SerializationUtils) RefinementUtils.isStayPlaceholder(org.eclipse.winery.model.adaptation.substitution.refinement.RefinementUtils.isStayPlaceholder) OTTopologyFragmentRefinementModel(org.eclipse.winery.model.tosca.extensions.OTTopologyFragmentRefinementModel) ArrayList(java.util.ArrayList) HashSet(java.util.HashSet) OTPatternRefinementModel(org.eclipse.winery.model.tosca.extensions.OTPatternRefinementModel) RefinementUtils.addMutabilityMapping(org.eclipse.winery.model.adaptation.substitution.refinement.RefinementUtils.addMutabilityMapping) RefinementUtils.getAllMappingsForDetectorNode(org.eclipse.winery.model.adaptation.substitution.refinement.RefinementUtils.getAllMappingsForDetectorNode) PatternRefinementModelId(org.eclipse.winery.model.ids.extensions.PatternRefinementModelId) VersionSupport(org.eclipse.winery.model.version.VersionSupport) Map(java.util.Map) OTPermutationMapping(org.eclipse.winery.model.tosca.extensions.OTPermutationMapping) RefinementUtils.noMappingExistsForRefinementNodeExeptForGivenDetectorNode(org.eclipse.winery.model.adaptation.substitution.refinement.RefinementUtils.noMappingExistsForRefinementNodeExeptForGivenDetectorNode) DefinitionsChildId(org.eclipse.winery.model.ids.definitions.DefinitionsChildId) TNodeTemplate(org.eclipse.winery.model.tosca.TNodeTemplate) OTStayMapping(org.eclipse.winery.model.tosca.extensions.OTStayMapping) RefinementUtils.getStayAndPermutationMappings(org.eclipse.winery.model.adaptation.substitution.refinement.RefinementUtils.getStayAndPermutationMappings) RefinementUtils.isStayingRefinementElement(org.eclipse.winery.model.adaptation.substitution.refinement.RefinementUtils.isStayingRefinementElement) Logger(org.slf4j.Logger) Set(java.util.Set) IOException(java.io.IOException) RefinementUtils.permutabilityMappingExistsForDetectorElement(org.eclipse.winery.model.adaptation.substitution.refinement.RefinementUtils.permutabilityMappingExistsForDetectorElement) TNodeType(org.eclipse.winery.model.tosca.TNodeType) Collectors(java.util.stream.Collectors) HasId(org.eclipse.winery.model.tosca.HasId) RelationshipTypeId(org.eclipse.winery.model.ids.definitions.RelationshipTypeId) RepositoryFactory(org.eclipse.winery.repository.backend.RepositoryFactory) RefinementUtils.permutabilityMappingExistsForRefinementNode(org.eclipse.winery.model.adaptation.substitution.refinement.RefinementUtils.permutabilityMappingExistsForRefinementNode) List(java.util.List) IRepository(org.eclipse.winery.repository.backend.IRepository) TRelationshipType(org.eclipse.winery.model.tosca.TRelationshipType) Sets(org.eclipse.collections.impl.factory.Sets) Optional(java.util.Optional) TRelationshipTemplate(org.eclipse.winery.model.tosca.TRelationshipTemplate) OTPrmMapping(org.eclipse.winery.model.tosca.extensions.OTPrmMapping) ModelUtilities(org.eclipse.winery.model.tosca.utils.ModelUtilities) QName(javax.xml.namespace.QName) NodeTypeId(org.eclipse.winery.model.ids.definitions.NodeTypeId) OTStringList(org.eclipse.winery.model.tosca.extensions.OTStringList) OTTopologyFragmentRefinementModel(org.eclipse.winery.model.tosca.extensions.OTTopologyFragmentRefinementModel) HashMap(java.util.HashMap) DefinitionsChildId(org.eclipse.winery.model.ids.definitions.DefinitionsChildId) QName(javax.xml.namespace.QName) OTPrmMapping(org.eclipse.winery.model.tosca.extensions.OTPrmMapping) IOException(java.io.IOException) PatternRefinementModelId(org.eclipse.winery.model.ids.extensions.PatternRefinementModelId) OTStringList(org.eclipse.winery.model.tosca.extensions.OTStringList) TRelationshipTemplate(org.eclipse.winery.model.tosca.TRelationshipTemplate) TopologyFragmentRefinementModelId(org.eclipse.winery.model.ids.extensions.TopologyFragmentRefinementModelId) IRepository(org.eclipse.winery.repository.backend.IRepository) TNodeTemplate(org.eclipse.winery.model.tosca.TNodeTemplate) OTPatternRefinementModel(org.eclipse.winery.model.tosca.extensions.OTPatternRefinementModel) OTPermutationMapping(org.eclipse.winery.model.tosca.extensions.OTPermutationMapping)

Example 57 with IRepository

use of org.eclipse.winery.repository.backend.IRepository in project winery by eclipse.

the class Splitting method composeServiceTemplates.

/**
 */
public ServiceTemplateId composeServiceTemplates(String composedSolutionServiceTemplateID, List<ServiceTemplateId> serviceTemplateIds) throws IOException, SplittingException {
    IRepository repository = RepositoryFactory.getRepository();
    String solutionNamespace = "http://www.opentosca.org/solutions/";
    // create composed service template
    ServiceTemplateId composedServiceTemplateId = new ServiceTemplateId(solutionNamespace, composedSolutionServiceTemplateID, false);
    repository.forceDelete(composedServiceTemplateId);
    repository.flagAsExisting(composedServiceTemplateId);
    TServiceTemplate composedServiceTemplate = new TServiceTemplate();
    composedServiceTemplate.setName(composedServiceTemplateId.getXmlId().getDecoded());
    composedServiceTemplate.setId(composedServiceTemplate.getName());
    composedServiceTemplate.setTargetNamespace(solutionNamespace);
    TTopologyTemplate composedTopologyTemplate = new TTopologyTemplate();
    composedServiceTemplate.setTopologyTemplate(composedTopologyTemplate);
    repository.setElement(composedServiceTemplateId, composedServiceTemplate);
    // add all node and relationship templates from the solution fragements to the composed topology template
    for (ServiceTemplateId id : serviceTemplateIds) {
        BackendUtils.mergeTopologyTemplateAinTopologyTemplateB(id, composedServiceTemplateId, repository);
    }
    composedServiceTemplate = repository.getElement(composedServiceTemplateId);
    composedTopologyTemplate = composedServiceTemplate.getTopologyTemplate();
    List<TRequirement> openRequirements = getOpenRequirements(composedTopologyTemplate);
    for (TRequirement requirement : openRequirements) {
        QName requiredCapabilityTypeQName = getRequiredCapabilityTypeQNameOfRequirement(requirement);
        TNodeTemplate nodeWithOpenCapability = composedTopologyTemplate.getNodeTemplates().stream().filter(nt -> nt.getCapabilities() != null).filter(nt -> nt.getCapabilities().stream().anyMatch(c -> c.getType().equals(requiredCapabilityTypeQName))).findFirst().orElse(null);
        if (nodeWithOpenCapability != null) {
            TCapability matchingCapability = nodeWithOpenCapability.getCapabilities().stream().filter(c -> c.getType().equals(requiredCapabilityTypeQName)).findFirst().get();
            TRelationshipType matchingRelationshipType = getMatchingRelationshipType(requirement, matchingCapability);
            if (matchingRelationshipType != null) {
                addMatchingRelationshipTemplateToTopologyTemplate(composedTopologyTemplate, matchingRelationshipType, requirement, matchingCapability);
            } else {
                throw new SplittingException("No suitable relationship type found for matching");
            }
        }
    }
    LOGGER.debug("Persisting...");
    repository.setElement(composedServiceTemplateId, composedServiceTemplate);
    LOGGER.debug("Persisted.");
    return composedServiceTemplateId;
}
Also used : SortedSet(java.util.SortedSet) RequirementTypeId(org.eclipse.winery.model.ids.definitions.RequirementTypeId) ServiceTemplateId(org.eclipse.winery.model.ids.definitions.ServiceTemplateId) LoggerFactory(org.slf4j.LoggerFactory) HashMap(java.util.HashMap) TTopologyTemplate(org.eclipse.winery.model.tosca.TTopologyTemplate) ArrayList(java.util.ArrayList) TServiceTemplate(org.eclipse.winery.model.tosca.TServiceTemplate) HashSet(java.util.HashSet) LinkedHashMap(java.util.LinkedHashMap) TParameter(org.eclipse.winery.model.tosca.TParameter) TCapabilityType(org.eclipse.winery.model.tosca.TCapabilityType) VersionSupport(org.eclipse.winery.model.version.VersionSupport) BackendUtils(org.eclipse.winery.repository.backend.BackendUtils) Map(java.util.Map) TRequirement(org.eclipse.winery.model.tosca.TRequirement) Util(org.eclipse.winery.repository.common.Util) TNodeTemplate(org.eclipse.winery.model.tosca.TNodeTemplate) ListUtils.listIsNotNullOrEmpty(org.eclipse.winery.common.ListUtils.listIsNotNullOrEmpty) Set(java.util.Set) IOException(java.io.IOException) TNodeType(org.eclipse.winery.model.tosca.TNodeType) Collectors(java.util.stream.Collectors) TInterface(org.eclipse.winery.model.tosca.TInterface) RelationshipTypeId(org.eclipse.winery.model.ids.definitions.RelationshipTypeId) RepositoryFactory(org.eclipse.winery.repository.backend.RepositoryFactory) CapabilityTypeId(org.eclipse.winery.model.ids.definitions.CapabilityTypeId) Objects(java.util.Objects) List(java.util.List) DASpecification(org.eclipse.winery.repository.driverspecificationandinjection.DASpecification) TCapability(org.eclipse.winery.model.tosca.TCapability) IRepository(org.eclipse.winery.repository.backend.IRepository) TRelationshipType(org.eclipse.winery.model.tosca.TRelationshipType) Optional(java.util.Optional) TRelationshipTemplate(org.eclipse.winery.model.tosca.TRelationshipTemplate) TOperation(org.eclipse.winery.model.tosca.TOperation) ModelUtilities(org.eclipse.winery.model.tosca.utils.ModelUtilities) DriverInjection(org.eclipse.winery.repository.driverspecificationandinjection.DriverInjection) QName(javax.xml.namespace.QName) TRequirementType(org.eclipse.winery.model.tosca.TRequirementType) NodeTypeId(org.eclipse.winery.model.ids.definitions.NodeTypeId) QName(javax.xml.namespace.QName) TCapability(org.eclipse.winery.model.tosca.TCapability) ServiceTemplateId(org.eclipse.winery.model.ids.definitions.ServiceTemplateId) TRelationshipType(org.eclipse.winery.model.tosca.TRelationshipType) TRequirement(org.eclipse.winery.model.tosca.TRequirement) TTopologyTemplate(org.eclipse.winery.model.tosca.TTopologyTemplate) IRepository(org.eclipse.winery.repository.backend.IRepository) TNodeTemplate(org.eclipse.winery.model.tosca.TNodeTemplate) TServiceTemplate(org.eclipse.winery.model.tosca.TServiceTemplate)

Example 58 with IRepository

use of org.eclipse.winery.repository.backend.IRepository in project winery by eclipse.

the class ServiceTemplateComplianceRuleRuleChecker method checkComplianceRules.

public ServiceTemplateCheckingResult checkComplianceRules() {
    StringBuilder checkingResult = new StringBuilder("Rulechecking result for servicetemplate " + serviceTemplate.getIdFromIdOrNameField() + System.lineSeparator());
    ServiceTemplateCheckingResult result = new ServiceTemplateCheckingResult();
    List<ComplianceRuleId> ruleIds = getRuleIds(serviceTemplate);
    if (ruleIds.isEmpty()) {
        checkingResult.append("No rules defined");
    } else {
        IRepository repository = RepositoryFactory.getRepository();
        for (ComplianceRuleId ruleId : ruleIds) {
            OTComplianceRule tComplianceRule = repository.getElement(ruleId);
            ComplianceRuleChecker checker = new ComplianceRuleChecker(tComplianceRule, serviceTemplate.getTopologyTemplate());
            List<GraphMapping> graphMappings;
            try {
                graphMappings = checker.checkComplianceRule();
                if (graphMappings.size() > 0) {
                    result.getUnsatisfied().add(ruleId.getQName());
                    checkingResult.append(ruleId.getQName().toString() + " violated:");
                    checkingResult.append(System.lineSeparator());
                    for (GraphMapping mapping : graphMappings) {
                        Map<ToscaNode, ToscaNode> resultMap = checker.getSubGraphMappingAsMap(mapping, checker.getIdentifierGraph());
                        checkingResult.append(System.lineSeparator());
                        checkingResult.append(resultMap.values().stream().map(node -> node.getTemplate().getIdFromIdOrNameField()).collect(Collectors.joining(";", "NodeTemplateIds: ", "")));
                    }
                } else {
                    result.getSatisfied().add(ruleId.getQName());
                    checkingResult.append(ruleId.getQName().toString() + " satisfied");
                }
            } catch (ComplianceCheckingException e) {
                result.getException().add(ruleId.getQName());
                LOGGER.debug("Could not check compliance at rule " + ruleId.getQName().toString(), e);
            }
        }
    }
    LOGGER.debug(checkingResult.toString());
    return result;
}
Also used : ComplianceRuleId(org.eclipse.winery.model.ids.extensions.ComplianceRuleId) ToscaNode(org.eclipse.winery.topologygraph.model.ToscaNode) IRepository(org.eclipse.winery.repository.backend.IRepository) OTComplianceRule(org.eclipse.winery.model.tosca.extensions.OTComplianceRule) GraphMapping(org.jgrapht.GraphMapping)

Example 59 with IRepository

use of org.eclipse.winery.repository.backend.IRepository in project winery by eclipse.

the class WineryCli method main.

public static void main(String[] args) throws Exception {
    Option repositoryPathOption = new Option("p", "path", true, "use given path as repository path");
    Option serviceTemplatesOnlyOption = new Option("so", "servicetemplatesonly", false, "checks service templates instead of the whole repository");
    Option checkDocumentationOption = new Option("cd", "checkdocumentation", false, "check existence of README.md and LICENSE. Default: No check");
    Option verboseOption = new Option("v", "verbose", false, "be verbose: Output the checked elements");
    Option generateCopybaraConfigOption = new Option("cb", "generatecopybaraconfig", true, "Generates a configuration for Copybara.");
    generateCopybaraConfigOption.setOptionalArg(true);
    Option helpOption = new Option("h", "help", false, "prints this help");
    Options options = new Options();
    options.addOption(repositoryPathOption);
    options.addOption(serviceTemplatesOnlyOption);
    options.addOption(checkDocumentationOption);
    options.addOption(verboseOption);
    options.addOption(generateCopybaraConfigOption);
    options.addOption(helpOption);
    CommandLineParser parser = new DefaultParser();
    CommandLine line = parser.parse(options, args);
    if (line.hasOption("h")) {
        HelpFormatter formatter = new HelpFormatter();
        formatter.printHelp("winery", options);
        System.exit(0);
    }
    IRepository repository;
    if (line.hasOption("p")) {
        repository = RepositoryFactory.getRepository(Paths.get(line.getOptionValue("p")));
    } else {
        repository = RepositoryFactory.getRepository();
    }
    if (line.hasOption("cb")) {
        CopybaraGenerator copybaraGenerator = new CopybaraGenerator();
        String outfile = line.getOptionValue("cb");
        if (outfile == null) {
            String copybaraConfigFile = copybaraGenerator.generateCopybaraConfigFile();
            System.out.println(copybaraConfigFile);
        } else {
            Path file = Paths.get(outfile);
            copybaraGenerator.generateCopybaraConfigFile(file);
        }
        System.exit(0);
    }
    if (repository instanceof AbstractFileBasedRepository) {
        System.out.println("Using repository path " + repository.getRepositoryRoot() + "...");
    } else {
        System.out.println("Using non-filebased repository");
    }
    doConsistencyCheck(line, repository);
}
Also used : HelpFormatter(org.apache.commons.cli.HelpFormatter) Path(java.nio.file.Path) Options(org.apache.commons.cli.Options) CommandLine(org.apache.commons.cli.CommandLine) AbstractFileBasedRepository(org.eclipse.winery.repository.backend.filebased.AbstractFileBasedRepository) CopybaraGenerator(org.eclipse.winery.tools.copybaragenerator.CopybaraGenerator) Option(org.apache.commons.cli.Option) CommandLineParser(org.apache.commons.cli.CommandLineParser) IRepository(org.eclipse.winery.repository.backend.IRepository) DefaultParser(org.apache.commons.cli.DefaultParser)

Example 60 with IRepository

use of org.eclipse.winery.repository.backend.IRepository in project winery by eclipse.

the class RestUtils method getEdmmEntityGraph.

public static EntityGraph getEdmmEntityGraph(TServiceTemplate element, boolean useAbsolutPaths) {
    IRepository repository = RepositoryFactory.getRepository();
    Map<QName, TNodeType> nodeTypes = repository.getQNameToElementMapping(NodeTypeId.class);
    Map<QName, TRelationshipType> relationshipTypes = repository.getQNameToElementMapping(RelationshipTypeId.class);
    Map<QName, TNodeTypeImplementation> nodeTypeImplementations = repository.getQNameToElementMapping(NodeTypeImplementationId.class);
    Map<QName, TRelationshipTypeImplementation> relationshipTypeImplementations = repository.getQNameToElementMapping(RelationshipTypeImplementationId.class);
    Map<QName, TArtifactTemplate> artifactTemplates = repository.getQNameToElementMapping(ArtifactTemplateId.class);
    EdmmManager edmmManager = EdmmManager.forRepository(repository);
    Map<QName, EdmmType> oneToOneMappings = edmmManager.getOneToOneMap();
    Map<QName, EdmmType> typeMappings = edmmManager.getTypeMap();
    if (nodeTypes.isEmpty()) {
        throw new IllegalStateException("No Node Types defined!");
    } else if (relationshipTypes.isEmpty()) {
        throw new IllegalStateException("No Relationship Types defined!");
    }
    EdmmConverter edmmConverter = new EdmmConverter(nodeTypes, relationshipTypes, nodeTypeImplementations, relationshipTypeImplementations, artifactTemplates, typeMappings, oneToOneMappings, useAbsolutPaths);
    return edmmConverter.transform(element);
}
Also used : QName(javax.xml.namespace.QName) TArtifactTemplate(org.eclipse.winery.model.tosca.TArtifactTemplate) TNodeTypeImplementation(org.eclipse.winery.model.tosca.TNodeTypeImplementation) TNodeType(org.eclipse.winery.model.tosca.TNodeType) TRelationshipType(org.eclipse.winery.model.tosca.TRelationshipType) EdmmType(org.eclipse.winery.edmm.model.EdmmType) TRelationshipTypeImplementation(org.eclipse.winery.model.tosca.TRelationshipTypeImplementation) EdmmConverter(org.eclipse.winery.edmm.model.EdmmConverter) EdmmManager(org.eclipse.winery.edmm.EdmmManager) IRepository(org.eclipse.winery.repository.backend.IRepository)

Aggregations

IRepository (org.eclipse.winery.repository.backend.IRepository)75 TNodeType (org.eclipse.winery.model.tosca.TNodeType)29 TNodeTemplate (org.eclipse.winery.model.tosca.TNodeTemplate)28 NodeTypeId (org.eclipse.winery.model.ids.definitions.NodeTypeId)27 IOException (java.io.IOException)24 QName (javax.xml.namespace.QName)24 TTopologyTemplate (org.eclipse.winery.model.tosca.TTopologyTemplate)22 ServiceTemplateId (org.eclipse.winery.model.ids.definitions.ServiceTemplateId)21 ArrayList (java.util.ArrayList)20 Map (java.util.Map)20 HashMap (java.util.HashMap)15 LoggerFactory (org.slf4j.LoggerFactory)15 LinkedHashMap (java.util.LinkedHashMap)14 List (java.util.List)14 TServiceTemplate (org.eclipse.winery.model.tosca.TServiceTemplate)14 RepositoryFactory (org.eclipse.winery.repository.backend.RepositoryFactory)14 Collectors (java.util.stream.Collectors)13 POST (javax.ws.rs.POST)13 Path (javax.ws.rs.Path)13 Produces (javax.ws.rs.Produces)13