re base code
[sdc.git] / catalog-be / src / test / java / org / openecomp / sdc / be / components / utils / GroupDefinitionBuilder.java
1 package org.openecomp.sdc.be.components.utils;
2
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;
7
8 import java.util.ArrayList;
9 import java.util.HashMap;
10 import java.util.List;
11 import java.util.Map;
12
13 public class GroupDefinitionBuilder {
14     private GroupDefinition groupDefinition;
15
16     private GroupDefinitionBuilder() {
17         this.groupDefinition = new GroupDefinition();
18     }
19
20     public static GroupDefinitionBuilder create() {
21         return new GroupDefinitionBuilder();
22     }
23
24     public GroupDefinitionBuilder setUniqueId(String uid) {
25         groupDefinition.setUniqueId(uid);
26         return this;
27     }
28
29     public GroupDefinitionBuilder setType(String type) {
30         groupDefinition.setType(type);
31         return this;
32     }
33
34     public GroupDefinition build() {
35         return groupDefinition;
36     }
37
38     public GroupDefinitionBuilder addMember(String name, String memberId) {
39         Map<String, String> groupMembers = getGroupMembers();
40         groupMembers.put(name, memberId);
41         return this;
42     }
43
44     public GroupDefinitionBuilder addMember(String memberId) {
45         Map<String, String> members = getGroupMembers();
46         members.put(memberId + "name", memberId);
47         return this;
48     }
49
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);
55         }
56         return members;
57     }
58
59     public GroupDefinitionBuilder setInvariantName(String name) {
60         groupDefinition.setInvariantName(name);
61         return this;
62     }
63        
64     public GroupDefinitionBuilder setInvariantUUID(String invariantUUID) {
65         groupDefinition.setInvariantUUID(invariantUUID);
66         return this;
67     }
68     
69     public GroupDefinitionBuilder setGroupUUID(String groupUUID) {
70         groupDefinition.setGroupUUID(groupUUID);
71         return this;
72     }
73
74     public GroupDefinitionBuilder setName(String name) {
75         groupDefinition.setName(name);
76         return this;
77     }
78     
79     public GroupDefinitionBuilder setVersion(String version) {
80         groupDefinition.setVersion(version);
81         return this;
82     }
83     
84     public GroupDefinitionBuilder setCreatedFrom(CreatedFrom createdfrom) {
85         groupDefinition.setCreatedFrom(createdfrom);
86         return this;
87     }
88
89     public GroupDefinitionBuilder addProperty(String propertyName) {
90         List<PropertyDataDefinition> grpProps = getGroupProperties();
91         PropertyDefinition prop = new PropertyDataDefinitionBuilder()
92                 .setName(propertyName)
93                 .build();
94         grpProps.add(prop);
95         return this;
96     }
97
98     private List<PropertyDataDefinition> getGroupProperties() {
99         List<PropertyDataDefinition> grpProps = groupDefinition.getProperties();
100         if (grpProps == null) {
101             grpProps = new ArrayList<>();
102             groupDefinition.setProperties(grpProps);
103         }
104         return grpProps;
105     }
106 }
107