org.apache.lucene.store
Class FileSwitchDirectory

java.lang.Object
  extended by org.apache.lucene.store.Directory
      extended by org.apache.lucene.store.BaseDirectory
          extended by org.apache.lucene.store.FileSwitchDirectory
All Implemented Interfaces:
Closeable

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.

WARNING: This API is experimental and might change in incompatible ways in the next release.

Nested Class Summary
 
Nested classes/interfaces inherited from class org.apache.lucene.store.Directory
Directory.IndexInputSlicer
 
Field Summary
 
Fields inherited from class org.apache.lucene.store.BaseDirectory
isOpen, lockFactory
 
Constructor Summary
FileSwitchDirectory(Set<String> primaryExtensions, Directory primaryDir, Directory secondaryDir, boolean doClose)
           
 
Method Summary
 void close()
          Closes the store.
 IndexOutput createOutput(String name, IOContext context)
          Creates a new, empty file in the directory with the given name.
 Directory.IndexInputSlicer createSlicer(String name, IOContext context)
          Creates an Directory.IndexInputSlicer for the given file name.
 void deleteFile(String name)
          Removes an existing file in the directory.
 boolean fileExists(String name)
          Returns true iff a file with the given name exists.
 long fileLength(String name)
          Returns the length of a file in the directory.
static String getExtension(String name)
          Utility method to return a file's extension.
 Directory getPrimaryDir()
          Return the primary directory
 Directory getSecondaryDir()
          Return the secondary directory
 String[] listAll()
          Returns an array of strings, one for each file in the directory.
 IndexInput openInput(String name, IOContext context)
          Returns a stream reading an existing file, with the specified read buffer size.
 void sync(Collection<String> names)
          Ensure that any writes to these files are moved to stable storage.
 
Methods inherited from class org.apache.lucene.store.BaseDirectory
clearLock, ensureOpen, getLockFactory, makeLock, setLockFactory
 
Methods inherited from class org.apache.lucene.store.Directory
copy, getLockID, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

FileSwitchDirectory

public FileSwitchDirectory(Set<String> primaryExtensions,
                           Directory primaryDir,
                           Directory secondaryDir,
                           boolean doClose)
Method Detail

getPrimaryDir

public Directory getPrimaryDir()
Return the primary directory


getSecondaryDir

public Directory getSecondaryDir()
Return the secondary directory


close

public void close()
           throws IOException
Description copied from class: Directory
Closes the store.

Specified by:
close in interface Closeable
Specified by:
close in class Directory
Throws:
IOException

listAll

public String[] listAll()
                 throws IOException
Description copied from class: Directory
Returns an array of strings, one for each file in the directory.

Specified by:
listAll in class Directory
Throws:
NoSuchDirectoryException - if the directory is not prepared for any write operations (such as Directory.createOutput(String, IOContext)).
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: Directory
Returns true iff a file with the given name exists.

Specified by:
fileExists in class Directory
Throws:
IOException

deleteFile

public void deleteFile(String name)
                throws IOException
Description copied from class: Directory
Removes an existing file in the directory.

Specified by:
deleteFile in class Directory
Throws:
IOException

fileLength

public long fileLength(String name)
                throws IOException
Description copied from class: Directory
Returns the length of a file in the directory. This method follows the following contract:

Specified by:
fileLength in class Directory
Parameters:
name - the name of the file for which to return the length.
Throws:
IOException - if there was an IO error while retrieving the file's length.

createOutput

public IndexOutput createOutput(String name,
                                IOContext context)
                         throws IOException
Description copied from class: Directory
Creates a new, empty file in the directory with the given name. Returns a stream writing this file.

Specified by:
createOutput in class Directory
Throws:
IOException

sync

public void sync(Collection<String> names)
          throws IOException
Description copied from class: Directory
Ensure 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.

Specified by:
sync in class Directory
Throws:
IOException

openInput

public IndexInput openInput(String name,
                            IOContext context)
                     throws IOException
Description copied from class: Directory
Returns 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 are FSDirectory and CompoundFileDirectory.
  • Must throw FileNotFoundException if the file does not exist (not java.nio.file.NoSuchFileException of Java 7).

    Specified by:
    openInput in class Directory
    Throws:
    IOException

  • createSlicer

    public Directory.IndexInputSlicer createSlicer(String name,
                                                   IOContext context)
                                            throws IOException
    Description copied from class: Directory
    Creates an Directory.IndexInputSlicer for the given file name. IndexInputSlicer allows other Directory implementations to efficiently open one or more sliced IndexInput instances from a single file handle. The underlying file handle is kept open until the Directory.IndexInputSlicer is closed.
  • Must throw FileNotFoundException if the file does not exist (not java.nio.file.NoSuchFileException of Java 7).

    Overrides:
    createSlicer in class Directory
    Throws:
    IOException - if an IOException occurs


  • Copyright © 2000-2014 Apache Software Foundation. All Rights Reserved.