Class SoftRefFilesCache

  • All Implemented Interfaces:
    java.io.Closeable, java.lang.AutoCloseable, 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 JVM. As soon as the JVM needs memory - every softly reachable file will be discarded.
    See Also:
    SoftReference
    • Method Detail

      • clear

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

        protected java.lang.ref.Reference<FileObjectcreateReference​(FileObject file,
                                                                      java.lang.ref.ReferenceQueue<FileObject> referenceQueue)
        Constructs a new Reference.
        Parameters:
        file - a file object.
        referenceQueue - a ReferenceQueue.
        Returns:
        a new Reference on the given input.
      • 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 file object or null if file is not cached
      • 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.
      • removeFile

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

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object