java.lang.Object
org.eclipse.rdf4j.sail.nativerdf.datastore.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
  • Constructor Summary

    Constructors
    Constructor
    Description
    DataStore(File dataDir, String filePrefix)
     
    DataStore(File dataDir, String filePrefix, boolean forceSync)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    Removes all values from the DataStore.
    void
    Closes the DataStore, releasing any file references, etc.
    byte[]
    getData(int id)
    Gets the value for the specified ID.
    int
    getID(byte[] queryData)
    Gets the ID for the specified value.
    int
    Returns the maximum value-ID that is in use.
    static void
    main(String[] args)
     
    int
    storeData(byte[] data)
    Stores the supplied value and returns the ID that has been assigned to it.
    void
    Synchronizes any recent changes to the data to disk.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

  • Method Details

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

      public static void main(String[] args) throws Exception
      Throws:
      Exception