public Builder addRequirements(String name, TRequirementAssignment requirement) { if (name == null || name.isEmpty()) { return this; } return addRequirements(Collections.singletonMap(name, requirement)); }
public Builder addArtifacts(String name, TArtifactDefinition artifact) { if (name == null || name.isEmpty()) { return this; } return addArtifacts(Collections.singletonMap(name, artifact)); }
public Builder addAttribtues(String name, TAttributeAssignment attribute) { if (name == null || name.isEmpty()) { return this; } return this.addAttributes(Collections.singletonMap(name, attribute)); }
@Nullable public TNodeTemplate buildNodeTemplate(Object object, Parameter<TNodeTemplate> parameter) { if (Objects.isNull(object)) return new TNodeTemplate(); if (!validate(TNodeTemplate.class, object, parameter)) return null; @SuppressWarnings("unchecked") Map<String, Object> map = (Map<String, Object>) object; return new TNodeTemplate.Builder(buildQName(stringValue(map.get("type")))) .setDescription(buildDescription(map.get("description"))) .setMetadata(buildMetadata(map.get("metadata"))) .setDirectives(buildListString(map.get("directives"), new Parameter<List<String>>(parameter.getContext()).addContext("directives") )) .setProperties(buildMap(map, "properties", this::buildPropertyAssignment, parameter)) .setAttributes(buildMap(map, "attributes", this::buildAttributeAssignment, parameter)) .setRequirements(buildList(map, "requirements", this::buildMapRequirementAssignment, parameter)) .setCapabilities(buildMap(map, "capabilities", this::buildCapabilityAssignment, parameter)) .setInterfaces(buildMap(map.get("interfaces"), new Parameter<TInterfaceDefinition>(parameter.getContext()).addContext("interfaces") .setValue("TNodeTemplate") .setBuilderOO(this::buildInterfaceDefinition) )) .setArtifacts(buildMap(map, "artifacts", this::buildArtifactDefinition, parameter)) .setNodeFilter(buildNodeFilterDefinition(map.get("node_filter"), new Parameter<TNodeFilterDefinition>(parameter.getContext()).addContext("node_filter") )) .setCopy(buildQName(stringValue(map.get("copy")))) .build(); }
@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() ); }
public Builder addRequirements(Map<String, TRequirementAssignment> requirements) { if (requirements == null || requirements.isEmpty()) { return this; } requirements.forEach((key, value) -> { TMapRequirementAssignment tmp = new TMapRequirementAssignment(); tmp.put(key, value); addRequirements(tmp); }); return this; }
public Builder addRequirements(TMapRequirementAssignment requirement) { if (requirement == null || requirement.isEmpty()) { return this; } return addRequirements(Collections.singletonList(requirement)); }
public Builder addCapabilities(String name, TCapabilityAssignment capability) { if (name == null || name.isEmpty()) { return this; } return addCapabilities(Collections.singletonMap(name, capability)); }