package org.alien4cloud.tosca.editor.services; import java.nio.file.Path; import org.alien4cloud.tosca.catalog.AbstractArchivePostProcessor; import org.alien4cloud.tosca.catalog.IArchivePostProcessor; import org.alien4cloud.tosca.editor.processors.FileProcessorHelper; import org.springframework.stereotype.Component; import alien4cloud.exception.NotFoundException; import alien4cloud.tosca.model.ArchiveRoot; import alien4cloud.tosca.parser.ParsingResult; /** * Archive post processor that checks if local artifacts exists based on the edition context in memory tree node as some pending file operations may be in * undo/redo queue. */ @Component public class EditorArchivePostProcessor extends AbstractArchivePostProcessor implements IArchivePostProcessor { @Override protected ArchivePathChecker createPathChecker(Path archive) { return new ArchivePathChecker() { @Override public boolean exists(String artifactReference) { try { FileProcessorHelper.getFileTreeNode(artifactReference); } catch (NotFoundException e) { return false; } return true; } @Override public void close() { // Do nothing. } }; } @Override public ParsingResult<ArchiveRoot> process(Path archive, ParsingResult<ArchiveRoot> parsedArchive, String workspace) { return doProcess(archive, parsedArchive, workspace); } }