Home | History | Annotate | Download | only in fs
      1 /*
      2  * Copyright (C) 2009,2010 Matthias Treydte <mt (at) waldheinz.de>
      3  *
      4  * This library is free software; you can redistribute it and/or modify it
      5  * under the terms of the GNU Lesser General Public License as published
      6  * by the Free Software Foundation; either version 2.1 of the License, or
      7  * (at your option) any later version.
      8  *
      9  * This library is distributed in the hope that it will be useful, but
     10  * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
     11  * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
     12  * License for more details.
     13  *
     14  * You should have received a copy of the GNU Lesser General Public License
     15  * along with this library; If not, write to the Free Software Foundation, Inc.,
     16  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
     17  */
     18 
     19 package de.waldheinz.fs;
     20 
     21 import de.waldheinz.fs.fat.FatFileSystem;
     22 import java.io.IOException;
     23 
     24 /**
     25  * Factory for {@link FileSystem} instances.
     26  *
     27  * @author Matthias Treydte &lt;waldheinz at gmail.com&gt;
     28  */
     29 public class FileSystemFactory {
     30 
     31     private FileSystemFactory() { }
     32 
     33     /**
     34      * <p>
     35      * Creates a new {@link FileSystem} for the specified {@code device}. When
     36      * using this method, care must be taken that there is only one
     37      * {@code FileSystems} accessing the specified {@link BlockDevice}.
     38      * Otherwise severe file system corruption may occur.
     39      * </p>
     40      *
     41      * @param device the device to create the file system for
     42      * @param readOnly if the file system should be openend read-only
     43      * @return a new {@code FileSystem} instance for the specified device
     44      * @throws UnknownFileSystemException if the file system type could
     45      *      not be determined
     46      * @throws IOException on read error
     47      */
     48     public static FileSystem create(BlockDevice device, boolean readOnly)
     49             throws UnknownFileSystemException, IOException {
     50 
     51         return FatFileSystem.read(device, readOnly);
     52     }
     53 }
     54