org.apache.lucene.store

## Class FileSwitchDirectory

- java.lang.Object
- - org.apache.lucene.store.Directory
  - - 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

    Constructors
    Constructor and Description
    `FileSwitchDirectory(java.util.Set primaryExtensions, Directory primaryDir, Directory secondaryDir, boolean doClose)`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `close()` Closes the store.
    `IndexOutput` | `createOutput(java.lang.String name)` Creates a new, empty file in the directory with the given name.
    `void` | `deleteFile(java.lang.String name)` Removes an existing file in the directory.
    `boolean` | `fileExists(java.lang.String name)` Returns true iff a file with the given name exists.
    `long` | `fileLength(java.lang.String name)` Returns the length of a file in the directory.
    `long` | `fileModified(java.lang.String name)` Returns the time the named file was last modified.
    `static java.lang.String` | `getExtension(java.lang.String name)` Utility method to return a file's extension.
    `Directory` | `getPrimaryDir()` Return the primary directory
    `Directory` | `getSecondaryDir()` Return the secondary directory
    `java.lang.String[]` | `list()` List the files in the directory.
    `java.lang.String[]` | `listAll()` Returns an array of strings, one for each file in the directory.
    `IndexInput` | `openInput(java.lang.String name)` Returns a stream reading an existing file.
    `void` | `renameFile(java.lang.String from, java.lang.String to)` Renames an existing file in the directory.
    `void` | `sync(java.lang.String name)` Ensure that any writes to this file are moved to stable storage.
    `void` | `touchFile(java.lang.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(java.util.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 java.io.IOException

      Description copied from class: `Directory`
      Closes the store.
      Specified by:
        `close` in class `Directory`
      Throws:
        `java.io.IOException`

    - #### listAll

          public java.lang.String[] listAll()
                                     throws java.io.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:
        `java.io.IOException`

    - #### list

          public java.lang.String[] list()
                                  throws java.io.IOException

      Description copied from class: `Directory`
      List the files in the directory.
      Specified by:
        `list` in class `Directory`
      Throws:
        `java.io.IOException`

    - #### 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.IOException

      Description copied from class: `Directory`
      Returns true iff a file with the given name exists.
      Specified by:
        `fileExists` in class `Directory`
      Throws:
        `java.io.IOException`

    - #### fileModified

          public long fileModified(java.lang.String name)
                            throws java.io.IOException

      Description copied from class: `Directory`
      Returns the time the named file was last modified.
      Specified by:
        `fileModified` in class `Directory`
      Throws:
        `java.io.IOException`

    - #### touchFile

          public void touchFile(java.lang.String name)
                         throws java.io.IOException

      Description copied from class: `Directory`
      Set the modified time of an existing file to now.
      Specified by:
        `touchFile` in class `Directory`
      Throws:
        `java.io.IOException`

    - #### deleteFile

          public void deleteFile(java.lang.String name)
                          throws java.io.IOException

      Description copied from class: `Directory`
      Removes an existing file in the directory.
      Specified by:
        `deleteFile` in class `Directory`
      Throws:
        `java.io.IOException`

    - #### renameFile

          public void renameFile(java.lang.String from,
                                 java.lang.String to)
                          throws java.io.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:
        `java.io.IOException`

    - #### fileLength

          public long fileLength(java.lang.String name)
                          throws java.io.IOException

      Description copied from class: `Directory`
      Returns the length of a file in the directory.
      Specified by:
        `fileLength` in class `Directory`
      Throws:
        `java.io.IOException`

    - #### createOutput

          public IndexOutput createOutput(java.lang.String name)
                                   throws java.io.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:
        `java.io.IOException`

    - #### sync

          public void sync(java.lang.String name)
                    throws java.io.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:
        `java.io.IOException`

    - #### openInput

          public IndexInput openInput(java.lang.String name)
                               throws java.io.IOException

      Description copied from class: `Directory`
      Returns a stream reading an existing file.
      Specified by:
        `openInput` in class `Directory`
      Throws:
        `java.io.IOException`

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