org.apache.lucene.store
Class FileSwitchDirectory

java.lang.Object
  extended by org.apache.lucene.store.Directory
      extended by org.apache.lucene.store.FileSwitchDirectory

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.

NOTE: this API is new and experimental and is subject to suddenly change in the next release.


Field Summary
 
Fields inherited from class org.apache.lucene.store.Directory
isOpen, lockFactory
 
Constructor Summary
FileSwitchDirectory(Set primaryExtensions, Directory primaryDir, Directory secondaryDir, boolean doClose)
           
 
Method Summary
 void close()
          Closes the store.
 IndexOutput createOutput(String name)
          Creates a new, empty file in the directory with the given 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.
 long fileModified(String name)
          Returns the time the named file was last modified.
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[] list()
          List the files in the directory.
 String[] listAll()
          Returns an array of strings, one for each file in the directory.
 IndexInput openInput(String name)
          Returns a stream reading an existing file.
 void renameFile(String from, String to)
          Renames an existing file in the directory.
 void sync(String name)
          Ensure that any writes to this file are moved to stable storage.
 void touchFile(String name)
          Set the modified time of an existing file to now.
 
Methods inherited from class org.apache.lucene.store.Directory
clearLock, copy, ensureOpen, getLockFactory, getLockID, makeLock, openInput, setLockFactory, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

FileSwitchDirectory

public FileSwitchDirectory(Set 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 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. Unlike Directory.list() this method does no filtering of the contents in a directory, and it will never return null (throws IOException instead). Currently this method simply falls back to Directory.list() for Directory impls outside of Lucene's core & contrib, but in 3.0 that method will be removed and this method will become abstract.

Overrides:
listAll in class Directory
Throws:
IOException

list

public String[] list()
              throws IOException
Description copied from class: Directory
List the files in the directory.

Specified by:
list in class Directory
Throws:
IOException

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

fileModified

public long fileModified(String name)
                  throws IOException
Description copied from class: Directory
Returns the time the named file was last modified.

Specified by:
fileModified in class Directory
Throws:
IOException

touchFile

public void touchFile(String name)
               throws IOException
Description copied from class: Directory
Set the modified time of an existing file to now.

Specified by:
touchFile 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

renameFile

public void renameFile(String from,
                       String to)
                throws IOException
Description copied from class: Directory
Renames an existing file in the directory. If a file already exists with the new name, then it is replaced. This replacement is not guaranteed to be atomic.

Specified by:
renameFile 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.

Specified by:
fileLength in class Directory
Throws:
IOException

createOutput

public IndexOutput createOutput(String name)
                         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(String name)
          throws IOException
Description copied from class: Directory
Ensure 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:
sync in class Directory
Throws:
IOException

openInput

public IndexInput openInput(String name)
                     throws IOException
Description copied from class: Directory
Returns a stream reading an existing file.

Specified by:
openInput in class Directory
Throws:
IOException


Copyright © 2000-2010 Apache Software Foundation. All Rights Reserved.