## org.biojava.bio.program.indexdb
Class BioStore

    java.lang.Object
      org.biojava.bio.program.indexdb.BioStore

All Implemented Interfaces:
  IndexStore

    public class BioStore

extends Object
implements IndexStore

`BioStore`s represent directory and file structures which index flat files according to the OBDA specification. The preferred method of constructing new instances is to use `BioStoreFactory`.

Author:
  Matthew Pocock, Keith James

Constructor Summary
`BioStore(File location, boolean cache)` Creates a new `BioStore` flatfile index at the specified location with the specified caching behaviour.

Method Summary
`void` `commit()` `commit` writes an index to disk.
`Record` `get(String id)` `get` returns a record specified by a primary identifier.
`List` `get(String id, String namespace)` `get` returns a list of `Record`s by searching against the primary identifiers if the namespace argument is equal to the primary namespace or otherwise by searching the secondary namespaces.
`File` `getLocation()` `getLocation` returns the directory where the index is located.
`Annotation` `getMetaData()` `getMetaData` returns a data structure which represents an OBDA "config.dat" flatfile indexing configuration file.
`String` `getName()` The name of this store or null if the name has not been set.
`List` `getRecordList()` `getRecordList` returns all the `Record`s in the index.
`void` `writeRecord(RAF file, long offset, int length, String id, Map secIDs)` `writeRecord` creates and writes a new `Record`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### BioStore

    public BioStore(File location,
                    boolean cache)
             throws IOException,
                    BioException

  Creates a new `BioStore` flatfile index at the specified location with the specified caching behaviour.

  Parameters:
    `location` - a `File` indicating the index directory.
    `cache` - a `boolean` indicating whether the implementation should cache its state.
  Throws:
    `IOException` - if an error occurs.
    `BioException` - if an error occurs.

Method Detail

### getName

    public String getName()

  The name of this store or null if the name has not been set.

### getLocation

    public File getLocation()

  `getLocation` returns the directory where the index is located.

  Returns:
    a `File`.

### getMetaData

    public Annotation getMetaData()

  Description copied from interface: `IndexStore`
  `getMetaData` returns a data structure which represents an OBDA "config.dat" flatfile indexing configuration file.

  Specified by:
    `getMetaData` in interface `IndexStore`
  Returns:
    an `Annotation`.

### get

    public Record get(String id)

  Description copied from interface: `IndexStore`
  `get` returns a record specified by a primary identifier.

  Specified by:
    `get` in interface `IndexStore`
  Parameters:
    `id` - a `String` primary ID.
  Returns:
    a `Record`.

### get

    public List get(String id,
                    String namespace)
             throws BioException

  Description copied from interface: `IndexStore`
  `get` returns a list of `Record`s by searching against the primary identifiers if the namespace argument is equal to the primary namespace or otherwise by searching the secondary namespaces. The list of Record instances retuned may be empty, but is never null.

  Specified by:
    `get` in interface `IndexStore`
  Parameters:
    `id` - a `String` primary ID.
    `namespace` - a `String`.
  Returns:
    a `List` of `Record`s.
  Throws:
    `BioException` - if an error occurs.

### writeRecord

    public void writeRecord(RAF file,
                            long offset,
                            int length,
                            String id,
                            Map secIDs)

  Description copied from interface: `IndexStore`
  `writeRecord` creates and writes a new `Record`

  Specified by:
    `writeRecord` in interface `IndexStore`
  Parameters:
    `file` - a `RAF` file.
    `offset` - a `long` byte offset.
    `length` - an `int` byte record length.
    `id` - a `String` primary ID.
    `secIDs` - a `Map` of primary ID to a `List` of secondary IDs.

### getRecordList

    public List getRecordList()

  `getRecordList` returns all the `Record`s in the index.

  Returns:
    a `List` of `Record`s.

### commit

    public void commit()
                throws CommitFailure

  `commit` writes an index to disk.

  Throws:
    `CommitFailure` - if an error occurs.