org.apache.lucene.store.je

## Class JEDirectory

- java.lang.Object
- - org.apache.lucene.store.Directory
  - - org.apache.lucene.store.je.JEDirectory

-     public class JEDirectory
      extends Directory

  Port of Andi Vajda's DbDirectory to to Java Edition of Berkeley Database A JEDirectory is a Berkeley DB JE based implementation of `Directory`. It uses two `Db` database handles, one for storing file records and another for storing file data blocks.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected Database` | `blocks`
    `protected Database` | `files`
    `protected int` | `flags`
    `protected java.util.Set` | `openFiles`
    `protected Transaction` | `txn`

    - ### Fields inherited from class org.apache.lucene.store.Directory

      `isOpen, lockFactory`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `JEDirectory(Transaction txn, Database files, Database blocks)`
    `JEDirectory(Transaction txn, Database files, Database blocks, int flags)` Instantiate a DbDirectory.

  - ### Method Summary

    All 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.
    `void` | `flush()` Flush the currently open files.
    `java.lang.String[]` | `list()` List the files in the directory.
    `Lock` | `makeLock(java.lang.String name)` Construct a `Lock`.
    `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` | `setTransaction(Transaction txn)` Once a transaction handle was committed it is no longer valid.
    `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, listAll, openInput, setLockFactory, sync, toString`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### openFiles

          protected java.util.Set openFiles

    - #### files

          protected Database files

    - #### blocks

          protected Database blocks

    - #### txn

          protected Transaction txn

    - #### flags

          protected int flags

  - ### Constructor Detail

    - #### JEDirectory

          public JEDirectory(Transaction txn,
                             Database files,
                             Database blocks,
                             int flags)

      Instantiate a DbDirectory. The same threading rules that apply to Berkeley DB handles apply to instances of DbDirectory.
      Parameters:
        `txn` - a transaction handle that is going to be used for all db operations done by this instance. This parameter may be `null`.
        `files` - a db handle to store file records.
        `blocks` - a db handle to store file data blocks.
        `flags` - flags used for db read operations.

    - #### JEDirectory

          public JEDirectory(Transaction txn,
                             Database files,
                             Database blocks)

  - ### Method Detail

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

    - #### flush

          public void flush()
                     throws java.io.IOException

      Flush the currently open files. After they have been flushed it is safe to commit the transaction without closing this DbDirectory instance first.
      Throws:
        `java.io.IOException`
      See Also:
        `setTransaction(Transaction)`

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

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

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

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

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

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

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

    - #### makeLock

          public Lock makeLock(java.lang.String name)

      Description copied from class: `Directory`
      Construct a `Lock`.
      Overrides:
        `makeLock` in class `Directory`
      Parameters:
        `name` - the name of the lock file

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

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

    - #### setTransaction

          public void setTransaction(Transaction txn)

      Once a transaction handle was committed it is no longer valid. In order to continue using this JEDirectory instance after a commit, the transaction handle has to be replaced.
      Parameters:
        `txn` - the new transaction handle to use

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