001package co.codewizards.cloudstore.core.oio; 002 003import static co.codewizards.cloudstore.core.util.AssertUtil.*; 004 005import java.io.IOException; 006import java.net.URI; 007 008 009/** 010 * @author Sebastian Schefczyk 011 * 012 */ 013public class OioFileFactory { 014 015 public static final String FILE_SEPARATOR = java.io.File.separator; 016 017 public static final char FILE_SEPARATOR_CHAR = java.io.File.separatorChar; 018 019 020 /** Factory method, substitutes the constructor of {@link java.io.File}. */ 021 public static File createFile(final String pathname) { 022 return OioRegistry.getInstance().getFileFactory().createFile(pathname); 023 } 024 025 /** Factory method, substitutes the constructor of {@link java.io.File}. */ 026 public static File createFile(final String parent, final String ... children) { 027 assertNotNull(parent, "parent"); 028 029 final FileFactory fileFactory = OioRegistry.getInstance().getFileFactory(); 030 File result = null; 031 if (children != null) { 032 for (final String child : children) { 033 if (result == null) 034 result = fileFactory.createFile(parent, child); 035 else 036 result = fileFactory.createFile(result, child); 037 } 038 } 039 040 if (result == null) 041 result = createFile(parent); 042 043 return result; 044 } 045 046 /** Factory method, substitutes the constructor of {@link java.io.File}. */ 047 public static File createFile(final File parent, final String ... children) { 048 assertNotNull(parent, "parent"); 049 050 final FileFactory fileFactory = OioRegistry.getInstance().getFileFactory(); 051 File result = parent; 052 if (children != null) { 053 for (final String child : children) 054 result = fileFactory.createFile(result, child); 055 } 056 return result; 057 } 058 059 /** Factory method, substitutes the constructor of {@link java.io.File}. */ 060 public static File createFile(final java.io.File file) { 061 return OioRegistry.getInstance().getFileFactory().createFile(file); 062 } 063 064 /** Factory method, substitutes the constructor of {@link java.io.File}. */ 065 public static File createFile(final URI uri) { 066 return OioRegistry.getInstance().getFileFactory().createFile(uri); 067 } 068 069 /** Creates a temporary directory. */ 070 public static File createTempDirectory(final String prefix) throws IOException { 071 return OioRegistry.getInstance().getFileFactory().createTempDirectory(prefix); 072 } 073 074 /** Creates a temporary file. */ 075 public static File createTempFile(final String prefix, final String suffix) throws IOException { 076 return OioRegistry.getInstance().getFileFactory().createTempFile(prefix, suffix); 077 } 078 /** Creates a temporary file within specified parent directory. */ 079 public static File createTempFile(final String prefix, final String suffix, final File dir) throws IOException { 080 return OioRegistry.getInstance().getFileFactory().createTempFile(prefix, suffix, dir); 081 } 082 083 /** 084 * Lists the file system roots (wraps {@link java.io.File#listRoots()}). 085 * @return the file system roots. Never <code>null</code>. 086 */ 087 public static File[] listRootFiles() { 088 return OioRegistry.getInstance().getFileFactory().listRootFiles(); 089 } 090}