Class Directory

    • Constructor Detail

      • Directory

        public Directory()
    • Method Detail

      • fileLength

        public abstract long fileLength​(String name)
                                 throws IOException
        Returns the byte length of a file in the directory.

        This method must throw either NoSuchFileException or FileNotFoundException if name points to a non-existing file.

        Parameters:
        name - the name of an existing file.
        Throws:
        IOException - in case of I/O error
      • sync

        public abstract void sync​(Collection<String> names)
                           throws IOException
        Ensures that any writes to these files are moved to stable storage (made durable).

        Lucene uses this to properly commit changes to the index, to prevent a machine/OS crash from corrupting the index.

        Throws:
        IOException
        See Also:
        syncMetaData()
      • syncMetaData

        public abstract void syncMetaData()
                                   throws IOException
        Ensures that directory metadata, such as recent file renames, are moved to stable storage.
        Throws:
        IOException
        See Also:
        sync(Collection)
      • rename

        public abstract void rename​(String source,
                                    String dest)
                             throws IOException
        Renames source file to dest file where dest must not already exist in the directory.

        It is permitted for this operation to not be truly atomic, for example both source and dest can be visible temporarily in listAll(). However, the implementation of this method must ensure the content of dest appears as the entire source atomically. So once dest is visible for readers, the entire content of previous source is visible.

        This method is used by IndexWriter to publish commits.

        Throws:
        IOException
      • obtainLock

        public abstract Lock obtainLock​(String name)
                                 throws IOException
        Acquires and returns a Lock for a file with the given name.
        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
      • getPendingDeletions

        public abstract Set<String> getPendingDeletions()
                                                 throws IOException
        Returns a set of files currently pending deletion in this directory.
        Throws:
        IOException
        NOTE: This API is for internal purposes only and might change in incompatible ways in the next release.