• 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

      Fields 
      Modifier and Type Field Description
      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

      Constructors 
      Constructor Description
      BioStoreFactory()

      Creates a new BioStoreFactory.

    • Constructor Detail

    • 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.
      • 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.
      • 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.