Class EmblCDROMRandomAccess

  • Direct Known Subclasses:
    EntryNamRandomAccess

    public abstract class EmblCDROMRandomAccess
    extends java.lang.Object

    EmblCDROMRandomAccess is an abstract class whose concrete subclasses can perform fast lookups in EMBL CD-ROM format index files. As the format of the records varies between file types, subclasses should implement two methods; readRecord(), which should parse the record into an array of objects and getRecordKey() which should retrieve the the field from the parsed record on which the records were sorted in the index. This is used during the binary search in the findRecord() method.

    Implementing readRecord() is easy because it simply means delegating to the supplied RecordParser and calling the appropriate method on it.

    Since:
    1.2
    Author:
    Keith James
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected java.io.RandomAccessFile raIndexFile  
      protected byte[] recBytes  
      protected org.biojava.bio.seq.db.emblcd.RecordParser recParser
      A recParser for implementing readRecord() specific to each concrete subclass.
    • Constructor Summary

      Constructors 
      Constructor Description
      EmblCDROMRandomAccess​(java.io.File indexFile, int headerLength, int recordLength, long recordCount)
      Creates a new EmblCDROMRandomAccess object.
    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      void close()
      close closes the underlying RandomAccessFile.
      java.lang.Object[] findRecord​(java.lang.String identifier)
      findRecord performs a binary search within the file for a record specified by an identifier String.
      java.io.File getFile()
      getFile returns the File wrapped.
      protected abstract java.lang.String getRecordKey​(java.lang.Object[] record)
      getRecordKey returns the field from the record on which the records were sorted in the index.
      protected abstract java.lang.Object[] readRecord()
      readRecord returns an array of objects parsed from a single record.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • raIndexFile

        protected java.io.RandomAccessFile raIndexFile
      • recParser

        protected org.biojava.bio.seq.db.emblcd.RecordParser recParser
        A recParser for implementing readRecord() specific to each concrete subclass.
    • Constructor Detail

      • EmblCDROMRandomAccess

        public EmblCDROMRandomAccess​(java.io.File indexFile,
                                     int headerLength,
                                     int recordLength,
                                     long recordCount)
                              throws java.io.FileNotFoundException
        Creates a new EmblCDROMRandomAccess object.
        Parameters:
        indexFile - a File to wrap.
        headerLength - an int (normally 300 bytes).
        recordLength - an int indicating the length of a single record.
        recordCount - an long indicating the total number of records.
        Throws:
        java.io.FileNotFoundException - if indexFile cannot be found.
    • Method Detail

      • getFile

        public java.io.File getFile()
        getFile returns the File wrapped.
        Returns:
        a File.
      • findRecord

        public java.lang.Object[] findRecord​(java.lang.String identifier)
                                      throws java.io.IOException
        findRecord performs a binary search within the file for a record specified by an identifier String.
        Parameters:
        identifier - a String identifier (sequence ID or accession number).
        Returns:
        an Object [] array containing the record. If there is no such record an empty array is returned.
        Throws:
        java.io.IOException - if an error occurs.
      • close

        public void close()
                   throws java.io.IOException
        close closes the underlying RandomAccessFile.
        Throws:
        java.io.IOException - if an error occurs.
      • readRecord

        protected abstract java.lang.Object[] readRecord()
                                                  throws java.io.IOException
        readRecord returns an array of objects parsed from a single record. Its content will depend on the type of index file. Concrete subclasses must provide an implementation of this method.
        Returns:
        an Object [] array.
        Throws:
        java.io.IOException - if an error occurs.
      • getRecordKey

        protected abstract java.lang.String getRecordKey​(java.lang.Object[] record)
        getRecordKey returns the field from the record on which the records were sorted in the index. (i.e. sequence ID or accession number).
        Returns:
        a String.