org.apache.lucene.store
Class CompoundFileDirectory

java.lang.Object
  extended by org.apache.lucene.store.Directory
      extended by org.apache.lucene.store.CompoundFileDirectory
All Implemented Interfaces:
Closeable

public final class CompoundFileDirectory
extends Directory

Class for accessing a compound stream. This class implements a directory, but is limited to only read operations. Directory methods that would normally modify data throw an exception.

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:

Notes:

WARNING: This API is experimental and might change in incompatible ways in the next release.

Nested Class Summary
static class CompoundFileDirectory.FileEntry
          Offset/Length for a slice inside of a compound file
 
Nested classes/interfaces inherited from class org.apache.lucene.store.Directory
Directory.IndexInputSlicer
 
Field Summary
protected  int readBufferSize
           
 
Fields inherited from class org.apache.lucene.store.Directory
isOpen, lockFactory
 
Constructor Summary
CompoundFileDirectory(Directory directory, String fileName, IOContext context, boolean openForWrite)
          Create a new CompoundFileDirectory.
 
Method Summary
 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()
           
 
Methods inherited from class org.apache.lucene.store.Directory
clearLock, copy, ensureOpen, getLockFactory, getLockID, setLockFactory
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

readBufferSize

protected final int readBufferSize
Constructor Detail

CompoundFileDirectory

public CompoundFileDirectory(Directory directory,
                             String fileName,
                             IOContext context,
                             boolean openForWrite)
                      throws IOException
Create a new CompoundFileDirectory.

Throws:
IOException
Method Detail

getDirectory

public Directory getDirectory()

getName

public String getName()

close

public void close()
           throws IOException
Description copied from class: Directory
Closes the store.

Specified by:
close in interface Closeable
Specified by:
close in class Directory
Throws:
IOException

openInput

public IndexInput openInput(String name,
                            IOContext context)
                     throws IOException
Description copied from class: Directory
Returns a stream reading an existing file, with the specified read buffer size. The particular Directory implementation may ignore the buffer size. Currently the only Directory implementations that respect this parameter are FSDirectory and CompoundFileDirectory.

Specified by:
openInput in class Directory
Throws:
IOException

listAll

public String[] listAll()
Returns an array of strings, one for each file in the directory.

Specified by:
listAll in class Directory

fileExists

public boolean fileExists(String name)
Returns true iff a file with the given name exists.

Specified by:
fileExists in class Directory

deleteFile

public void deleteFile(String name)
Not implemented

Specified by:
deleteFile in class Directory
Throws:
UnsupportedOperationException - always: not supported by CFS

renameFile

public void renameFile(String from,
                       String to)
Not implemented

Throws:
UnsupportedOperationException - always: not supported by CFS

fileLength

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

Specified by:
fileLength in class Directory
Parameters:
name - the name of the file for which to return the length.
Throws:
IOException - if the file does not exist

createOutput

public IndexOutput createOutput(String name,
                                IOContext context)
                         throws IOException
Description copied from class: Directory
Creates a new, empty file in the directory with the given name. Returns a stream writing this file.

Specified by:
createOutput in class Directory
Throws:
IOException

sync

public void sync(Collection<String> names)
Description copied from class: Directory
Ensure that any writes to these files are moved to stable storage. Lucene uses this to properly commit changes to the index, to prevent a machine/OS crash from corrupting the index.

NOTE: Clients may call this method for same files over and over again, so some impls might optimize for that. For other impls the operation can be a noop, for various reasons.

Specified by:
sync in class Directory

makeLock

public Lock makeLock(String name)
Not implemented

Overrides:
makeLock in class Directory
Parameters:
name - the name of the lock file
Throws:
UnsupportedOperationException - always: not supported by CFS

createSlicer

public Directory.IndexInputSlicer createSlicer(String name,
                                               IOContext context)
                                        throws IOException
Description copied from class: Directory
Creates an 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.

Overrides:
createSlicer in class Directory
Throws:
IOException - if an IOException occurs

toString

public String toString()
Overrides:
toString in class Directory


Copyright © 2000-2013 Apache Software Foundation. All Rights Reserved.