1 package org.openecomp.core.tools.Commands.exportdata;
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;
9 import java.nio.ByteBuffer;
10 import java.nio.file.Path;
11 import java.nio.file.Paths;
12 import java.util.Objects;
15 import static java.io.File.separator;
16 import static java.nio.file.Files.*;
17 import static org.openecomp.core.tools.Commands.exportdata.ImportProperties.*;
19 public class ElementHandler {
21 private static final Logger logger = LoggerFactory.getLogger(ElementHandler.class);
23 public ElementHandler() {
26 public void loadElements(Set<String> filteredItem) {
27 ElementCassandraLoader elementCassandraLoader = new ElementCassandraLoader();
28 elementCassandraLoader.list().forEach(elementEntity -> handleElementEntity(elementEntity,filteredItem));
31 private void handleElementEntity(ElementEntity elementEntity, Set<String> filteredItem) {
33 String itemId = elementEntity.getItemId();
35 if (!filteredItem.isEmpty() && !filteredItem.contains(itemId)){
38 String versionId = elementEntity.getVersionId();
39 String space = elementEntity.getSpace();
40 String namespace = elementEntity.getNamespace();
41 String elementId = elementEntity.getElement_id();
43 String namespacePath = separator;
44 if (!isNull(namespace)){
45 namespacePath = namespace.replace(ELEMENT_NAMESPACE_SPLITTER,separator)+separator;
47 Path elementDirectoryPath;
48 if (!isNull(namespace)){
49 elementDirectoryPath = Paths.get( ROOT_DIRECTORY + separator + itemId
50 + separator + versionId + separator + space + separator + namespacePath+ separator + elementId);
52 elementDirectoryPath = Paths.get( ROOT_DIRECTORY + separator + itemId
53 + separator + versionId + separator + space + separator + elementId);
56 if (notExists(elementDirectoryPath)) {
57 Path created = createDirectories(elementDirectoryPath);
60 String info = elementEntity.getInfo();
62 Path infoFilePath = Paths.get(elementDirectoryPath.toString() + separator + ELEMENT_INFO_PREFIX
63 + elementId + JSON_POSTFIX);
64 write(infoFilePath, info.getBytes());
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());
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());
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());
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());
95 } catch (Exception ex) {
96 logger.error(ex.getMessage(), ex);
101 private boolean isNull(String inStr){
102 if (Objects.isNull(inStr)){
105 return inStr.trim().equalsIgnoreCase("null");