public abstract class DirectoryFactory extends Object implements NamedListInitializedPlugin, Closeable
Modifier and Type | Class and Description |
---|---|
static class |
DirectoryFactory.DirContext |
Modifier and Type | Field and Description |
---|---|
static IOContext |
IOCONTEXT_NO_CACHE |
Constructor and Description |
---|
DirectoryFactory() |
Modifier and Type | Method and Description |
---|---|
abstract void |
addCloseListener(Directory dir,
CachingDirectoryFactory.CloseListener closeListener)
Adds a close listener for a Directory.
|
abstract void |
close()
Close the this and all of the Directories it contains.
|
protected abstract Directory |
create(String path,
DirectoryFactory.DirContext dirContext)
Creates a new Directory for a given path.
|
abstract void |
doneWithDirectory(Directory directory)
Indicates a Directory will no longer be used, and when it's ref count
hits 0, it can be closed.
|
static boolean |
empty(Directory dir)
Delete the files in the Directory
|
abstract boolean |
exists(String path)
Returns true if a Directory exists for a given path.
|
abstract Directory |
get(String path,
DirectoryFactory.DirContext dirContext,
String rawLockType)
Returns the Directory for a given path, using the specified rawLockType.
|
String |
getDataHome(CoreDescriptor cd) |
abstract void |
incRef(Directory directory)
Increment the number of references to the given Directory.
|
boolean |
isAbsolute(String path) |
abstract boolean |
isPersistent() |
boolean |
isSharedStorage() |
void |
move(Directory fromDir,
Directory toDir,
String fileName,
IOContext ioContext)
Override for more efficient moves.
|
String |
normalize(String path)
Normalize a given path.
|
abstract void |
release(Directory directory)
Releases the Directory so that it may be closed when it is no longer
referenced.
|
abstract void |
remove(Directory dir)
Removes the Directory's persistent storage.
|
abstract void |
remove(Directory dir,
boolean afterCoreClose)
Removes the Directory's persistent storage.
|
abstract void |
remove(String path)
This remove is special in that it may be called even after
the factory has been closed.
|
abstract void |
remove(String path,
boolean afterCoreClose)
This remove is special in that it may be called even after
the factory has been closed.
|
boolean |
searchersReserveCommitPoints()
If your implementation can count on delete-on-last-close semantics
or throws an exception when trying to remove a file in use, return
false (eg NFS).
|
static long |
sizeOf(Directory directory,
String file) |
static long |
sizeOfDirectory(Directory directory) |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
init
public static final IOContext IOCONTEXT_NO_CACHE
public abstract void doneWithDirectory(Directory directory) throws IOException
IOException
- If there is a low-level I/O error.public abstract void addCloseListener(Directory dir, CachingDirectoryFactory.CloseListener closeListener)
public abstract void close() throws IOException
close
in interface Closeable
close
in interface AutoCloseable
IOException
- If there is a low-level I/O error.protected abstract Directory create(String path, DirectoryFactory.DirContext dirContext) throws IOException
IOException
- If there is a low-level I/O error.public abstract boolean exists(String path) throws IOException
IOException
- If there is a low-level I/O error.public abstract void remove(Directory dir) throws IOException
IOException
- If there is a low-level I/O error.public abstract void remove(Directory dir, boolean afterCoreClose) throws IOException
IOException
- If there is a low-level I/O error.public abstract void remove(String path, boolean afterCoreClose) throws IOException
path
- to removeafterCoreClose
- whether to wait until after the core is closed.IOException
- If there is a low-level I/O error.public abstract void remove(String path) throws IOException
path
- to removeIOException
- If there is a low-level I/O error.public void move(Directory fromDir, Directory toDir, String fileName, IOContext ioContext) throws IOException
IOException
- If there is a low-level I/O error.public abstract Directory get(String path, DirectoryFactory.DirContext dirContext, String rawLockType) throws IOException
IOException
- If there is a low-level I/O error.public abstract void incRef(Directory directory)
public abstract boolean isPersistent()
public boolean isSharedStorage()
public abstract void release(Directory directory) throws IOException
IOException
- If there is a low-level I/O error.public String normalize(String path) throws IOException
path
- to normalizeIOException
- on io errorpublic boolean isAbsolute(String path)
path
- the path to checkpublic static long sizeOfDirectory(Directory directory) throws IOException
IOException
public static long sizeOf(Directory directory, String file) throws IOException
IOException
public static boolean empty(Directory dir)
public boolean searchersReserveCommitPoints()
public String getDataHome(CoreDescriptor cd) throws IOException
IOException
Copyright © 2000-2014 Apache Software Foundation. All Rights Reserved.