Xindice API
version 1.2m1

org.apache.xindice.core.filer
Class HashFiler

java.lang.Object
  extended byorg.apache.xindice.core.filer.Paged
      extended byorg.apache.xindice.core.filer.HashFiler
All Implemented Interfaces:
Configurable, DBObject, Filer, Named

public class HashFiler
extends Paged
implements Filer

HashFiler is a Filer implementation based on the Paged class. By extending Paged, HashFiler inherits the ability to maintain Record metadata such as creation and modification time. It also provides quite a bit more flexibility in its ability to retreive blocks of data and allocate Record space.
HashFile has folowing configuration attributes:

Version:
$Revision: 571938 $, $Date: 2007-09-02 06:14:13 -0400 (Sun, 02 Sep 2007) $

Nested Class Summary
protected  class HashFiler.HashPageHeader
          HashPageHeader
 
Nested classes inherited from class org.apache.xindice.core.filer.Paged
Paged.FileHeader, Paged.Page, Paged.PageHeader, Paged.PageKey
 
Field Summary
protected static byte RECORD
          Record page status
 
Fields inherited from class org.apache.xindice.core.filer.Paged
CONFIG_DESCRIPTORS_MAX, CONFIG_KEYSIZE_MAX, CONFIG_PAGECOUNT, CONFIG_PAGESIZE, DELETED, NO_PAGE, OVERFLOW, UNUSED
 
Constructor Summary
HashFiler()
           
 
Method Summary
 Paged.FileHeader createFileHeader()
          createFileHeader must be implemented by a Paged implementation in order to create an appropriate subclass instance of a FileHeader.
 Paged.PageHeader createPageHeader()
          createPageHeader must be implemented by a Paged implementation in order to create an appropriate subclass instance of a PageHeader.
 boolean deleteRecord(Key key)
          deleteRecord removes a Record from the Filer based on the specified Key.
 String getName()
          getName retrieves the contextually important name of the object
 long getRecordCount()
          getRecordCount returns the number of Records in the Filer.
 RecordSet getRecordSet()
          getRecordSet returns a RecordSet object for the current Filer.
 Record readRecord(Key key)
          readRecord returns a Record from the Filer based on the specified Key.
 Record readRecord(Key key, boolean metaOnly)
          readRecord returns a Record from the Filer based on the specified Key containing filer meta information and value.
 void setConfig(Configuration config)
          setConfig sets the configuration information for the Configurable object instance.
 void setLocation(File root, String location)
          setLocation tells the Filer where to store its data.
protected  void unlinkPages(Paged.Page page)
          Mark pages in primary store as 'DELETED', and let Paged handle all overflow pages.
 Record writeRecord(Key key, Value value)
          writeRecord writes a Value to the Filer based on the specified Key.
 
Methods inherited from class org.apache.xindice.core.filer.Paged
checkOpened, close, closeDescriptor, create, deleteArrayInt, deleteArrayLong, deleteArrayShort, deleteArrayValue, drop, exists, flush, getConfig, getDescriptor, getFile, getFileHeader, getFreePage, getPage, insertArrayInt, insertArrayLong, insertArrayShort, insertArrayValue, isOpened, open, putDescriptor, readValue, readValue, setFile, unlinkPages, writeValue, writeValue
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.apache.xindice.core.filer.Filer
flush
 
Methods inherited from interface org.apache.xindice.core.DBObject
close, create, drop, exists, isOpened, open
 
Methods inherited from interface org.apache.xindice.util.Configurable
getConfig
 

Field Detail

RECORD

protected static final byte RECORD
Record page status

See Also:
Constant Field Values
Constructor Detail

HashFiler

public HashFiler()
Method Detail

setLocation

public void setLocation(File root,
                        String location)
Description copied from interface: Filer
setLocation tells the Filer where to store its data.

Specified by:
setLocation in interface Filer
Parameters:
root - The root under which to store data
location - The name to use for storing data

getName

public String getName()
Description copied from interface: Named
getName retrieves the contextually important name of the object

Specified by:
getName in interface Named
Returns:
The object's name

setConfig

public void setConfig(Configuration config)
Description copied from interface: Configurable
setConfig sets the configuration information for the Configurable object instance.

Specified by:
setConfig in interface Configurable
Overrides:
setConfig in class Paged

readRecord

public Record readRecord(Key key)
                  throws DBException
Description copied from interface: Filer
readRecord returns a Record from the Filer based on the specified Key.

Specified by:
readRecord in interface Filer
Parameters:
key - The Record's Key
Returns:
The returned Record
Throws:
DBException

readRecord

public Record readRecord(Key key,
                         boolean metaOnly)
                  throws DBException
Description copied from interface: Filer
readRecord returns a Record from the Filer based on the specified Key containing filer meta information and value.

Specified by:
readRecord in interface Filer
Parameters:
key - The Record's Key
metaOnly - if true, resulting record contains only meta information
Returns:
The returned Record
Throws:
DBException

writeRecord

public Record writeRecord(Key key,
                          Value value)
                   throws DBException
Description copied from interface: Filer
writeRecord writes a Value to the Filer based on the specified Key.

Specified by:
writeRecord in interface Filer
Parameters:
key - The Record's Key
value - The Record's Value
Returns:
Written Record
Throws:
DBException

unlinkPages

protected void unlinkPages(Paged.Page page)
                    throws IOException
Mark pages in primary store as 'DELETED', and let Paged handle all overflow pages.

Overrides:
unlinkPages in class Paged
Parameters:
page - The starting Page to unlink
Throws:
IOException - if an Exception occurs

deleteRecord

public boolean deleteRecord(Key key)
                     throws DBException
Description copied from interface: Filer
deleteRecord removes a Record from the Filer based on the specified Key.

Specified by:
deleteRecord in interface Filer
Parameters:
key - The Record's Key
Returns:
Whether or not the Record was deleted
Throws:
DBException

getRecordCount

public long getRecordCount()
                    throws DBException
Description copied from interface: Filer
getRecordCount returns the number of Records in the Filer.

Specified by:
getRecordCount in interface Filer
Returns:
The Record count
Throws:
DBException

getRecordSet

public RecordSet getRecordSet()
                       throws DBException
Description copied from interface: Filer
getRecordSet returns a RecordSet object for the current Filer.

Specified by:
getRecordSet in interface Filer
Returns:
The Filer Enumerator
Throws:
DBException

createFileHeader

public Paged.FileHeader createFileHeader()
Description copied from class: Paged
createFileHeader must be implemented by a Paged implementation in order to create an appropriate subclass instance of a FileHeader.

Specified by:
createFileHeader in class Paged
Returns:
a new FileHeader

createPageHeader

public Paged.PageHeader createPageHeader()
Description copied from class: Paged
createPageHeader must be implemented by a Paged implementation in order to create an appropriate subclass instance of a PageHeader.

Specified by:
createPageHeader in class Paged
Returns:
a new PageHeader

Xindice API
version 1.2m1

Copyright (c) 1999-2007 The Apache Software Foundation. All Rights Reserved.