| /******************************************************************************* |
| * Copyright (C) 2021 the Eclipse BaSyx Authors |
| * |
| * This program and the accompanying materials are made |
| * available under the terms of the Eclipse Public License 2.0 |
| * which is available at https://www.eclipse.org/legal/epl-2.0/ |
| * |
| * SPDX-License-Identifier: EPL-2.0 |
| ******************************************************************************/ |
| package org.eclipse.basyx.vab.modelprovider.filesystem.filesystem; |
| |
| import java.io.IOException; |
| import java.util.List; |
| |
| /** |
| * Abstracts from a generic file system |
| * @author schnicke |
| * |
| */ |
| public interface FileSystem { |
| |
| /** |
| * Reads the content of a file formated as UTF-8.<br/> |
| * Throws an Exception if file at given path does not exist. |
| * |
| * @param path |
| * @return The content of specified file as String |
| * @throws IOException |
| */ |
| public String readFile(String path) throws IOException; |
| |
| /** |
| * Writes a given String to a file at the given path.<br/> |
| * Does create the file if it does not exist.<br/> |
| * Does overwrite the file if it exists.<br/> |
| * Does not create nonexistent parent directories. |
| * |
| * @param path |
| * @param content the String to be written to a file |
| * @throws IOException |
| */ |
| public void writeFile(String path, String content) throws IOException; |
| |
| /** |
| * Deletes the file at the specified path.<br/> |
| * Does not throw an Exception if the file does not exist. |
| * |
| * @param path |
| * @throws IOException |
| */ |
| public void deleteFile(String path) throws IOException; |
| |
| /** |
| * Creates a directory at the given path.<br/> |
| * Creates parent directories if nonexistent. |
| * |
| * @param path |
| * @throws IOException |
| */ |
| public void createDirectory(String path) throws IOException; |
| |
| /** |
| * Lists all directories and files at the specified path.<br/> |
| * Does not list items in subdirectories. |
| * |
| * @param path |
| * @return List of items at the specified path |
| * @throws IOException |
| */ |
| public List<File> readDirectory(String path) throws IOException; |
| |
| /** |
| * Deletes the directory at the specified path, |
| * including contained files and subdirectories.<br/> |
| * Does not throw an Exception if directory at path does not exist. |
| * |
| * @param path |
| * @throws IOException |
| */ |
| public void deleteDirectory(String path) throws IOException; |
| |
| /** |
| * Gets the FileType of an object at a specified path |
| * |
| * @param path |
| * @return The FileType of the object at the given path |
| * or null if this object does not exist |
| */ |
| public FileType getType(String path); |
| } |