Class 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.
    See Also:
    SoftReference
    • Constructor Detail

      • SoftRefFilesCache

        public SoftRefFilesCache()
    • Method Detail

      • putFile

        public void putFile​(FileObject fileObject)
        Description copied from interface: FilesCache
        Adds a FileObject to the cache.
        Parameters:
        fileObject - the file
      • putFileIfAbsent

        public boolean putFileIfAbsent​(FileObject fileObject)
        Description copied from interface: FilesCache
        Adds a FileObject to the cache if it isn't already present.
        Parameters:
        fileObject - the file
        Returns:
        true if the file was stored, false otherwise.
      • createReference

        protected java.lang.ref.Reference<FileObject> createReference​(FileObject file,
                                                                      java.lang.ref.ReferenceQueue<FileObject> refqueue)
      • getFile

        public FileObject getFile​(FileSystem fileSystem,
                                  FileName fileName)
        Description copied from interface: FilesCache
        Retrieves a FileObject from the cache by name.
        Parameters:
        fileSystem - The FileSystem.
        fileName - the name
        Returns:
        the fileobject or null if file is not cached
      • clear

        public void clear​(FileSystem fileSystem)
        Description copied from interface: FilesCache
        Purges the entries corresponding to the FileSystem.
        Parameters:
        fileSystem - The FileSystem.
      • removeFile

        public void removeFile​(FileSystem fileSystem,
                               FileName fileName)
        Description copied from interface: FilesCache
        Removes a file from cache.
        Parameters:
        fileSystem - filesystem
        fileName - filename
      • getOrCreateFilesystemCache

        protected java.util.Map<FileName,​java.lang.ref.Reference<FileObject>> getOrCreateFilesystemCache​(FileSystem fileSystem)