001package co.codewizards.cloudstore.core.oio.nio;
002
003import java.io.IOException;
004import java.net.URI;
005
006import co.codewizards.cloudstore.core.oio.File;
007import co.codewizards.cloudstore.core.oio.FileFactory;
008import co.codewizards.cloudstore.core.oio.IoFileUtil;
009
010/**
011 * @author Sebastian Schefczyk
012 *
013 */
014public class NioFileFactory implements FileFactory {
015
016        @Override
017        public int getPriority() {
018                return 10;
019        }
020
021        @Override
022        public File createFile(final String pathname) {
023                return new NioFile(pathname);
024        }
025
026        @Override
027        public File createFile(final String parent, final String child) {
028                return new NioFile(parent, child);
029        }
030
031        @Override
032        public File createFile(final File parent, final String child) {
033                return new NioFile(parent, child);
034        }
035
036        @Override
037        public File createFile(final java.io.File file) {
038                return new NioFile(file);
039        }
040
041        @Override
042        public File createFile(final URI uri) {
043                return new NioFile(uri);
044        }
045
046
047        @Override
048        public File createTempDirectory(final String prefix) throws IOException {
049                return NioFileUtil.createTempDirectory(prefix);
050        }
051
052        @Override
053        public File createTempFile(final String prefix, final String suffix) throws IOException {
054                return NioFileUtil.createTempFile(prefix, suffix);
055        }
056
057        @Override
058        public File createTempFile(final String prefix, final String suffix, final File parentDir) throws IOException {
059                return NioFileUtil.createTempFile(prefix, suffix, parentDir);
060        }
061
062        @Override
063        public File[] listRootFiles() {
064                return IoFileUtil.listRoots(); // IoFileUtil delegates to the OioFileFactory and thus creates NioFile objects, too, in this case ;-)
065        }
066}