001package co.codewizards.cloudstore.core.oio.nio;
002
003import static co.codewizards.cloudstore.core.oio.OioFileFactory.*;
004import static java.util.Objects.*;
005
006import java.io.IOException;
007import java.nio.file.Files;
008import java.nio.file.Path;
009
010import co.codewizards.cloudstore.core.oio.File;
011
012/**
013 * @author Sebastian Schefczyk
014 *
015 */
016public final class NioFileUtil {
017
018        private NioFileUtil() { }
019
020        public static File createTempDirectory(final String prefix) throws IOException {
021                return createFile(Files.createTempDirectory(prefix).toFile());
022        }
023
024        public static File createTempFile(final String prefix, final String suffix) throws IOException {
025                return createFile(java.io.File.createTempFile (prefix, suffix));
026        }
027
028        public static File createTempFile(final String prefix, final String suffix, final File parentDir) throws IOException {
029                return createFile(java.io.File.createTempFile (prefix, suffix, castOrFail(parentDir).getIoFile()));
030        }
031
032        static NioFile castOrFail(final File file) {
033                if (file instanceof NioFile)
034                        return (NioFile) file;
035                else
036                        throw new IllegalArgumentException("Could not cast file: "
037                                        + file.getClass().getCanonicalName());
038        }
039
040        static String toPathString(final Path path) {
041                requireNonNull(path, "path");
042                return path.toString().replace(java.io.File.separatorChar, '/');
043        }
044
045        static String toPathString(final java.io.File file) {
046                final Path path = file.toPath();
047                requireNonNull(path, "path");
048                return path.toString().replace(java.io.File.separatorChar, '/');
049        }
050
051        static File[] convert(final java.io.File[] ioFilesListFiles) {
052                if (ioFilesListFiles == null)
053                        return null;
054                final File[] listFiles = new NioFile[ioFilesListFiles.length];
055                for (int i = 0; i < ioFilesListFiles.length; i++) {
056                        listFiles[i] = new NioFile(ioFilesListFiles[i]);
057                }
058                return listFiles;
059        }
060}