1 package org.openecomp.sdc.be.components.utils;
3 import org.openecomp.sdc.be.model.ArtifactDefinition;
4 import org.openecomp.sdc.be.model.CapabilityDefinition;
5 import org.openecomp.sdc.be.model.ComponentInstance;
7 import java.util.ArrayList;
8 import java.util.HashMap;
9 import java.util.stream.Stream;
11 public class ComponentInstanceBuilder {
13 private ComponentInstance componentInstance;
15 public ComponentInstanceBuilder() {
16 componentInstance = new ComponentInstance();
17 componentInstance.setCapabilities(new HashMap<>());
18 componentInstance.setDeploymentArtifacts(new HashMap<>());
21 public ComponentInstanceBuilder(ComponentInstance componentInstance) {
22 this.componentInstance = componentInstance;
25 public ComponentInstanceBuilder setName(String name) {
26 componentInstance.setName(name);
30 public ComponentInstanceBuilder setNormalizedName(String name) {
31 componentInstance.setNormalizedName(name);
35 public ComponentInstanceBuilder setUniqueId(String uniqueId) {
36 componentInstance.setUniqueId(uniqueId);
40 public ComponentInstanceBuilder setComponentUid(String componentUid) {
41 componentInstance.setComponentUid(componentUid);
45 public ComponentInstanceBuilder setId(String id) {
46 componentInstance.setUniqueId(id);
50 public ComponentInstanceBuilder setToscaName(String toscaName) {
51 componentInstance.setToscaComponentName(toscaName);
55 public ComponentInstanceBuilder addDeploymentArtifact(ArtifactDefinition artifactDefinition) {
56 componentInstance.getDeploymentArtifacts().put(artifactDefinition.getArtifactName(), artifactDefinition);
60 public ComponentInstanceBuilder addCapability(CapabilityDefinition capabilityDefinition) {
61 componentInstance.getCapabilities().computeIfAbsent(capabilityDefinition.getType(), key -> new ArrayList<>()).add(capabilityDefinition);
65 public ComponentInstanceBuilder addCapabilities(CapabilityDefinition ... capabilities) {
66 Stream.of(capabilities).forEach(this::addCapability);
70 public ComponentInstance build() {
71 return componentInstance;