aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--openecomp-be/lib/openecomp-heat-lib/src/main/java/org/openecomp/sdc/heat/services/tree/ToscaTreeManager.java58
1 files changed, 23 insertions, 35 deletions
diff --git a/openecomp-be/lib/openecomp-heat-lib/src/main/java/org/openecomp/sdc/heat/services/tree/ToscaTreeManager.java b/openecomp-be/lib/openecomp-heat-lib/src/main/java/org/openecomp/sdc/heat/services/tree/ToscaTreeManager.java
index 517c690194..c711c72faf 100644
--- a/openecomp-be/lib/openecomp-heat-lib/src/main/java/org/openecomp/sdc/heat/services/tree/ToscaTreeManager.java
+++ b/openecomp-be/lib/openecomp-heat-lib/src/main/java/org/openecomp/sdc/heat/services/tree/ToscaTreeManager.java
@@ -3,77 +3,65 @@ package org.openecomp.sdc.heat.services.tree;
import org.openecomp.core.utilities.file.FileContentHandler;
import org.openecomp.sdc.common.utils.SdcCommon;
import org.openecomp.sdc.datatypes.error.ErrorMessage;
-import org.openecomp.sdc.heat.datatypes.structure.Artifact;
import org.openecomp.sdc.heat.datatypes.structure.HeatStructureTree;
-import org.openecomp.sdc.logging.api.Logger;
-import org.openecomp.sdc.logging.api.LoggerFactory;
import java.io.File;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.Objects;
import java.util.regex.Pattern;
public class ToscaTreeManager {
-
- private static Logger logger = (Logger) LoggerFactory.getLogger(ToscaTreeManager.class);
-
private FileContentHandler csarContentMap = new FileContentHandler();
- private byte[] manifest;
private HeatStructureTree tree = new HeatStructureTree();
- private Map<String, Artifact> artifactRef = new HashMap<>();
private Map<String, HeatStructureTree> fileTreeRef = new HashMap<>();
public void addFile(String fileName, byte[] content) {
- if (fileName.equals(SdcCommon.CSAR_MANIFEST_NAME)) {
- manifest = content;
-
- } else {
+ if (!fileName.equals(SdcCommon.CSAR_MANIFEST_NAME)) {
csarContentMap.addFile(fileName, content);
}
}
- public void createTree(){
- if (manifest == null) {
- logger.error("Missing manifest file in the zip.");
- return;
- }
-
- for(Map.Entry<String, byte[]> fileEntry : csarContentMap.getFiles().entrySet()){
+ public void createTree() {
+ for (Map.Entry<String, byte[]> fileEntry : csarContentMap.getFiles().entrySet()) {
String[] splitFilename = getFullFileNameAsArray(fileEntry.getKey());
- addFileToTree(splitFilename, 0, tree);
+ addFileToTree(splitFilename, 0, splitFilename[0], tree);
}
-
-
}
- private void addFileToTree(String[] splitFilename, int startIndex, HeatStructureTree parent){
- fileTreeRef.putIfAbsent(splitFilename[startIndex], new HeatStructureTree());
- HeatStructureTree heatStructureTree = fileTreeRef.get(splitFilename[startIndex]);
+ private void addFileToTree(String[] splitFilename, int startIndex, String fullFileName,
+ HeatStructureTree parent) {
+ fileTreeRef.putIfAbsent(fullFileName, new HeatStructureTree());
+ HeatStructureTree heatStructureTree = fileTreeRef.get(fullFileName);
heatStructureTree.setFileName(splitFilename[startIndex]);
- if(startIndex < splitFilename.length - 1){
- addFileToTree(splitFilename, startIndex + 1, heatStructureTree);
+ if (startIndex < splitFilename.length - 1) {
+ addFileToTree(splitFilename, startIndex + 1,
+ getFullFileName(fullFileName, splitFilename[startIndex + 1]), heatStructureTree);
}
parent.addHeatStructureTreeToNestedHeatList(heatStructureTree);
}
- public void addErrors(Map<String, List<ErrorMessage>> validationErrors){
- validationErrors.entrySet().stream().filter(entry -> {
- return fileTreeRef.get(entry.getKey()) != null;
- }).forEach(entry -> entry.getValue().stream().forEach(error ->
- fileTreeRef.get(entry.getKey()).addErrorToErrorsList(error)));
+ public void addErrors(Map<String, List<ErrorMessage>> validationErrors) {
+ validationErrors.entrySet().stream().filter(entry ->
+ Objects.nonNull(fileTreeRef.get(entry.getKey()))).forEach(entry -> entry.getValue()
+ .forEach(error -> fileTreeRef.get(entry.getKey()).addErrorToErrorsList(error)));
+ }
+
+ private String getFullFileName(String parentFullName, String fileName) {
+ return parentFullName + File.separator + fileName;
}
- private String[] getFullFileNameAsArray(String filename){
- if(filename.contains("/")){
+ private String[] getFullFileNameAsArray(String filename) {
+ if (filename.contains("/")) {
return filename.split("/");
}
return filename.split(Pattern.quote(File.separator));
}
- public HeatStructureTree getTree(){
+ public HeatStructureTree getTree() {
return tree;
}
}