com.myJava.file
Class FileSystemManager

java.lang.Object
  extended by com.myJava.file.FileSystemManager

public class FileSystemManager
extends java.lang.Object

Gestionnaire de systeme de fichiers.
Ce gestionnaire reference des FileSystemDrivers pour differents points de montage (repertoires) et route les demandes d'acces (replication des methodes de la classe File) au driver approprie.

Par defaut, un DefaultFileSystemDriver est utilise.

Author:
Olivier PETRUCCI

Areca Build ID : 7299034069467778562

Field Summary
protected  FileSystemDriver defaultDriver
          Driver par defaut.
protected  java.util.Map drivers
          Drivers indexes par point de montage
protected  java.util.Map driversReference
          Drivers indexes par point de montage.
protected  boolean hasOnlyDefaultDriver
          Optimisation : ce flag est a "true" si aucun driver specifique n'a ete enregistre.
protected static FileSystemManager instance
           
protected static int MAX_CACHED_MOUNTPOINTS
           
protected  java.util.Set roots
          Racines du FileSystem
 
Constructor Summary
FileSystemManager()
           
 
Method Summary
static void applyMetaData(FileMetaData p, java.io.File f)
           
static boolean canRead(java.io.File file)
           
static boolean canWrite(java.io.File file)
           
static boolean createNewFile(java.io.File file)
           
static boolean createSymbolicLink(java.io.File symlink, java.lang.String realPath)
           
static boolean delete(java.io.File file)
           
static void deleteOnExit(java.io.File f)
           
static boolean exists(java.io.File file)
           
 void flush(java.io.File file)
           
static java.io.File getAbsoluteFile(java.io.File file)
           
static java.lang.String getAbsolutePath(java.io.File file)
           
static short getAccessEfficiency(java.io.File file)
           
static java.io.InputStream getCachedFileInputStream(java.io.File file)
           
static java.io.OutputStream getCachedFileOutputStream(java.io.File file)
           
static java.io.File getCanonicalFile(java.io.File file)
           
static java.lang.String getCanonicalPath(java.io.File file)
           
 FileSystemDriver getDefaultDriver()
           
 FileSystemDriver getDriver(java.io.File file)
          Retourne le driver approprie pour le fichier specifie.
 FileSystemDriver getDriverAtMountPoint(java.io.File mountPoint)
          Retourne le driver enregistre pour le point de montage passe en argument.
static java.io.InputStream getFileInputStream(java.io.File file)
           
static java.io.OutputStream getFileOutputStream(java.io.File file)
           
static java.io.OutputStream getFileOutputStream(java.io.File file, boolean append)
           
static java.io.OutputStream getFileOutputStream(java.io.File file, boolean append, OutputStreamListener listener)
           
static java.io.OutputStream getFileOutputStream(java.lang.String file)
           
static FileCacheableInformations getInformations(java.io.File file)
           
static FileSystemManager getInstance()
           
static FileMetaData getMetaData(java.io.File file, boolean onlyBasicAttributes)
           
static java.lang.String getName(java.io.File file)
           
static java.lang.String getParent(java.io.File file)
           
static java.io.File getParentFile(java.io.File file)
           
static java.lang.String getPath(java.io.File file)
           
static java.io.InputStreamReader getReader(java.io.File file)
           
static java.io.OutputStreamWriter getWriter(java.io.File file)
           
static java.io.OutputStreamWriter getWriter(java.io.File file, boolean append)
           
static java.io.OutputStreamWriter getWriter(java.lang.String file, boolean append)
           
static boolean isAbsolute(java.io.File file)
           
static boolean isDirectory(java.io.File file)
           
static boolean isFile(java.io.File file)
           
static boolean isHidden(java.io.File file)
           
static ReadableCheckResult isReadable(java.io.File file)
           
 boolean isRoot(java.io.File file)
           
static long lastModified(java.io.File file)
           
static long length(java.io.File file)
           
static java.lang.String[] list(java.io.File file)
           
static java.lang.String[] list(java.io.File file, java.io.FilenameFilter filter)
           
static java.io.File[] listFiles(java.io.File file)
           
static java.io.File[] listFiles(java.io.File file, java.io.FileFilter filter)
           
