org.apache.commons.vfs.cache
Class SoftRefFilesCache

java.lang.Object
  extended byorg.apache.commons.vfs.provider.AbstractVfsComponent
      extended byorg.apache.commons.vfs.cache.AbstractFilesCache
          extended byorg.apache.commons.vfs.cache.SoftRefFilesCache
All Implemented Interfaces:
FilesCache, VfsComponent
Direct Known Subclasses:
WeakRefFilesCache

public class SoftRefFilesCache
extends AbstractFilesCache

This implementation caches every file as long as it is strongly reachable by the java vm. As soon as the vm needs memory - every softly reachable file will be discarded.

Version:
$Revision: 484648 $ $Date: 2005-09-30 09:02:41 +0200 (Fr, 30 Sep 2005) $
Author:
Mario Ivankovits
See Also:
SoftReference

Constructor Summary
SoftRefFilesCache()
           
 
Method Summary
 void clear(FileSystem filesystem)
          purge the entries corresponding to the filesystem
 void close()
          purge the whole cache
protected  Reference createReference(FileObject file, ReferenceQueue refqueue)
           
 FileObject getFile(FileSystem filesystem, FileName name)
          retrieve a file from the cache by its name
protected  Map getOrCreateFilesystemCache(FileSystem filesystem)
           
 void putFile(FileObject file)
          add a fileobject to the cache
 void removeFile(FileSystem filesystem, FileName name)
          removes a file from cache
 void touchFile(FileObject file)
           
 
Methods inherited from class org.apache.commons.vfs.provider.AbstractVfsComponent
getContext, getLogger, init, setContext, setLogger
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SoftRefFilesCache

public SoftRefFilesCache()
Method Detail

putFile

public void putFile(FileObject file)
Description copied from interface: FilesCache
add a fileobject to the cache

Parameters:
file - the file

createReference

protected Reference createReference(FileObject file,
                                    ReferenceQueue refqueue)

getFile

public FileObject getFile(FileSystem filesystem,
                          FileName name)
Description copied from interface: FilesCache
retrieve a file from the cache by its name

Parameters:
name - the name
Returns:
the fileobject or null if file is not cached

clear

public void clear(FileSystem filesystem)
Description copied from interface: FilesCache
purge the entries corresponding to the filesystem


close

public void close()
Description copied from interface: FilesCache
purge the whole cache

Specified by:
close in interface FilesCache
Overrides:
close in class AbstractVfsComponent

removeFile

public void removeFile(FileSystem filesystem,
                       FileName name)
Description copied from interface: FilesCache
removes a file from cache

Parameters:
filesystem - filesystem
name - filename

touchFile

public void touchFile(FileObject file)

getOrCreateFilesystemCache

protected Map getOrCreateFilesystemCache(FileSystem filesystem)


Copyright © 2002-2006 The Apache Software Foundation. All Rights Reserved.