Package org.apache.lucene.store
Class FileSwitchDirectory
- java.lang.Object
-
- org.apache.lucene.store.Directory
-
- org.apache.lucene.store.BaseDirectory
-
- org.apache.lucene.store.FileSwitchDirectory
-
- All Implemented Interfaces:
java.io.Closeable,java.lang.AutoCloseable
public class FileSwitchDirectory extends BaseDirectory
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.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.apache.lucene.store.Directory
Directory.IndexInputSlicer
-
-
Constructor Summary
Constructors Constructor Description FileSwitchDirectory(java.util.Set<java.lang.String> primaryExtensions, Directory primaryDir, Directory secondaryDir, boolean doClose)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclose()Closes the store.IndexOutputcreateOutput(java.lang.String name, IOContext context)Creates a new, empty file in the directory with the given name.Directory.IndexInputSlicercreateSlicer(java.lang.String name, IOContext context)Creates anDirectory.IndexInputSlicerfor the given file name.voiddeleteFile(java.lang.String name)Removes an existing file in the directory.booleanfileExists(java.lang.String name)Returns true iff a file with the given name exists.longfileLength(java.lang.String name)Returns the length of a file in the directory.static java.lang.StringgetExtension(java.lang.String name)Utility method to return a file's extension.DirectorygetPrimaryDir()Return the primary directoryDirectorygetSecondaryDir()Return the secondary directoryjava.lang.String[]listAll()Returns an array of strings, one for each file in the directory.IndexInputopenInput(java.lang.String name, IOContext context)Returns a stream reading an existing file, with the specified read buffer size.voidsync(java.util.Collection<java.lang.String> names)Ensure that any writes to these files are moved to stable storage.-
Methods inherited from class org.apache.lucene.store.BaseDirectory
clearLock, getLockFactory, makeLock, setLockFactory
-
-
-
-
Method Detail
-
getPrimaryDir
public Directory getPrimaryDir()
Return the primary directory
-
getSecondaryDir
public Directory getSecondaryDir()
Return the secondary directory
-
close
public void close() throws java.io.IOExceptionDescription copied from class:DirectoryCloses the store.
-
listAll
public java.lang.String[] listAll() throws java.io.IOExceptionDescription 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, IOContext)).java.io.IOException- in case of other IO errors
-
getExtension
public static java.lang.String getExtension(java.lang.String name)
Utility method to return a file's extension.
-
fileExists
public boolean fileExists(java.lang.String name) throws java.io.IOExceptionDescription copied from class:DirectoryReturns true iff a file with the given name exists.- Specified by:
fileExistsin classDirectory- Throws:
java.io.IOException
-
deleteFile
public void deleteFile(java.lang.String name) throws java.io.IOExceptionDescription copied from class:DirectoryRemoves an existing file in the directory.- Specified by:
deleteFilein classDirectory- Throws:
java.io.IOException
-
fileLength
public long fileLength(java.lang.String name) throws java.io.IOExceptionDescription copied from class:DirectoryReturns the length of a file in the directory. This method follows the following contract:- Must throw
FileNotFoundExceptionif the file does not exist (notjava.nio.file.NoSuchFileExceptionof Java 7). - 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:
java.io.IOException- if there was an IO error while retrieving the file's length.
- Must throw
-
createOutput
public IndexOutput createOutput(java.lang.String name, IOContext context) throws java.io.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:
java.io.IOException
-
sync
public void sync(java.util.Collection<java.lang.String> names) throws java.io.IOExceptionDescription 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.
-
openInput
public IndexInput openInput(java.lang.String name, IOContext context) throws java.io.IOException
Description copied from class:DirectoryReturns a stream reading an existing file, with the specified read buffer size. The particular Directory implementation may ignore the buffer size. Currently the only Directory implementations that respect this parameter areFSDirectoryandCompoundFileDirectory.- Must throw
FileNotFoundExceptionif the file does not exist (notjava.nio.file.NoSuchFileExceptionof Java 7). - Must throw
-
createSlicer
public Directory.IndexInputSlicer createSlicer(java.lang.String name, IOContext context) throws java.io.IOException
Description copied from class:DirectoryCreates anDirectory.IndexInputSlicerfor the given file name. IndexInputSlicer allows otherDirectoryimplementations to efficiently open one or more slicedIndexInputinstances from a single file handle. The underlying file handle is kept open until theDirectory.IndexInputSliceris closed.- Must throw
FileNotFoundExceptionif the file does not exist (notjava.nio.file.NoSuchFileExceptionof Java 7).- Overrides:
createSlicerin classDirectory- Throws:
java.io.IOException- if anIOExceptionoccurs
- Must throw
-
-