3854b32366419e44b156b116edc7c024e4832378
[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 import org.openecomp.sdc.tosca.services.yamlutil.ToscaExtensionYamlUtil;
13
14 import java.io.ByteArrayInputStream;
15 import java.util.HashSet;
16 import java.util.List;
17 import java.util.Set;
18
19 /**
20  * @author katyr
21  * @since April 23, 2017
22  */
23
24 public class VspServiceTemplateConvertor 
25 {
26     private static Set<String> serviceTemplatesLoaded = new HashSet<>();
27  
28
29
30   public static CollaborationElement[] convertServiceTemplateToElement(ServiceTemplate serviceTemplate) {
31
32     CollaborationElement[] serviceTemplateElements;
33     List<String> serviceTemplateNamespace = getServiceTemplateNamespace();
34
35     int index = 0;
36     String serviceTemplatesEntityId = StructureElement.Templates.name();
37     String uniqueId = serviceTemplate.getVspId()+"_"+serviceTemplate.getVersion().toString();
38     if (serviceTemplatesLoaded.contains(uniqueId)) {
39       serviceTemplateElements = new CollaborationElement[1];
40     } else {
41       serviceTemplatesLoaded.add(uniqueId);
42       String vspServiceModelEntityId = StructureElement.ServiceModel.name();
43
44       serviceTemplateElements = new CollaborationElement[3];
45       serviceTemplateElements[index] = ElementHandler.getElementEntity(
46           serviceTemplate.getVspId(),
47           serviceTemplate.getVersion().toString(),
48           vspServiceModelEntityId,
49           serviceTemplateNamespace,
50           ElementHandler.getServiceModelElementInfo(vspServiceModelEntityId,serviceTemplate),
51           null,
52           null,
53           null);
54      index++;
55       serviceTemplateNamespace.add(vspServiceModelEntityId);
56       serviceTemplateElements[index] = ElementHandler.getElementEntity(
57           serviceTemplate.getVspId(), serviceTemplate.getVersion().toString(), serviceTemplatesEntityId,
58           serviceTemplateNamespace,
59           ElementHandler.getStructuralElementInfo(StructureElement.Templates.name()),
60           null,
61           null,
62           null);
63       index++;
64     }
65
66     serviceTemplateNamespace.add(serviceTemplatesEntityId);
67     String elementId = serviceTemplate.getVspId()+"_"+serviceTemplate.getVersion().toString()
68         +"_"+serviceTemplate.getName();
69     serviceTemplateElements[index] = ElementHandler.getElementEntity(
70         serviceTemplate.getVspId(), serviceTemplate.getVersion().toString(), elementId,
71         serviceTemplateNamespace,
72         getServiceTemplateInfo(serviceTemplate),
73         null,
74         null,
75         FileUtils.toByteArray(serviceTemplate.getContent()));
76
77     return serviceTemplateElements;
78   }
79
80   private static Info getServiceTemplateInfo(ServiceTemplate serviceTemplateEntity) {
81     Info info = new Info();
82     info.setName(serviceTemplateEntity.getName());
83     info.addProperty("type", ElementType.Servicetemplate.name());
84     info.addProperty("base", serviceTemplateEntity.getBaseName());
85
86
87
88     return info;
89   }
90
91   private static List<String> getServiceTemplateNamespace() {
92     return ElementHandler.getElementPath();
93   }
94
95   public static ElementEntityContext convertServiceTemplateToElementContext(ServiceTemplate
96                                                                                 serviceTemplateEntity) {
97
98     return new ElementEntityContext("GLOBAL_USER", new
99         ElementContext(serviceTemplateEntity.getVspId(), serviceTemplateEntity.getVersion().toString()));
100   }
101
102 }