fix incorrect dependency
[sdc.git] / openecomp-be / tools / zusammen-tools / src / main / java / org / openecomp / core / tools / Commands / exportdata / ElementHandler.java
1 package org.openecomp.core.tools.Commands.exportdata;
2
3
4 import org.openecomp.core.tools.store.ElementCassandraLoader;
5 import org.openecomp.core.tools.store.zusammen.datatypes.ElementEntity;
6 import org.openecomp.sdc.logging.api.Logger;
7 import org.openecomp.sdc.logging.api.LoggerFactory;
8
9 import java.nio.ByteBuffer;
10 import java.nio.file.Path;
11 import java.nio.file.Paths;
12 import java.util.Objects;
13 import java.util.Set;
14
15 import static java.io.File.separator;
16 import static java.nio.file.Files.*;
17 import static org.openecomp.core.tools.Commands.exportdata.ImportProperties.*;
18
19 public class ElementHandler {
20
21     private static final Logger logger = LoggerFactory.getLogger(ElementHandler.class);
22
23     public ElementHandler() {
24     }
25
26     public void loadElements(Set<String> filteredItem) {
27         ElementCassandraLoader elementCassandraLoader = new ElementCassandraLoader();
28           elementCassandraLoader.list().forEach(elementEntity ->  handleElementEntity(elementEntity,filteredItem));
29     }
30
31     private void handleElementEntity(ElementEntity elementEntity, Set<String> filteredItem) {
32         try {
33             String itemId = elementEntity.getItemId();
34
35             if (!filteredItem.isEmpty() && !filteredItem.contains(itemId)){
36                 return;
37             }
38             String versionId = elementEntity.getVersionId();
39             String space = elementEntity.getSpace();
40             String namespace = elementEntity.getNamespace();
41             String elementId = elementEntity.getElement_id();
42
43             String namespacePath = separator;
44             if (!isNull(namespace)){
45                 namespacePath =  namespace.replace(ELEMENT_NAMESPACE_SPLITTER,separator)+separator;
46             }
47             Path elementDirectoryPath;
48             if (!isNull(namespace)){
49                 elementDirectoryPath = Paths.get( ROOT_DIRECTORY + separator + itemId
50                         + separator + versionId + separator + space + separator + namespacePath+ separator + elementId);
51             } else {
52                 elementDirectoryPath = Paths.get( ROOT_DIRECTORY + separator + itemId
53                         + separator + versionId + separator + space + separator + elementId);
54               }
55
56             if (notExists(elementDirectoryPath)) {
57                  Path created = createDirectories(elementDirectoryPath);
58              }
59
60             String info = elementEntity.getInfo();
61             if (!isNull(info)) {
62                 Path infoFilePath = Paths.get(elementDirectoryPath.toString() + separator + ELEMENT_INFO_PREFIX
63                         + elementId + JSON_POSTFIX);
64                 write(infoFilePath, info.getBytes());
65             }
66
67             String relations = elementEntity.getRelations();
68             if (!isNull(relations)) {
69                 Path realtionsFilePath = Paths.get(elementDirectoryPath.toString() + separator
70                         + ELEMENT_RELATION_PREFIX + elementId + JSON_POSTFIX);
71                 write(realtionsFilePath, relations.getBytes());
72             }
73
74             ByteBuffer data = elementEntity.getData();
75             if (!Objects.isNull(data)) {
76                 Path dataFilePath = Paths.get(elementDirectoryPath.toString() + separator
77                         + ELEMENT_DATA_PREFIX + elementId + JSON_POSTFIX);
78                 write(dataFilePath, data.array());
79             }
80
81             ByteBuffer visualization = elementEntity.getVisualization();
82             if (!Objects.isNull(visualization)) {
83                 Path visualFilePath = Paths.get(elementDirectoryPath.toString() + separator
84                         + ELEMENT_VISUALIZATION_PREFIX + elementId );
85                 write(visualFilePath, visualization.array());
86             }
87
88             ByteBuffer searchableData = elementEntity.getSearchableData();
89             if (!Objects.isNull(searchableData)) {
90                 Path searchableFilePath = Paths.get(elementDirectoryPath.toString() + separator
91                         + ELEMENT_SEARCHABLE_PREFIX + elementId);
92                 write(searchableFilePath, searchableData.array());
93             }
94
95         } catch (Exception ex) {
96             logger.error(ex.getMessage(), ex);
97         }
98
99     }
100
101     private boolean isNull(String inStr){
102         if (Objects.isNull(inStr)){
103             return true;
104         }
105         return inStr.trim().equalsIgnoreCase("null");
106     }
107
108 }