[SDC] Onboarding 1710 rebase.
[sdc.git] / openecomp-be / tools / migration / 1702_to_1707_zusammen / src / main / java / org / openecomp / core / migration / convertors / VspServiceTemplateConvertor.java
1 package org.openecomp.core.migration.convertors;
2
3 import com.amdocs.zusammen.datatypes.item.ElementContext;
4 import com.amdocs.zusammen.datatypes.item.Info;
5 import com.amdocs.zusammen.plugin.statestore.cassandra.dao.types.ElementEntityContext;
6 import com.amdocs.zusammen.sdk.collaboration.types.CollaborationElement;
7 import org.openecomp.core.migration.store.ElementHandler;
8 import org.openecomp.core.model.types.ServiceTemplate;
9 import org.openecomp.core.utilities.file.FileUtils;
10 import org.openecomp.sdc.model.impl.zusammen.ElementType;
11 import org.openecomp.sdc.model.impl.zusammen.StructureElement;
12
13 import java.util.HashSet;
14 import java.util.List;
15 import java.util.Set;
16
17 /**
18  * @author katyr
19  * @since April 23, 2017
20  */
21
22 public class VspServiceTemplateConvertor 
23 {
24     private static Set<String> serviceTemplatesLoaded = new HashSet<>();
25  
26
27
28   public static CollaborationElement[] convertServiceTemplateToElement(ServiceTemplate serviceTemplate) {
29
30     CollaborationElement[] serviceTemplateElements;
31     List<String> serviceTemplateNamespace = getServiceTemplateNamespace();
32
33     int index = 0;
34     String serviceTemplatesEntityId = StructureElement.Templates.name();
35     String uniqueId = serviceTemplate.getVspId()+"_"+serviceTemplate.getVersion().toString();
36     if (serviceTemplatesLoaded.contains(uniqueId)) {
37       serviceTemplateElements = new CollaborationElement[1];
38     } else {
39       serviceTemplatesLoaded.add(uniqueId);
40       String vspServiceModelEntityId = StructureElement.ServiceModel.name();
41
42       serviceTemplateElements = new CollaborationElement[3];
43       serviceTemplateElements[index] = ElementHandler.getElementEntity(
44           serviceTemplate.getVspId(),
45           serviceTemplate.getVersion().toString(),
46           vspServiceModelEntityId,
47           serviceTemplateNamespace,
48           ElementHandler.getServiceModelElementInfo(vspServiceModelEntityId,serviceTemplate),
49           null,
50           null,
51           null);
52      index++;
53       serviceTemplateNamespace.add(vspServiceModelEntityId);
54       serviceTemplateElements[index] = ElementHandler.getElementEntity(
55           serviceTemplate.getVspId(), serviceTemplate.getVersion().toString(), serviceTemplatesEntityId,
56           serviceTemplateNamespace,
57           ElementHandler.getStructuralElementInfo(StructureElement.Templates.name()),
58           null,
59           null,
60           null);
61       index++;
62     }
63
64     serviceTemplateNamespace.add(serviceTemplatesEntityId);
65     String elementId = serviceTemplate.getVspId()+"_"+serviceTemplate.getVersion().toString()
66         +"_"+serviceTemplate.getName();
67     serviceTemplateElements[index] = ElementHandler.getElementEntity(
68         serviceTemplate.getVspId(), serviceTemplate.getVersion().toString(), elementId,
69         serviceTemplateNamespace,
70         getServiceTemplateInfo(serviceTemplate),
71         null,
72         null,
73         FileUtils.toByteArray(serviceTemplate.getContent()));
74
75     return serviceTemplateElements;
76   }
77
78   private static Info getServiceTemplateInfo(ServiceTemplate serviceTemplateEntity) {
79     Info info = new Info();
80     info.setName(serviceTemplateEntity.getName());
81     info.addProperty("type", ElementType.Servicetemplate.name());
82     info.addProperty("base", serviceTemplateEntity.getBaseName());
83
84
85
86     return info;
87   }
88
89   private static List<String> getServiceTemplateNamespace() {
90     return ElementHandler.getElementPath();
91   }
92
93   public static ElementEntityContext convertServiceTemplateToElementContext(ServiceTemplate
94                                                                                 serviceTemplateEntity) {
95
96     return new ElementEntityContext("GLOBAL_USER", new
97         ElementContext(serviceTemplateEntity.getVspId(), serviceTemplateEntity.getVersion().toString()));
98   }
99
100 }