001package co.codewizards.cloudstore.core.oio;
002
003import java.io.IOException;
004import java.net.URI;
005import java.util.ServiceLoader;
006
007/**
008 * @author Sebastian Schefczyk
009 * @author Marco หงุ่ยตระกูล-Schulze - marco at codewizards dot co
010 */
011public interface FileFactory {
012
013        /** Priority of use. Used after getting more than one services fetched by
014         * {@link ServiceLoader#load}. The one with the highest priority wins. */
015        int getPriority();
016
017        File createFile(final String pathname);
018
019        File createFile(final String parent, final String child);
020
021        File createFile(final File parent, final String child);
022
023        File createFile(final java.io.File file);
024
025        File createFile(final URI uri);
026
027
028        File createTempDirectory(String prefix) throws IOException;
029
030        File createTempFile(String prefix, String suffix) throws IOException;
031
032        File createTempFile(String prefix, String suffix, File parentDir) throws IOException;
033
034        File[] listRootFiles();
035}