Package org.apache.lucene.store
Class FileSwitchDirectory
- java.lang.Object
-
- org.apache.lucene.store.Directory
-
- org.apache.lucene.store.FileSwitchDirectory
-
- All Implemented Interfaces:
Closeable,AutoCloseable
public class FileSwitchDirectory extends Directory
Expert: A Directory instance that switches files between two other Directory instances.Files with the specified extensions are placed in the primary directory; others are placed in the secondary directory. The provided Set must not change once passed to this class, and must allow multiple threads to call contains at once.
- WARNING: This API is experimental and might change in incompatible ways in the next release.
-
-
Field Summary
-
Fields inherited from class org.apache.lucene.store.Directory
isOpen, lockFactory
-
-
Constructor Summary
Constructors Constructor Description FileSwitchDirectory(Set<String> primaryExtensions, Directory primaryDir, Directory secondaryDir, boolean doClose)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description voidclose()Closes the store.IndexOutputcreateOutput(String name)Creates a new, empty file in the directory with the given name.voiddeleteFile(String name)Removes an existing file in the directory.booleanfileExists(String name)Returns true iff a file with the given name exists.longfileLength(String name)Returns the length of a file in the directory.longfileModified(String name)Returns the time the named file was last modified.static StringgetExtension(String name)Utility method to return a file's extension.DirectorygetPrimaryDir()Return the primary directoryDirectorygetSecondaryDir()Return the secondary directoryString[]listAll()Returns an array of strings, one for each file in the directory.IndexInputopenInput(String name)Returns a stream reading an existing file.voidsync(String name)Deprecated.voidsync(Collection<String> names)Ensure that any writes to these files are moved to stable storage.voidtouchFile(String name)Deprecated.-
Methods inherited from class org.apache.lucene.store.Directory
clearLock, copy, copy, ensureOpen, getLockFactory, getLockID, makeLock, openInput, setLockFactory, toString
-
-
-
-
Method Detail
-
getPrimaryDir
public Directory getPrimaryDir()
Return the primary directory
-
getSecondaryDir
public Directory getSecondaryDir()
Return the secondary directory
-
close
public void close() throws IOExceptionDescription copied from class:DirectoryCloses the store.- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Specified by:
closein classDirectory- Throws:
IOException
-
listAll
public String[] listAll() throws IOException
Description copied from class:DirectoryReturns an array of strings, one for each file in the directory.- Specified by:
listAllin classDirectory- Throws:
NoSuchDirectoryException- if the directory is not prepared for any write operations (such asDirectory.createOutput(String)).IOException- in case of other IO errors
-
getExtension
public static String getExtension(String name)
Utility method to return a file's extension.
-
fileExists
public boolean fileExists(String name) throws IOException
Description copied from class:DirectoryReturns true iff a file with the given name exists.- Specified by:
fileExistsin classDirectory- Throws:
IOException
-
fileModified
public long fileModified(String name) throws IOException
Description copied from class:DirectoryReturns the time the named file was last modified.- Specified by:
fileModifiedin classDirectory- Throws:
IOException
-
touchFile
@Deprecated public void touchFile(String name) throws IOException
Deprecated.Description copied from class:DirectorySet the modified time of an existing file to now.- Specified by:
touchFilein classDirectory- Throws:
IOException
-
deleteFile
public void deleteFile(String name) throws IOException
Description copied from class:DirectoryRemoves an existing file in the directory.- Specified by:
deleteFilein classDirectory- Throws:
IOException
-
fileLength
public long fileLength(String name) throws IOException
Description copied from class:DirectoryReturns the length of a file in the directory. This method follows the following contract:- Throws
FileNotFoundExceptionif the file does not exist - Returns a value ≥0 if the file exists, which specifies its length.
- Specified by:
fileLengthin classDirectory- Parameters:
name- the name of the file for which to return the length.- Throws:
FileNotFoundException- if the file does not exist.IOException- if there was an IO error while retrieving the file's length.
- Throws
-
createOutput
public IndexOutput createOutput(String name) throws IOException
Description copied from class:DirectoryCreates a new, empty file in the directory with the given name. Returns a stream writing this file.- Specified by:
createOutputin classDirectory- Throws:
IOException
-
sync
@Deprecated public void sync(String name) throws IOException
Deprecated.Description copied from class:DirectoryEnsure that any writes to this file are moved to stable storage. Lucene uses this to properly commit changes to the index, to prevent a machine/OS crash from corrupting the index.- Overrides:
syncin classDirectory- Throws:
IOException
-
sync
public void sync(Collection<String> names) throws IOException
Description copied from class:DirectoryEnsure that any writes to these files are moved to stable storage. Lucene uses this to properly commit changes to the index, to prevent a machine/OS crash from corrupting the index.
NOTE: Clients may call this method for same files over and over again, so some impls might optimize for that. For other impls the operation can be a noop, for various reasons.- Overrides:
syncin classDirectory- Throws:
IOException
-
openInput
public IndexInput openInput(String name) throws IOException
Description copied from class:DirectoryReturns a stream reading an existing file.- Specified by:
openInputin classDirectory- Throws:
IOException
-
-