package org.alien4cloud.tosca.editor.processors;
import org.alien4cloud.tosca.editor.EditionContextManager;
import alien4cloud.exception.NotFoundException;
import alien4cloud.utils.TreeNode;
/**
* Utility method to process file operations in the editor context.
*/
public final class FileProcessorHelper {
private FileProcessorHelper() {
}
/**
* Get the tree node that represents a file from the archive under edition.
*
* @param path The path in which to lookup for the
* @return the tree node from the archive.
*/
public static TreeNode getFileTreeNode(String path) {
TreeNode root = EditionContextManager.get().getArchiveContentTree().getChildren().first();
TreeNode target = root;
String[] pathElements = path.split("/");
for (int i = 0; i < pathElements.length; i++) {
String pathElement = pathElements[i];
TreeNode child = target.getChild(pathElement);
if (child == null) {
throw new NotFoundException("The artifact specified at path <" + path + "> does not exists in the topology archive.");
}
target = child;
}
return target;
}
}