public List<TRequirement> getRequirements(TNodeTemplate nodeTemplate) { if (nodeTemplate.getRequirements() != null) { return nodeTemplate.getRequirements().getRequirement(); } return new ArrayList<>(); }
public static TNodeTemplate getSourceNodeTemplateOfRelationshipTemplate(TTopologyTemplate topologyTemplate, TRelationshipTemplate relationshipTemplate) { if (relationshipTemplate.getSourceElement().getRef() instanceof TRequirement) { TRequirement requirement = (TRequirement) relationshipTemplate.getSourceElement().getRef(); return topologyTemplate.getNodeTemplates().stream() .filter(nt -> nt.getRequirements().getRequirement() != null) .filter(nt -> nt.getRequirements().getRequirement().contains(requirement)) .findAny().get(); } else { TNodeTemplate sourceNodeTemplate = (TNodeTemplate) relationshipTemplate.getSourceElement().getRef(); return sourceNodeTemplate; } }
/** * Resolves a given id as requirement in the given ServiceTemplate * * @return null if not found */ public static TRequirement resolveRequirement(TServiceTemplate serviceTemplate, String reference) { TRequirement resolved = null; for (TEntityTemplate tmpl : serviceTemplate.getTopologyTemplate().getNodeTemplateOrRelationshipTemplate()) { if (tmpl instanceof TNodeTemplate) { TNodeTemplate n = (TNodeTemplate) tmpl; Requirements requirements = n.getRequirements(); if (requirements != null) { for (TRequirement req : n.getRequirements().getRequirement()) { if (req.getId().equals(reference)) { resolved = req; } } } } } return resolved; }
public static TNodeTemplate getTargetNodeTemplateOfRelationshipTemplate(TTopologyTemplate topologyTemplate, TRelationshipTemplate relationshipTemplate) { if (relationshipTemplate.getTargetElement().getRef() instanceof TCapability) { TCapability capability = (TCapability) relationshipTemplate.getTargetElement().getRef(); return topologyTemplate.getNodeTemplates().stream() .filter(nt -> nt.getRequirements().getRequirement() != null) .filter(nt -> nt.getRequirements().getRequirement().contains(capability)) .findAny().get(); } else { return (TNodeTemplate) relationshipTemplate.getTargetElement().getRef(); } }
private static void collectIdsOfExistingTopologyElements(TTopologyTemplate topologyTemplateB, Map<String, String> idMapping) { // collect existing node & relationship template ids topologyTemplateB.getNodeTemplateOrRelationshipTemplate() // the existing ids are left unchanged .forEach(x -> idMapping.put(x.getId(), x.getId())); // collect existing requirement ids topologyTemplateB.getNodeTemplates().stream() .filter(nt -> nt.getRequirements() != null) .forEach(nt -> nt.getRequirements().getRequirement() // the existing ids are left unchanged .forEach(x -> idMapping.put(x.getId(), x.getId()))); //collect existing capability ids topologyTemplateB.getNodeTemplates().stream() .filter(nt -> nt.getCapabilities() != null) .forEach(nt -> nt.getCapabilities().getCapability() // the existing ids are left unchanged .forEach(x -> idMapping.put(x.getId(), x.getId()))); }
List<TNodeTemplate> nodeTemplates = ModelUtilities.getAllNodeTemplates(topologyTemplate); List<TNodeTemplate> nodeTemplatesWithConnectionRequirement = nodeTemplates.stream() .filter(nt -> nt.getRequirements() != null) .filter(nt -> nt.getRequirements().getRequirement().stream() .anyMatch(req -> getBasisCapabilityType(getRequiredCapabilityTypeQNameOfRequirement(req)).getName().equalsIgnoreCase("Endpoint"))) .collect(Collectors.toList()); List<TRequirement> requirements = nodeWithOpenConnectionRequirement.getRequirements().getRequirement().stream() .filter(req -> getBasisCapabilityType(getRequiredCapabilityTypeQNameOfRequirement(req)).getName().equalsIgnoreCase("Endpoint")) .filter(req -> getOpenRequirementsAndMatchingBasisCapabilityTypeNames(topologyTemplate).keySet().contains(req))
for (String openRequirementId : selectedConnectionFragments.keySet()) { TNodeTemplate nodeTemplateWithThisOpenReq = nodeTemplates.stream() .filter(nt -> nt.getRequirements() != null) .filter(nt -> nt.getRequirements().getRequirement().stream().anyMatch(req -> req.getId().equals(openRequirementId))) .findFirst().get(); TRequirement openRequirement = nodeTemplateWithThisOpenReq.getRequirements().getRequirement().stream() .filter(req -> req.getId().equals(openRequirementId)).findFirst().get();
if (nodeTemplate.getRequirements() != null) { List<TRequirement> containedRequirements = nodeTemplate.getRequirements().getRequirement(); List<TNodeTemplate> successorsOfNodeTemplate = new ArrayList<>(); List<TRelationshipTemplate> outgoingRelationships = ModelUtilities.getOutgoingRelationshipTemplates(topologyTemplate, nodeTemplate);
if (nodeTemplateCandidate.getRequirements() != null) { if (nodeTemplateCandidate.getRequirements().getRequirement().stream() .anyMatch(req -> getBasisCapabilityType(getRequiredCapabilityTypeQNameOfRequirement(req)).getName().equalsIgnoreCase("Container"))) { nodesToCheck.add(nodeTemplateCandidate); List<TRequirement> openHostedOnRequirements = needHostNode.getRequirements().getRequirement().stream() .filter(req -> getBasisCapabilityType(getRequiredCapabilityTypeQNameOfRequirement(req)).getName().equalsIgnoreCase("Container")).collect(Collectors.toList()); if (predecessor.getRequirements() == null) { nodesForWhichHostsFound.add(predecessor); List<TRequirement> openHostedOnRequirements = predecessor.getRequirements().getRequirement().stream() .filter(req -> getBasisCapabilityType(getRequiredCapabilityTypeQNameOfRequirement(req)).getName().equalsIgnoreCase("Container")).collect(Collectors.toList());
topologyToImport.getNodeTemplates().stream() .filter(tNodeTemplate -> Objects.nonNull(tNodeTemplate.getRequirements()) && tNodeTemplate.getRequirements().getRequirement() .stream() .anyMatch(tRequirement -> tRequirement.equals(requirementRef.getRef()))
@Override public void visit(TNodeTemplate nodeTemplate) { final TNodeTemplate.Requirements requirements = nodeTemplate.getRequirements(); if ((requirements != null) && requirements.getRequirement().isEmpty()) { nodeTemplate.setRequirements(null); } final TNodeTemplate.Capabilities capabilities = nodeTemplate.getCapabilities(); if ((capabilities != null) && capabilities.getCapability().isEmpty()) { nodeTemplate.setCapabilities(null); } final TDeploymentArtifacts deploymentArtifacts = nodeTemplate.getDeploymentArtifacts(); if ((deploymentArtifacts != null) && deploymentArtifacts.getDeploymentArtifact().isEmpty()) { nodeTemplate.setDeploymentArtifacts(null); } final TPolicies policies = nodeTemplate.getPolicies(); if ((policies != null) && policies.getPolicy().isEmpty()) { nodeTemplate.setPolicies(null); } super.visit(nodeTemplate); }
Requirements requirements = nt.getRequirements(); if (requirements != null) { for (TRequirement req : requirements.getRequirement()) {
.filter(nt -> nt.getRequirements() != null) .forEach(nt -> nt.getRequirements().getRequirement().forEach(oldReq -> { TRequirement req = SerializationUtils.clone(oldReq); generateNewIdOfTemplate(req, idMapping);
@NonNull public Map<String, TNodeTemplate> convert(org.eclipse.winery.model.tosca.TNodeTemplate node, @NonNull List<org.eclipse.winery.model.tosca.TRelationshipTemplate> rTs) { if (Objects.isNull(node)) return new LinkedHashMap<>(); return Collections.singletonMap( node.getIdFromIdOrNameField(), new TNodeTemplate.Builder( convert( node.getType(), new NodeTypeId(node.getType()) )) .setProperties(convert(node, node.getProperties())) .setRequirements(convert(node.getRequirements())) .addRequirements(rTs.stream() .filter(entry -> Objects.nonNull(entry.getSourceElement()) && entry.getSourceElement().getRef().equals(node)) .map(entry -> new LinkedHashMap.SimpleEntry<>( Optional.ofNullable(entry.getName()).orElse(entry.getId()), new TRequirementAssignment.Builder() .setNode(new QName(entry.getTargetElement().getRef().getId())) .build() )) .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)) ) .setCapabilities(convert(node.getCapabilities())) .setArtifacts(convert(node.getDeploymentArtifacts())) .build() ); }
originHostSuccessors.clear(); originHostSuccessors = getHostedOnSuccessorsOfNodeTemplate(topologyTemplate, predecessorOfNewHost); TRequirement openHostedOnRequirement = predecessorOfNewHost.getRequirements().getRequirement().stream() .filter(req -> getBasisCapabilityType(getRequiredCapabilityTypeQNameOfRequirement(req)).getName().equals("Container")) .findAny().get(); List<TRequirement> openRequirements = predecessorOfNewHost.getRequirements().getRequirement(); for (TRequirement requirement : openRequirements) { QName requiredCapabilityTypeQName = getRequiredCapabilityTypeQNameOfRequirement(requirement);
newRequirement.setId(definition.getName()); newRequirement.setType(definition.getRequirementType()); nodeTemplate.getRequirements().getRequirement().add(newRequirement);
TNodeTemplate.Requirements requirements = n.getRequirements(); if (requirements != null) { for (TRequirement req : requirements.getRequirement()) {
TNodeTemplate.Requirements requirements = n.getRequirements(); if (requirements != null) { for (TRequirement req : requirements.getRequirement()) {
public void visit(TNodeTemplate nodeTemplate) { this.visit((RelationshipSourceOrTarget) nodeTemplate); final TNodeTemplate.Requirements requirements = nodeTemplate.getRequirements(); if (requirements != null) { requirements.accept(this); } final TNodeTemplate.Capabilities capabilities = nodeTemplate.getCapabilities(); if (capabilities != null) { capabilities.accept(this); } final TDeploymentArtifacts deploymentArtifacts = nodeTemplate.getDeploymentArtifacts(); if (deploymentArtifacts != null) { for (TDeploymentArtifact deploymentArtifact : deploymentArtifacts.getDeploymentArtifact()) { deploymentArtifact.accept(this); } } final TPolicies policies = nodeTemplate.getPolicies(); if (policies != null) { for (TPolicy policy : policies.getPolicy()) { policy.accept(this); } } // meta model does not offer more children }
/** * @param nodeTemplate which should be cloned * @return copy of nodeTemplate */ public static TNodeTemplate clone(TNodeTemplate nodeTemplate) { TNodeTemplate nodeTemplateClone = new TNodeTemplate(); nodeTemplateClone.setType(nodeTemplate.getType()); nodeTemplateClone.setId(nodeTemplate.getId()); nodeTemplateClone.setDeploymentArtifacts(nodeTemplate.getDeploymentArtifacts()); // returns 1 if null -> !original.equals(cloned) nodeTemplateClone.setMaxInstances(nodeTemplate.getMaxInstances()); nodeTemplateClone.setMinInstances(nodeTemplate.getMinInstances()); nodeTemplateClone.setName(nodeTemplate.getName()); nodeTemplateClone.setPolicies(nodeTemplate.getPolicies()); nodeTemplateClone.setRequirements(nodeTemplate.getRequirements()); nodeTemplateClone.setCapabilities(nodeTemplate.getCapabilities()); nodeTemplateClone.setProperties(nodeTemplate.getProperties()); nodeTemplateClone.setPropertyConstraints(nodeTemplate.getPropertyConstraints()); nodeTemplateClone.setX(nodeTemplate.getX()); nodeTemplateClone.setY(nodeTemplate.getY()); if (ModelUtilities.getTargetLabel(nodeTemplate).isPresent()) { ModelUtilities.setTargetLabel(nodeTemplateClone, ModelUtilities.getTargetLabel(nodeTemplate).get()); } return nodeTemplateClone; }