[SDC-29] Amdocs OnBoard 1707 initial commit.
[sdc.git] / openecomp-be / tools / migration / 1702_to_1707_zusammen / src / main / java / org / openecomp / core / migration / convertors / ProcessConvertor.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.MigrationMain;
8 import org.openecomp.core.migration.store.ElementHandler;
9 import org.openecomp.sdc.logging.api.Logger;
10 import org.openecomp.sdc.logging.api.LoggerFactory;
11 import org.openecomp.sdc.vendorsoftwareproduct.dao.impl.zusammen.ElementType;
12 import org.openecomp.sdc.vendorsoftwareproduct.dao.impl.zusammen.StructureElement;
13 import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ProcessEntity;
14
15 import java.util.HashSet;
16 import java.util.List;
17 import java.util.Set;
18
19 public class ProcessConvertor {
20   private static final String NAME = "name";
21   private static final String ELEMENT_TYPE = "type";
22   private static final String ARTIFACT_NAME = "artifactName";
23   private static final String DESCRIPTION = "description";
24   private static final String PROCESS_TYPE = "processType";
25   private static Set<String> compProcessesLoaded = new HashSet<>();
26
27   private static Logger logger = LoggerFactory.getLogger(MigrationMain.class);
28
29
30   public static CollaborationElement[] convertProcessToElement(ProcessEntity processEntity) {
31     CollaborationElement[] elements;
32     boolean isGeneralComponentId = isGeneralComponentId(processEntity);
33     List<String> processNamespace = getProcessNamespace(processEntity);
34     int index = 0;
35     String uniqueId = getUniqueId(processEntity, isGeneralComponentId);
36     String processesEntityId = isGeneralComponentId ? StructureElement.Processes.name() :
37         (StructureElement.Processes.name() + "_" +processEntity.getComponentId());
38     if (compProcessesLoaded.contains(uniqueId)) {
39       elements = new CollaborationElement[1];
40     } else {
41       compProcessesLoaded.add(uniqueId);
42       elements = new CollaborationElement[2];
43       elements[index++] = ElementHandler.getElementEntity(
44           processEntity.getVspId(), processEntity.getVersion().toString(), processesEntityId,
45           processNamespace,
46           ElementHandler.getStructuralElementInfo(StructureElement.Processes.name()), null, null, null);
47     }
48
49     processNamespace.add(processesEntityId);
50     elements[index] = ElementHandler.getElementEntity(
51         processEntity.getVspId(), processEntity.getVersion().toString(), processEntity.getId(),
52         processNamespace,
53         getProcessInfo(processEntity), null, null, processEntity.getArtifact() ==
54             null ? null : processEntity.getArtifact().array());
55
56     return elements;
57   }
58
59   private static String getUniqueId(ProcessEntity processEntity, boolean isGeneralComponentId) {
60     if (isGeneralComponentId) {
61       return processEntity.getVspId() + "_" + processEntity.getVersion().toString();
62     } else {
63       return StructureElement.Processes.name() + "_" + processEntity
64           .getComponentId();
65     }
66   }
67
68   private static Info getProcessInfo(ProcessEntity processEntity) {
69     Info info = new Info();
70     info.setName(processEntity.getName());
71     info.addProperty(NAME, processEntity.getName());
72     info.addProperty(ELEMENT_TYPE, ElementType.Process);
73     info.addProperty(ARTIFACT_NAME, processEntity.getArtifactName());
74     info.addProperty(DESCRIPTION, processEntity.getDescription());
75     info.addProperty(PROCESS_TYPE,
76         processEntity.getType() != null ? processEntity.getType().name() : null);
77     return info;
78   }
79
80   private static List<String> getProcessNamespace(ProcessEntity processEntity) {
81     if (isGeneralComponentId(processEntity)) {
82       return ElementHandler.getElementPath();
83     } else {
84       return ElementHandler
85           .getElementPath(StructureElement.Components.name(), processEntity.getComponentId());
86     }
87   }
88
89   private static boolean isGeneralComponentId(ProcessEntity processEntity) {
90     return processEntity.getComponentId().equals("General");
91   }
92
93   public static ElementEntityContext convertProcessToElementContext(ProcessEntity processEntity) {
94
95     return new ElementEntityContext("GLOBAL_USER", new
96         ElementContext(processEntity.getVspId(), processEntity.getVersion().toString()));
97   }
98 }