Package org.apache.commons.vfs2.cache
Class LRUFilesCache
- java.lang.Object
-
- org.apache.commons.vfs2.provider.AbstractVfsComponent
-
- org.apache.commons.vfs2.cache.AbstractFilesCache
-
- org.apache.commons.vfs2.cache.LRUFilesCache
-
- All Implemented Interfaces:
java.io.Closeable,java.lang.AutoCloseable,FilesCache,VfsComponent
public class LRUFilesCache extends AbstractFilesCache
This implementation caches every file usingLRUMap.The default constructor uses a LRU size of 100 per file system.
-
-
Constructor Summary
Constructors Constructor Description LRUFilesCache()Constructs a new instance.LRUFilesCache(int lruSize)Constructs a new instance with the desired LRU size.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclear(FileSystem filesystem)Purges the entries corresponding to the FileSystem.voidclose()Closes the provider.FileObjectgetFile(FileSystem filesystem, FileName name)Retrieves a FileObject from the cache by name.protected java.util.Map<FileName,FileObject>getOrCreateFilesystemCache(FileSystem fileSystem)Gets or creates a new Map.voidputFile(FileObject file)Adds a FileObject to the cache.booleanputFileIfAbsent(FileObject file)Adds a FileObject to the cache if it isn't already present.voidremoveFile(FileSystem filesystem, FileName name)Removes a file from cache.voidtouchFile(FileObject file)Default implementation is a NOOP.-
Methods inherited from class org.apache.commons.vfs2.provider.AbstractVfsComponent
getContext, getLogger, init, setContext, setLogger
-
-
-
-
Constructor Detail
-
LRUFilesCache
public LRUFilesCache()
Constructs a new instance. Uses an LRU size of 100 per file system.
-
LRUFilesCache
public LRUFilesCache(int lruSize)
Constructs a new instance with the desired LRU size.- Parameters:
lruSize- the LRU size
-
-
Method Detail
-
clear
public void clear(FileSystem filesystem)
Description copied from interface:FilesCachePurges the entries corresponding to the FileSystem.- Parameters:
filesystem- The FileSystem.
-
close
public void close()
Description copied from class:AbstractVfsComponentCloses the provider. This implementation does nothing.- Specified by:
closein interfacejava.lang.AutoCloseable- Specified by:
closein interfacejava.io.Closeable- Specified by:
closein interfaceFilesCache- Specified by:
closein interfaceVfsComponent- Overrides:
closein classAbstractVfsComponent
-
getFile
public FileObject getFile(FileSystem filesystem, FileName name)
Description copied from interface:FilesCacheRetrieves a FileObject from the cache by name.- Parameters:
filesystem- The FileSystem.name- the name- Returns:
- the file object or null if file is not cached
-
getOrCreateFilesystemCache
protected java.util.Map<FileName,FileObject> getOrCreateFilesystemCache(FileSystem fileSystem)
Gets or creates a new Map.- Parameters:
fileSystem- the key- Returns:
- an existing or new Map.
-
putFile
public void putFile(FileObject file)
Description copied from interface:FilesCacheAdds a FileObject to the cache.- Parameters:
file- the file
-
putFileIfAbsent
public boolean putFileIfAbsent(FileObject file)
Description copied from interface:FilesCacheAdds a FileObject to the cache if it isn't already present.- Parameters:
file- the file- Returns:
- true if the file was stored, false otherwise.
-
removeFile
public void removeFile(FileSystem filesystem, FileName name)
Description copied from interface:FilesCacheRemoves a file from cache.- Parameters:
filesystem- file systemname- file name
-
touchFile
public void touchFile(FileObject file)
Description copied from class:AbstractFilesCacheDefault implementation is a NOOP.- Overrides:
touchFilein classAbstractFilesCache- Parameters:
file- touch this file.
-
-