org.apache.lucene.store
Class Directory
public abstract class Directory
A Directory is a flat list of files. Files may be written once, when they
are created. Once a file is created it may only be opened for read, or
deleted. Random access is permitted both when reading and writing.
Java's i/o APIs not used directly, but rather all i/o is
through this API. This permits things such as:
- implementation of RAM-based indices;
- implementation indices stored in a database, via JDBC;
- implementation of an index as a single file;
Directory locking is implemented by an instance of
LockFactory
, and can be changed for each Directory
instance using
setLockFactory(LockFactory)
.
protected LockFactory | lockFactory - Holds the LockFactory instance (implements locking for
this Directory instance).
|
void | clearLock(String name) - Attempt to clear (forcefully unlock and remove) the
specified lock.
|
abstract void | close() - Closes the store.
|
static void | copy(Directory src, Directory dest, boolean closeDirSrc) - Copy contents of a directory src to a directory dest.
|
abstract IndexOutput | createOutput(String name) - Creates a new, empty file in the directory with the given name.
|
abstract void | deleteFile(String name) - Removes an existing file in the directory.
|
abstract boolean | fileExists(String name) - Returns true iff a file with the given name exists.
|
abstract long | fileLength(String name) - Returns the length of a file in the directory.
|
abstract long | fileModified(String name) - Returns the time the named file was last modified.
|
LockFactory | getLockFactory() - Get the LockFactory that this Directory instance is
using for its locking implementation.
|
String | getLockID() - Return a string identifier that uniquely differentiates
this Directory instance from other Directory instances.
|
abstract String[] | list() - Returns an array of strings, one for each file in the directory.
|
Lock | makeLock(String name) - Construct a
Lock .
|
abstract IndexInput | openInput(String name) - Returns a stream reading an existing file.
|
abstract void | renameFile(String from, String to)
|
void | setLockFactory(LockFactory lockFactory) - Set the LockFactory that this Directory instance should
use for its locking implementation.
|
abstract void | touchFile(String name) - Set the modified time of an existing file to now.
|
lockFactory
protected LockFactory lockFactory
Holds the LockFactory instance (implements locking for
this Directory instance).
clearLock
public void clearLock(String name)
throws IOException
Attempt to clear (forcefully unlock and remove) the
specified lock. Only call this at a time when you are
certain this lock is no longer in use.
close
public abstract void close()
throws IOException
Closes the store.
copy
public static void copy(Directory src,
Directory dest,
boolean closeDirSrc)
throws IOException
Copy contents of a directory src to a directory dest.
If a file in src already exists in dest then the
one in dest will be blindly overwritten.
src
- source directorydest
- destination directorycloseDirSrc
- if true
, call close()
method on source directory
createOutput
public abstract IndexOutput createOutput(String name)
throws IOException
Creates a new, empty file in the directory with the given name.
Returns a stream writing this file.
deleteFile
public abstract void deleteFile(String name)
throws IOException
Removes an existing file in the directory.
fileExists
public abstract boolean fileExists(String name)
throws IOException
Returns true iff a file with the given name exists.
fileLength
public abstract long fileLength(String name)
throws IOException
Returns the length of a file in the directory.
fileModified
public abstract long fileModified(String name)
throws IOException
Returns the time the named file was last modified.
getLockFactory
public LockFactory getLockFactory()
Get the LockFactory that this Directory instance is
using for its locking implementation. Note that this
may be null for Directory implementations that provide
their own locking implementation.
getLockID
public String getLockID()
Return a string identifier that uniquely differentiates
this Directory instance from other Directory instances.
This ID should be the same if two Directory instances
(even in different JVMs and/or on different machines)
are considered "the same index". This is how locking
"scopes" to the right index.
list
public abstract String[] list()
throws IOException
Returns an array of strings, one for each file in the directory.
makeLock
public Lock makeLock(String name)
name
- the name of the lock file
openInput
public abstract IndexInput openInput(String name)
throws IOException
Returns a stream reading an existing file.
renameFile
public abstract void renameFile(String from,
String to)
throws IOException
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.
setLockFactory
public void setLockFactory(LockFactory lockFactory)
Set the LockFactory that this Directory instance should
use for its locking implementation. Each * instance of
LockFactory should only be used for one directory (ie,
do not share a single instance across multiple
Directories).
touchFile
public abstract void touchFile(String name)
throws IOException
Set the modified time of an existing file to now.
Copyright © 2000-2007 Apache Software Foundation. All Rights Reserved.