static java.io.File[] listFiles(java.io.File file, java.io.FilenameFilter filter)
           
static boolean mkdir(java.io.File file)
           
static boolean mkdirs(java.io.File file)
           
 void registerDriver(java.io.File mountPoint, FileSystemDriver driver)
          Enregistre un driver pour le point de montage specifie.
static boolean renameTo(java.io.File sourceFile, java.io.File destinationFile)
           
 void setDefaultDriver(FileSystemDriver defaultDriver)
          Specifie le driver par defaut (celui qui est utilise si aucun driver n'a ete enregistre pour un chemin donne).
static boolean setLastModified(java.io.File file, long time)
           
static boolean setReadOnly(java.io.File file)
           
 void unregisterDriver(java.io.File mountPoint)
          Deletes the driver currently registered at this mount point.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

instance

protected static FileSystemManager instance

MAX_CACHED_MOUNTPOINTS

protected static int MAX_CACHED_MOUNTPOINTS

drivers

protected java.util.Map drivers
Drivers indexes par point de montage


driversReference

protected java.util.Map driversReference
Drivers indexes par point de montage.
Contrairement a la map "drivers", cette map ne contient que les drivers qui ont ete explicitement enregistres par la methode "registerDriver".
Elle sert a reinitialiser la map "drivers" suite a l'appel a la methode "unregisterDriver"


defaultDriver

protected FileSystemDriver defaultDriver
Driver par defaut.


roots

protected java.util.Set roots
Racines du FileSystem


hasOnlyDefaultDriver

protected boolean hasOnlyDefaultDriver
Optimisation : ce flag est a "true" si aucun driver specifique n'a ete enregistre.
On evite ainsi des recherches dans la Map des drivers : le driver par defaut est systematiquement retourne.

Constructor Detail

FileSystemManager

public FileSystemManager()
Method Detail

getInstance

public static FileSystemManager getInstance()

registerDriver

public void registerDriver(java.io.File mountPoint,
                           FileSystemDriver driver)
                    throws DriverAlreadySetException,
                           java.io.IOException
Enregistre un driver pour le point de montage specifie.

Throws:
DriverAlreadySetException
java.io.IOException

unregisterDriver

public void unregisterDriver(java.io.File mountPoint)
                      throws java.io.IOException
Deletes the driver currently registered at this mount point.

Throws:
java.io.IOException

getDriverAtMountPoint

public FileSystemDriver getDriverAtMountPoint(java.io.File mountPoint)
Retourne le driver enregistre pour le point de montage passe en argument.
Il n'y a pas de recherche recursive dans les repertoires parents; la methode retourne null si aucun driver n'a ete enregistre pour ce point de montage.


flush

public void flush(java.io.File file)
           throws java.io.IOException
Throws:
java.io.IOException

getDriver

public FileSystemDriver getDriver(java.io.File file)
Retourne le driver approprie pour le fichier specifie.
Si aucun driver n'est trouve, le driver par defaut est retourne.


getDefaultDriver

public FileSystemDriver getDefaultDriver()

setDefaultDriver

public void setDefaultDriver(FileSystemDriver defaultDriver)
Specifie le driver par defaut (celui qui est utilise si aucun driver n'a ete enregistre pour un chemin donne).


isRoot

public boolean isRoot(java.io.File file)

isFile

public static boolean isFile(java.io.File file)

isDirectory

public static boolean isDirectory(java.io.File file)

length

public static long length(java.io.File file)

delete

public static boolean delete(java.io.File file)

renameTo

public static boolean renameTo(java.io.File sourceFile,
                               java.io.File destinationFile)

exists

public static boolean exists(java.io.File file)

canRead

public static boolean canRead(java.io.File file)

canWrite

public static boolean canWrite(java.io.File file)

createNewFile

public static boolean createNewFile(java.io.File file)
                             throws java.io.IOException
Throws:
java.io.IOException

isAbsolute

public static boolean isAbsolute(java.io.File file)
                          throws java.io.IOException
Throws:
java.io.IOException

isHidden

public static boolean isHidden(java.io.File file)
                        throws java.io.IOException
Throws:
java.io.IOException

mkdir

public static boolean mkdir(java.io.File file)
                     throws java.io.IOException
Throws:
java.io.IOException

createSymbolicLink

public static boolean createSymbolicLink(java.io.File symlink,
                                         java.lang.String realPath)
                                  throws java.io.IOException
Throws:
java.io.IOException

mkdirs

public static boolean mkdirs(java.io.File file)
                      throws java.io.IOException
Throws:
java.io.IOException

setLastModified

public static boolean setLastModified(java.io.File file,
                                      long time)

setReadOnly

public static boolean setReadOnly(java.io.File file)

getAbsoluteFile

public static java.io.File getAbsoluteFile(java.io.File file)

getCanonicalFile

public static java.io.File getCanonicalFile(java.io.File file)
                                     throws java.io.IOException
Throws:
java.io.IOException

getName

public static java.lang.String getName(java.io.File file)

getParentFile

public static java.io.File getParentFile(java.io.File file)

getParent

public static java.lang.String getParent(java.io.File file)

getPath

public static java.lang.String getPath(java.io.File file)

list

public static java.lang.String[] list(java.io.File file)

getAccessEfficiency

public static short getAccessEfficiency(java.io.File file)

list

public static java.lang.String[] list(java.io.File file,
                                      java.io.FilenameFilter filter)

listFiles

public static java.io.File[] listFiles(java.io.File file,
                                       java.io.FileFilter filter)

getAbsolutePath

public static java.lang.String getAbsolutePath(java.io.File file)

getCanonicalPath

public static java.lang.String getCanonicalPath(java.io.File file)
                                         throws java.io.IOException
Throws:
java.io.IOException

lastModified

public static long lastModified(java.io.File file)

listFiles

public static java.io.File[] listFiles(java.io.File file)

listFiles

public static java.io.File[] listFiles(java.io.File file,
                                       java.io.FilenameFilter filter)

getFileInputStream

public static java.io.InputStream getFileInputStream(java.io.File file)
                                              throws java.io.IOException
Throws:
java.io.IOException

getCachedFileOutputStream

public static java.io.OutputStream getCachedFileOutputStream(java.io.File file)
                                                      throws java.io.IOException
Throws:
java.io.IOException

getFileOutputStream

public static java.io.OutputStream getFileOutputStream(java.io.File file)
                                                throws java.io.IOException
Throws:
java.io.IOException

getFileOutputStream

public static java.io.OutputStream getFileOutputStream(java.io.File file,
                                                       boolean append,
                                                       OutputStreamListener listener)
                                                throws java.io.IOException
Throws:
java.io.IOException

getFileOutputStream

public static java.io.OutputStream getFileOutputStream(java.io.File file,
                                                       boolean append)
                                                throws java.io.IOException
Throws:
java.io.IOException

getFileOutputStream

public static java.io.OutputStream getFileOutputStream(java.lang.String file)
                                                throws java.io.IOException
Throws:
java.io.IOException

getReader

public static java.io.InputStreamReader getReader(java.io.File file)
                                           throws java.io.IOException
Throws:
java.io.IOException

getWriter

public static java.io.OutputStreamWriter getWriter(java.io.File file)
                                            throws java.io.IOException
Throws:
java.io.IOException

getWriter

public static java.io.OutputStreamWriter getWriter(java.io.File file,
                                                   boolean append)
                                            throws java.io.IOException
Throws:
java.io.IOException

getWriter

public static java.io.OutputStreamWriter getWriter(java.lang.String file,
                                                   boolean append)
                                            throws java.io.IOException
Throws:
java.io.IOException

getCachedFileInputStream

public static java.io.InputStream getCachedFileInputStream(java.io.File file)
                                                    throws java.io.IOException
Throws:
java.io.IOException

getInformations

public static FileCacheableInformations getInformations(java.io.File file)

getMetaData

public static FileMetaData getMetaData(java.io.File file,
                                       boolean onlyBasicAttributes)
                                throws java.io.IOException
Throws:
java.io.IOException

applyMetaData

public static void applyMetaData(FileMetaData p,
                                 java.io.File f)
                          throws java.io.IOException
Throws:
java.io.IOException

deleteOnExit

public static void deleteOnExit(java.io.File f)

isReadable

public static ReadableCheckResult isReadable(java.io.File file)