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

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

    public class BioStoreFactory

extends Object

`BioStoreFactory` creates `BioStore` instances. These are directory and file structures which index flat files according to the OBDA specification.

Author:
  Matthew Pocock, Keith James, Greg Cox

Field Summary
`static String` `KEYS` `KEYS` is the key used to identify the secondary namespaces in the OBDA config.dat files.
`static AnnotationType` `META_DATA_TYPE` AnnotationType that all meta-data files should fit.
`static String` `PRIMARY_KEY_NAME` `PRIMARY_KEY_NAME` is the key used to identify the primary namespace in the OBDA config.dat files.
`static String` `SEQUENCE_FORMAT` `SEQUENCE_FORMAT` is the key used to identify the format of the indexed sequence files represented by the store in the OBDA config.dat files.
`static String` `STORE_NAME` `STORE_NAME` is the key used to identify the arbitrary name of the store in the OBDA config.dat files.

Constructor Summary
`BioStoreFactory()` Creates a new `BioStoreFactory`.

Method Summary
`void` `addKey(String keyName, int length)` `addKey` adds a new identifier namespace.
`static int` `calculatePrimRecLen(int idLen)` `calculatePrimRecLen` calculates the byte length of primary namespace records.
`static int` `calculateSecRecLen(int idLen, String primaryKey, Map keys)` `calculateSecRecLen` calculates the byte length of secondary namespace records.
`BioStore` `createBioStore()` `createBioStore` creates a `BioStore` reflecting the current state of the factory and returns a reference to it.
`Set` `getKeys()`
`String` `getPrimaryKey()` `getPrimaryKey` returns the primary identifier namespace.
`LifeScienceIdentifier` `getSequenceFormat()` `getSequenceFormat` returns the current sequence format name.
`File` `getStoreLocation()` `getStoreLocation` returns the directory of the bew index.
`String` `getStoreName()` `getStoreName` returns the name to be given to the new index.
`static File` `makeConfigFile(File storeLoc)` `makeConfigFile` returns a file which represents an OBDA "config.dat" in the specified index directory.
`static File` `makePrimaryKeyFile(File storeLoc, String key)` `makePrimaryKeyFile` returns a file which represents an OBDA "key_<primary namespace>.key" primary key file on the specified index directory.
`static File` `makeSecondaryFile(File storeLoc, String key)` `makeSecondaryFile` returns a file which represents an OBDA "id_<secondary namespace>.index" secondary key file on the specified.
`void` `removeKey(String keyName)` `removeKey` removes the specified key.
`void` `setPrimaryKey(String primaryKey)` `setPrimaryKey` sets the primary identifier namespace.
`void` `setSequenceFormat(LifeScienceIdentifier format)` `setSequenceFormat` sets the sequence format name which will be indicated in the index.
`void` `setStoreLocation(File storeLoc)` `setStoreLocation` sets the directory of the new index.
`void` `setStoreName(String name)` `setStoreName` sets the name to be given to the new index.

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

Field Detail

### STORE_NAME

    public static final String STORE_NAME

  `STORE_NAME` is the key used to identify the arbitrary name of the store in the OBDA config.dat files.

  See Also:
    Constant Field Values

### SEQUENCE_FORMAT

    public static final String SEQUENCE_FORMAT

  `SEQUENCE_FORMAT` is the key used to identify the format of the indexed sequence files represented by the store in the OBDA config.dat files.

  See Also:
    Constant Field Values

### PRIMARY_KEY_NAME

    public static final String PRIMARY_KEY_NAME

  `PRIMARY_KEY_NAME` is the key used to identify the primary namespace in the OBDA config.dat files.

  See Also:
    Constant Field Values

### KEYS

    public static final String KEYS

  `KEYS` is the key used to identify the secondary namespaces in the OBDA config.dat files.

  See Also:
    Constant Field Values

### META_DATA_TYPE

    public static final AnnotationType META_DATA_TYPE

  AnnotationType that all meta-data files should fit.

Constructor Detail

### BioStoreFactory

    public BioStoreFactory()

  Creates a new `BioStoreFactory`.

Method Detail

