1 package org.openecomp.sdc.be.components.utils;
3 import org.openecomp.sdc.be.datatypes.elements.PropertyDataDefinition;
4 import org.openecomp.sdc.be.datatypes.enums.CreatedFrom;
5 import org.openecomp.sdc.be.model.GroupDefinition;
6 import org.openecomp.sdc.be.model.PropertyDefinition;
8 import java.util.ArrayList;
9 import java.util.HashMap;
10 import java.util.List;
13 public class GroupDefinitionBuilder {
14 private GroupDefinition groupDefinition;
16 private GroupDefinitionBuilder() {
17 this.groupDefinition = new GroupDefinition();
20 public static GroupDefinitionBuilder create() {
21 return new GroupDefinitionBuilder();
24 public GroupDefinitionBuilder setUniqueId(String uid) {
25 groupDefinition.setUniqueId(uid);
29 public GroupDefinitionBuilder setType(String type) {
30 groupDefinition.setType(type);
34 public GroupDefinition build() {
35 return groupDefinition;
38 public GroupDefinitionBuilder addMember(String name, String memberId) {
39 Map<String, String> groupMembers = getGroupMembers();
40 groupMembers.put(name, memberId);
44 public GroupDefinitionBuilder addMember(String memberId) {
45 Map<String, String> members = getGroupMembers();
46 members.put(memberId + "name", memberId);
50 private Map<String, String> getGroupMembers() {
51 Map<String, String> members = groupDefinition.getMembers();
52 if (members == null) {
53 members = new HashMap<>();
54 groupDefinition.setMembers(members);
59 public GroupDefinitionBuilder setInvariantName(String name) {
60 groupDefinition.setInvariantName(name);
64 public GroupDefinitionBuilder setInvariantUUID(String invariantUUID) {
65 groupDefinition.setInvariantUUID(invariantUUID);
69 public GroupDefinitionBuilder setGroupUUID(String groupUUID) {
70 groupDefinition.setGroupUUID(groupUUID);
74 public GroupDefinitionBuilder setName(String name) {
75 groupDefinition.setName(name);
79 public GroupDefinitionBuilder setVersion(String version) {
80 groupDefinition.setVersion(version);
84 public GroupDefinitionBuilder setCreatedFrom(CreatedFrom createdfrom) {
85 groupDefinition.setCreatedFrom(createdfrom);
89 public GroupDefinitionBuilder addProperty(String propertyName) {
90 List<PropertyDataDefinition> grpProps = getGroupProperties();
91 PropertyDefinition prop = new PropertyDataDefinitionBuilder()
92 .setName(propertyName)
98 private List<PropertyDataDefinition> getGroupProperties() {
99 List<PropertyDataDefinition> grpProps = groupDefinition.getProperties();
100 if (grpProps == null) {
101 grpProps = new ArrayList<>();
102 groupDefinition.setProperties(grpProps);