[SDC] rebase code
[sdc.git] / openecomp-be / tools / zusammen-tools / src / main / java / org / openecomp / core / tools / Commands / exportdata / ItemHandler.java
1 package org.openecomp.core.tools.Commands.exportdata;
2
3 import com.amdocs.zusammen.datatypes.SessionContext;
4 import com.amdocs.zusammen.datatypes.item.Item;
5 import com.amdocs.zusammen.plugin.statestore.cassandra.dao.ItemDao;
6 import com.amdocs.zusammen.plugin.statestore.cassandra.dao.ItemDaoFactory;
7 import org.openecomp.core.tools.Commands.ExportDataCommand;
8 import org.openecomp.core.utilities.json.JsonUtil;
9 import org.openecomp.sdc.logging.api.Logger;
10 import org.openecomp.sdc.logging.api.LoggerFactory;
11
12 import java.io.IOException;
13 import java.net.URISyntaxException;
14 import java.nio.file.Path;
15 import java.nio.file.Paths;
16 import java.util.List;
17
18 import static java.nio.file.Files.*;
19 import static java.io.File.separator;
20 import static org.openecomp.core.tools.Commands.exportdata.ImportProperties.*;
21
22 public class ItemHandler {
23     private static final Logger logger = LoggerFactory.getLogger(ExportDataCommand.class);
24
25
26     public ItemHandler() {
27         ImportProperties.initParams();
28     }
29
30     public void createItemsData(SessionContext context, String filteredItem) throws URISyntaxException, IOException {
31
32         List<Item> items = getItemDao(context).list(context);
33         items.parallelStream().forEach(item -> createItemDirectoryAndFiles(item,filteredItem));
34
35     }
36
37     private final void createItemDirectoryAndFiles(Item item,String filteredItem) {
38         try {
39             String itemId = item.getId().getValue();
40             if (filteredItem != null && !itemId.contains(filteredItem)){
41                 return;
42             }
43             Path itemPath = Paths.get( ImportProperties.ROOT_DIRECTORY + separator + itemId);
44             Path itemFilePath = Paths.get( ImportProperties.ROOT_DIRECTORY + separator +
45                     itemId + separator + itemId + JSON_POSTFIX);
46             if (notExists(itemPath)) {
47                 createDirectories(itemPath);
48             }
49             String itemJson = JsonUtil.object2Json(item);
50             write(itemFilePath, itemJson.getBytes());
51         } catch (Exception ex) {
52             logger.error(ex.getMessage(), ex);
53             ex.printStackTrace();
54         }
55
56     }
57
58
59     private ItemDao getItemDao(SessionContext context) {
60         return ItemDaoFactory.getInstance().createInterface(context);
61     }
62 }