public final class CompoundFileDirectory extends BaseDirectory
All files belonging to a segment have the same name with varying extensions.
The extensions correspond to the different file formats used by the Codec
.
When using the Compound File format these files are collapsed into a
single .cfs file (except for the LiveDocsFormat
, with a
corresponding .cfe file indexing its sub-files.
Files:
Description:
CodecHeader
VInt
UInt64
String
CodecFooter
Notes:
Modifier and Type | Class and Description |
---|---|
static class |
CompoundFileDirectory.FileEntry
Offset/Length for a slice inside of a compound file
|
Directory.IndexInputSlicer
Modifier and Type | Field and Description |
---|---|
protected int |
readBufferSize |
isOpen, lockFactory
Constructor and Description |
---|
CompoundFileDirectory(Directory directory,
String fileName,
IOContext context,
boolean openForWrite)
Create a new CompoundFileDirectory.
|
Modifier and Type | Method and Description |
---|---|
void |
close()
Closes the store.
|
IndexOutput |
createOutput(String name,
IOContext context)
Creates a new, empty file in the directory with the given name.
|
Directory.IndexInputSlicer |
createSlicer(String name,
IOContext context)
Creates an
Directory.IndexInputSlicer for the given file name. |
void |
deleteFile(String name)
Not implemented
|
boolean |
fileExists(String name)
Returns true iff a file with the given name exists.
|
long |
fileLength(String name)
Returns the length of a file in the directory.
|
Directory |
getDirectory() |
String |
getName() |
String[] |
listAll()
Returns an array of strings, one for each file in the directory.
|
Lock |
makeLock(String name)
Not implemented
|
IndexInput |
openInput(String name,
IOContext context)
Returns a stream reading an existing file, with the
specified read buffer size.
|
void |
renameFile(String from,
String to)
Not implemented
|
void |
sync(Collection<String> names)
Ensure that any writes to these files are moved to
stable storage.
|
String |
toString() |
clearLock, ensureOpen, getLockFactory, setLockFactory
copy, getLockID, openChecksumInput
public CompoundFileDirectory(Directory directory, String fileName, IOContext context, boolean openForWrite) throws IOException
IOException
public Directory getDirectory()
public String getName()
public void close() throws IOException
Directory
close
in interface Closeable
close
in interface AutoCloseable
close
in class Directory
IOException
public IndexInput openInput(String name, IOContext context) throws IOException
Directory
FSDirectory
and CompoundFileDirectory
.
Throws FileNotFoundException
or NoSuchFileException
if the file does not exist.
openInput
in class Directory
IOException
public String[] listAll()
public boolean fileExists(String name)
fileExists
in class Directory
public void deleteFile(String name)
deleteFile
in class Directory
UnsupportedOperationException
- always: not supported by CFSpublic void renameFile(String from, String to)
UnsupportedOperationException
- always: not supported by CFSpublic long fileLength(String name) throws IOException
fileLength
in class Directory
name
- the name of the file for which to return the length.IOException
- if the file does not existpublic IndexOutput createOutput(String name, IOContext context) throws IOException
Directory
createOutput
in class Directory
IOException
public void sync(Collection<String> names)
Directory
public Lock makeLock(String name)
makeLock
in class BaseDirectory
name
- the name of the lock fileUnsupportedOperationException
- always: not supported by CFSpublic Directory.IndexInputSlicer createSlicer(String name, IOContext context) throws IOException
Directory
Directory.IndexInputSlicer
for the given file name.
IndexInputSlicer allows other Directory
implementations to
efficiently open one or more sliced IndexInput
instances from a
single file handle. The underlying file handle is kept open until the
Directory.IndexInputSlicer
is closed.
Throws FileNotFoundException
or NoSuchFileException
if the file does not exist.
createSlicer
in class Directory
IOException
- if an IOException
occursCopyright © 2000-2014 Apache Software Foundation. All Rights Reserved.