org.apache.lucene.store.je
Class JEDirectory

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

public class JEDirectory
extends org.apache.lucene.store.Directory

Port of Andi Vajda's DbDirectory to to Java Edition of Berkeley Database A JEDirectory is a Berkeley DB JE based implementation of Directory. It uses two Db database handles, one for storing file records and another for storing file data blocks.


Field Summary
protected  com.sleepycat.je.Database blocks
           
protected  com.sleepycat.je.Database files
           
protected  int flags
           
protected  Set<JEIndexOutput> openFiles
           
protected  com.sleepycat.je.Transaction txn
           
 
Fields inherited from class org.apache.lucene.store.Directory
isOpen, lockFactory
 
Constructor Summary
JEDirectory(com.sleepycat.je.Transaction txn, com.sleepycat.je.Database files, com.sleepycat.je.Database blocks)
           
JEDirectory(com.sleepycat.je.Transaction txn, com.sleepycat.je.Database files, com.sleepycat.je.Database blocks, int flags)
          Instantiate a DbDirectory.
 
Method Summary
 void close()
           
 org.apache.lucene.store.IndexOutput createOutput(String name)
           
 void deleteFile(String name)
           
 boolean fileExists(String name)
           
 long fileLength(String name)
           
 long fileModified(String name)
           
 void flush()
          Flush the currently open files.
 String[] listAll()
           
 org.apache.lucene.store.Lock makeLock(String name)
           
 org.apache.lucene.store.IndexInput openInput(String name)
           
 void setTransaction(com.sleepycat.je.Transaction txn)
          Once a transaction handle was committed it is no longer valid.
 void touchFile(String name)
           
 
Methods inherited from class org.apache.lucene.store.Directory
clearLock, copy, copy, ensureOpen, getLockFactory, getLockID, openInput, setLockFactory, sync, sync, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

openFiles

protected Set<JEIndexOutput> openFiles

files

protected com.sleepycat.je.Database files

blocks

protected com.sleepycat.je.Database blocks

txn

protected com.sleepycat.je.Transaction txn

flags

protected int flags
Constructor Detail

JEDirectory

public JEDirectory(com.sleepycat.je.Transaction txn,
                   com.sleepycat.je.Database files,
                   com.sleepycat.je.Database blocks,
                   int flags)
Instantiate a DbDirectory. The same threading rules that apply to Berkeley DB handles apply to instances of DbDirectory.

Parameters:
txn - a transaction handle that is going to be used for all db operations done by this instance. This parameter may be null.
files - a db handle to store file records.
blocks - a db handle to store file data blocks.
flags - flags used for db read operations.

JEDirectory

public JEDirectory(com.sleepycat.je.Transaction txn,
                   com.sleepycat.je.Database files,
                   com.sleepycat.je.Database blocks)
Method Detail

close

public void close()
           throws IOException
Specified by:
close in interface Closeable
Specified by:
close in class org.apache.lucene.store.Directory
Throws:
IOException

flush

public void flush()
           throws IOException
Flush the currently open files. After they have been flushed it is safe to commit the transaction without closing this DbDirectory instance first.

Throws:
IOException
See Also:
setTransaction(com.sleepycat.je.Transaction)

createOutput

public org.apache.lucene.store.IndexOutput createOutput(String name)
                                                 throws IOException
Specified by:
createOutput in class org.apache.lucene.store.Directory
Throws:
IOException

deleteFile

public void deleteFile(String name)
                throws IOException
Specified by:
deleteFile in class org.apache.lucene.store.Directory
Throws:
IOException

fileExists

public boolean fileExists(String name)
                   throws IOException
Specified by:
fileExists in class org.apache.lucene.store.Directory
Throws:
IOException

fileLength

public long fileLength(String name)
                throws IOException
Specified by:
fileLength in class org.apache.lucene.store.Directory
Throws:
IOException

fileModified

public long fileModified(String name)
                  throws IOException
Specified by:
fileModified in class org.apache.lucene.store.Directory
Throws:
IOException

listAll

public String[] listAll()
                 throws IOException
Specified by:
listAll in class org.apache.lucene.store.Directory
Throws:
IOException

openInput

public org.apache.lucene.store.IndexInput openInput(String name)
                                             throws IOException
Specified by:
openInput in class org.apache.lucene.store.Directory
Throws:
IOException

makeLock

public org.apache.lucene.store.Lock makeLock(String name)
Overrides:
makeLock in class org.apache.lucene.store.Directory

touchFile

public void touchFile(String name)
               throws IOException
Specified by:
touchFile in class org.apache.lucene.store.Directory
Throws:
IOException

setTransaction

public void setTransaction(com.sleepycat.je.Transaction txn)
Once a transaction handle was committed it is no longer valid. In order to continue using this JEDirectory instance after a commit, the transaction handle has to be replaced.

Parameters:
txn - the new transaction handle to use


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