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
 
 - 
 
 -