### setStoreName

    public void setStoreName(String name)

  `setStoreName` sets the name to be given to the new index.

  Parameters:
    `name` - a `String`.

### getStoreName

    public String getStoreName()

  `getStoreName` returns the name to be given to the new index.

  Returns:
    a `String`.

### setStoreLocation

    public void setStoreLocation(File storeLoc)

  `setStoreLocation` sets the directory of the new index.

  Parameters:
    `storeLoc` - a `File`.

### getStoreLocation

    public File getStoreLocation()

  `getStoreLocation` returns the directory of the bew index.

  Returns:
    a `File`.

### setSequenceFormat

    public void setSequenceFormat(LifeScienceIdentifier format)

  `setSequenceFormat` sets the sequence format name which will be indicated in the index.

  Parameters:
    `format` - a `LifeScienceIdentifier` which must be one of those mandated by the OBDA flatfile indexing specification.

### getSequenceFormat

    public LifeScienceIdentifier getSequenceFormat()

  `getSequenceFormat` returns the current sequence format name.

  Returns:
    a `LifeScienceIdentifier`.

### setPrimaryKey

    public void setPrimaryKey(String primaryKey)

  `setPrimaryKey` sets the primary identifier namespace.

  Parameters:
    `primaryKey` - a `String`.

### getPrimaryKey

    public String getPrimaryKey()

  `getPrimaryKey` returns the primary identifier namespace.

  Returns:
    a `String`.

### addKey

    public void addKey(String keyName,
                       int length)

  `addKey` adds a new identifier namespace.

  Parameters:
    `keyName` - a `String`.
    `length` - an `int` indicating the byte length of the key records.

### getKeys

    public Set getKeys()

### removeKey

    public void removeKey(String keyName)

  `removeKey` removes the specified key.

  Parameters:
    `keyName` - a `String`.

### createBioStore

    public BioStore createBioStore()
                            throws BioException

  `createBioStore` creates a `BioStore` reflecting the current state of the factory and returns a reference to it.

  Returns:
    a `BioStore`.
  Throws:
    `BioException` - if an error occurs.

### makeConfigFile

    public static File makeConfigFile(File storeLoc)
                               throws IOException

  `makeConfigFile` returns a file which represents an OBDA "config.dat" in the specified index directory.

  Parameters:
    `storeLoc` - a `File` indicating the index directory.
  Returns:
    a `File` representing "config.dat".
  Throws:
    `IOException` - if an error occurs.

### makePrimaryKeyFile

    public static File makePrimaryKeyFile(File storeLoc,
                                          String key)
                                   throws IOException

  `makePrimaryKeyFile` returns a file which represents an OBDA "key_<primary namespace>.key" primary key file on the specified index directory.

  Parameters:
    `storeLoc` - a `File` indicating the parent path.
    `key` - a `String` primary key namespace.
  Returns:
    a `File` representing a "key_<primary namespace>.key".
  Throws:
    `IOException` - if an error occurs.

### makeSecondaryFile

    public static File makeSecondaryFile(File storeLoc,
                                         String key)
                                  throws IOException

  `makeSecondaryFile` returns a file which represents an OBDA "id_<secondary namespace>.index" secondary key file on the specified.

  Parameters:
    `storeLoc` - a `File` indicating the parent path.
    `key` - a `String` secondary key namespace.
  Returns:
    a `File` representing an "id_<secondary namespace>.index" file.
  Throws:
    `IOException` - if an error occurs.

### calculatePrimRecLen

    public static int calculatePrimRecLen(int idLen)

  `calculatePrimRecLen` calculates the byte length of primary namespace records.

  Parameters:
    `idLen` - an `int` the number of bytes required to hold the primary namespace ID.
  Returns:
    an `int` record length in bytes.

### calculateSecRecLen

    public static int calculateSecRecLen(int idLen,
                                         String primaryKey,
                                         Map keys)

  `calculateSecRecLen` calculates the byte length of secondary namespace records.

  Parameters:
    `idLen` - an `int` the number of bytes required to hold the secondary namespace ID.
    `primaryKey` - a `String` the primary namespace ID.
    `keys` - a `Map` of secondary keys to their byte lengths.
  Returns:
    an `int` record length in bytes.