Package org.apache.lucene.store

## Class BaseDirectory

- java.lang.Object
- - org.apache.lucene.store.Directory
  - - org.apache.lucene.store.BaseDirectory

- All Implemented Interfaces:
    `Closeable`, `AutoCloseable`
  Direct Known Subclasses:
    `ByteBuffersDirectory`, `FSDirectory`

      public abstract class BaseDirectory
      extends Directory

  Base implementation for a concrete `Directory` that uses a `LockFactory` for locking.
  WARNING: This API is experimental and might change in incompatible ways in the next release.

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected boolean` | `isOpen` |
    `protected LockFactory` | `lockFactory` | Holds the LockFactory instance (implements locking for this Directory instance).

  - ### Constructor Summary

    Constructors
    Modifier | Constructor | Description
    --- | --- | ---
    `protected` | `BaseDirectory​(LockFactory lockFactory)` | Sole constructor.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected void` | `ensureOpen()` | Ensures this directory is still open.
    `Lock` | `obtainLock​(String name)` | Acquires and returns a `Lock` for a file with the given name.
    `String` | `toString()` |

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

      `close, copyFrom, createOutput, createTempOutput, deleteFile, fileLength, getPendingDeletions, getTempFileName, listAll, openChecksumInput, openInput, rename, sync, syncMetaData`

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

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

- - ### Field Detail

    - #### isOpen

          protected volatile boolean isOpen

    - #### lockFactory

          protected final LockFactory lockFactory

      Holds the LockFactory instance (implements locking for this Directory instance).

  - ### Constructor Detail

    - #### BaseDirectory

          protected BaseDirectory​(LockFactory lockFactory)

      Sole constructor.

  - ### Method Detail

    - #### obtainLock

          public final Lock obtainLock​(String name)
                                throws IOException

      Description copied from class: `Directory`
      Acquires and returns a `Lock` for a file with the given name.
      Specified by:
        `obtainLock` in class `Directory`
      Parameters:
        `name` - the name of the lock file
      Throws:
        `LockObtainFailedException` - (optional specific exception) if the lock could not be obtained because it is currently held elsewhere.
        `IOException` - if any i/o error occurs attempting to gain the lock

    - #### ensureOpen

          protected final void ensureOpen()
                                   throws AlreadyClosedException

      Description copied from class: `Directory`
      Ensures this directory is still open.
      Overrides:
        `ensureOpen` in class `Directory`
      Throws:
        `AlreadyClosedException` - if this directory is closed.

    - #### toString

          public String toString()

      Overrides:
        `toString` in class `Directory`