diff options
-rw-r--r-- | openecomp-be/lib/openecomp-heat-lib/src/main/java/org/openecomp/sdc/heat/services/tree/ToscaTreeManager.java | 58 |
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; } } |