public abstract class Directory
extends
implements
Directory
provides an abstraction layer for storing a
list of files. A directory contains only files (no sub-folder hierarchy).
Implementing classes must comply with the following:
createOutput(java.lang.String, org.apache.lucene.store.IOContext)
), appended
to, then closed.IndexOutput
is closed.openInput(java.lang.String, org.apache.lucene.store.IOContext)
), or
deleted (deleteFile(java.lang.String)
). Calling createOutput(java.lang.String, org.apache.lucene.store.IOContext)
on an existing file
must throw .FSDirectory
,
RAMDirectory
,
FilterDirectory
Constructor and Description |
---|
Directory() |
Modifier and Type | Method and Description |
---|---|
abstract void |
close()
Closes the directory.
|
void |
copyFrom(Directory from,
src,
dest,
IOContext context)
Copies an existing
src file from directory from
to a non-existent file dest in this directory. |
abstract IndexOutput |
name,
IOContext context)
Creates a new, empty file in the directory and returns an
IndexOutput
instance for appending data to this file. |
abstract IndexOutput |
prefix,
suffix,
IOContext context)
Creates a new, empty, temporary file in the directory and returns an
IndexOutput
instance for appending data to this file. |
abstract void |
name)
Removes an existing file in the directory.
|
protected void |
ensureOpen()
Ensures this directory is still open.
|
abstract long |
name)
Returns the byte length of a file in the directory.
|
abstract <> |
getPendingDeletions()
Returns a set of files currently pending deletion in this directory.
|
protected static |
prefix,
suffix,
long counter)
Creates a file name for a temporary file.
|
abstract [] |
listAll()
Returns names of all files stored in this directory.
|
abstract Lock |
name)
Acquires and returns a
Lock for a file with the given name. |
ChecksumIndexInput |
name,
IOContext context)
Opens a checksum-computing stream for reading an existing file.
|
abstract IndexInput |
name,
IOContext context)
Opens a stream for reading an existing file.
|
abstract void |
source,
dest)
Renames
source file to dest file where
dest must not already exist in the directory. |
abstract void |
<> names)
Ensures that any writes to these files are moved to
stable storage (made durable).
|
abstract void |
syncMetaData()
Ensures that directory metadata, such as recent file renames, are moved to stable
storage.
|
|
toString() |
public abstract [] listAll() throws
- in case of I/O errorpublic abstract void deleteFile( name) throws
name
points to a non-existing file.name
- the name of an existing file.
- in case of I/O errorpublic abstract long fileLength( name) throws
name
points to a non-existing file.name
- the name of an existing file.
- in case of I/O errorpublic abstract name, IOContext context) throws
IndexOutput
instance for appending data to this file.
This method must throw if the file
already exists.name
- the name of the file to create.
- in case of I/O errorpublic abstract prefix, suffix, IOContext context) throws
IndexOutput
instance for appending data to this file.
The temporary file name (accessible via IndexOutput.getName()
) will start with
prefix
, end with suffix
and have a reserved file extension .tmp
.
public abstract void sync(<> names) throws
syncMetaData()
public abstract void syncMetaData() throws
sync(Collection)
public abstract void rename( source, dest) throws
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.
public abstract name, IOContext context) throws
name
points to a non-existing file.name
- the name of an existing file.
- in case of I/O errorpublic name, IOContext context) throws
name
points to a non-existing file.name
- the name of an existing file.
- in case of I/O errorpublic abstract name) throws
Lock
for a file with the given name.name
- the name of the lock fileLockObtainFailedException
- (optional specific exception) if the lock could
not be obtained because it is currently held elsewhere.
- if any i/o error occurs attempting to gain the lockpublic abstract void close() throws
in interface
in interface
public void copyFrom(Directory from, src, dest, IOContext context) throws
src
file from directory from
to a non-existent file dest
in this directory.
public toString()
in class
protected void ensureOpen() throws AlreadyClosedException
AlreadyClosedException
- if this directory is closed.public abstract <> getPendingDeletions() throws
protected static getTempFileName( prefix, suffix, long counter)
prefix
, end with suffix
and have a reserved file extension .tmp
.Copyright © 2000-2021 Apache Software Foundation. All Rights Reserved.