Class DataStore

  • All Implemented Interfaces:
    Closeable, AutoCloseable

    public class DataStore
    extends Object
    implements Closeable
    Class that provides indexed storage and retrieval of arbitrary length data.
    Author:
    Arjohn Kampman
    • Method Detail

      • getData

        public byte[] getData​(int id)
                       throws IOException
        Gets the value for the specified ID.
        Parameters:
        id - A value ID, should be larger than 0.
        Returns:
        The value for the ID, or null if no such value could be found.
        Throws:
        IOException - If an I/O error occurred.
      • getID

        public int getID​(byte[] queryData)
                  throws IOException
        Gets the ID for the specified value.
        Parameters:
        queryData - The value to get the ID for, must not be null.
        Returns:
        The ID for the specified value, or -1 if no such ID could be found.
        Throws:
        IOException - If an I/O error occurred.
      • getMaxID

        public int getMaxID()
                     throws IOException
        Returns the maximum value-ID that is in use.
        Returns:
        The largest ID, or 0 if the store does not contain any values.
        Throws:
        IOException - If an I/O error occurs.
      • storeData

        public int storeData​(byte[] data)
                      throws IOException
        Stores the supplied value and returns the ID that has been assigned to it. In case the data to store is already present, the ID of this existing data is returned.
        Parameters:
        data - The data to store, must not be null.
        Returns:
        The ID that has been assigned to the value.
        Throws:
        IOException - If an I/O error occurred.
      • sync

        public void sync()
                  throws IOException
        Synchronizes any recent changes to the data to disk.
        Throws:
        IOException - If an I/O error occurred.
      • clear

        public void clear()
                   throws IOException
        Removes all values from the DataStore.
        Throws:
        IOException - If an I/O error occurred.
      • close

        public void close()
                   throws IOException
        Closes the DataStore, releasing any file references, etc. In case a transaction is currently open, it will be rolled back. Once closed, the DataStore can no longer be used.
        Specified by:
        close in interface AutoCloseable
        Specified by:
        close in interface Closeable
        Throws:
        IOException - If an I/O error occurred.