Package org.eclipse.rdf4j.sail.nativerdf

## Class ValueStore

- java.lang.Object
- - org.eclipse.rdf4j.model.base.AbstractValueFactory
  - - org.eclipse.rdf4j.model.impl.SimpleValueFactory
    - - org.eclipse.rdf4j.sail.nativerdf.ValueStore

- All Implemented Interfaces:
    `ValueFactory`

      @InternalUseOnly
      public class ValueStore
      extends SimpleValueFactory

  File-based indexed storage and retrieval of RDF values. ValueStore maps RDF values to integer IDs and vice-versa.
  Author:
    Arjohn Kampman

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static int` | `NAMESPACE_CACHE_SIZE` | The default namespace cache size.
    `static int` | `NAMESPACE_ID_CACHE_SIZE` | The default namespace id cache size.
    `static int` | `VALUE_CACHE_SIZE` | The default value cache size.
    `static int` | `VALUE_ID_CACHE_SIZE` | The default value id cache size.

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `ValueStore​(File dataDir)` |
    `ValueStore​(File dataDir, boolean forceSync)` |
    `ValueStore​(File dataDir, boolean forceSync, int valueCacheSize, int valueIDCacheSize, int namespaceCacheSize, int namespaceIDCacheSize)` |

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `checkConsistency()` | Checks that every value has exactly one ID.
    `void` | `clear()` | Removes all values from the ValueStore.
    `void` | `close()` | Closes the ValueStore, releasing any file references, etc.
    `NativeBNode` | `createBNode​(String nodeID)` | Creates a new blank node with the given node identifier.
    `NativeIRI` | `createIRI​(String uri)` | Creates a new IRI from the supplied string-representation.
    `NativeIRI` | `createIRI​(String namespace, String localName)` | Creates a new IRI from the supplied namespace and local name.
    `NativeLiteral` | `createLiteral​(String value)` | Creates a new literal with the supplied label.
    `NativeLiteral` | `createLiteral​(String value, String language)` | Creates a new literal with the supplied label and language attribute.
    `NativeLiteral` | `createLiteral​(String value, IRI datatype)` | Creates a new literal with the supplied label and datatype.
    `int` | `getID​(Value value)` | Gets the ID for the specified value.
    `NativeBNode` | `getNativeBNode​(BNode bnode)` | Creates a NativeBNode that is equal to the supplied bnode.
    `NativeLiteral` | `getNativeLiteral​(Literal l)` | Creates an NativeLiteral that is equal to the supplied literal.
    `NativeResource` | `getNativeResource​(Resource resource)` |
    `NativeIRI` | `getNativeURI​(IRI uri)` | Creates a NativeURI that is equal to the supplied URI.
    `NativeValue` | `getNativeValue​(Value value)` |
    `Lock` | `getReadLock()` | Gets a read lock on this value store that can be used to prevent values from being removed while the lock is active.
    `ValueStoreRevision` | `getRevision()` |
    `NativeValue` | `getValue​(int id)` | Gets the value for the specified ID.
    `static void` | `main​(String[] args)` |
    `int` | `storeValue​(Value value)` | Stores the supplied value and returns the ID that has been assigned to it.
    `void` | `sync()` | Synchronizes any changes that are cached in memory to disk.

    - ### Methods inherited from class org.eclipse.rdf4j.model.impl.SimpleValueFactory

      `createBNode, createFPLiteral, createFPLiteral, createIntegerLiteral, createIntegerLiteral, createLiteral, createLiteral, createLiteral, createLiteral, createLiteral, createLiteral, createLiteral, createLiteral, createLiteral, createLiteral, createLiteral, createNumericLiteral, createNumericLiteral, createNumericLiteral, createStatement, createStatement, createTriple, getInstance`

    - ### Methods inherited from class org.eclipse.rdf4j.model.base.AbstractValueFactory

      `createLiteral, createLiteral, createLiteral, createLiteral`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### VALUE_CACHE_SIZE

          public static final int VALUE_CACHE_SIZE

      The default value cache size.
      See Also:
        Constant Field Values

    - #### VALUE_ID_CACHE_SIZE

          public static final int VALUE_ID_CACHE_SIZE

      The default value id cache size.
      See Also:
        Constant Field Values

    - #### NAMESPACE_CACHE_SIZE

          public static final int NAMESPACE_CACHE_SIZE

      The default namespace cache size.
      See Also:
        Constant Field Values

    - #### NAMESPACE_ID_CACHE_SIZE

          public static final int NAMESPACE_ID_CACHE_SIZE

      The default namespace id cache size.
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### ValueStore

          public ValueStore​(File dataDir)
                     throws IOException

      Throws:
        `IOException`

    - #### ValueStore

          public ValueStore​(File dataDir,
                            boolean forceSync)
                     throws IOException

      Throws:
        `IOException`

    - #### ValueStore

          public ValueStore​(File dataDir,
                            boolean forceSync,
                            int valueCacheSize,
                            int valueIDCacheSize,
                            int namespaceCacheSize,
                            int namespaceIDCacheSize)
                     throws IOException

      Throws:
        `IOException`

  - ### Method Detail

    - #### getRevision

          public ValueStoreRevision getRevision()

    - #### getReadLock

          public Lock getReadLock()
                           throws InterruptedException

      Gets a read lock on this value store that can be used to prevent values from being removed while the lock is active.
      Throws:
        `InterruptedException`

    - #### getValue

          public NativeValue getValue​(int id)
                               throws IOException

      Gets the value for the specified ID.
      Parameters:
        `id` - A value ID.
      Returns:
        The value for the ID, or null no such value could be found.
      Throws:
        `IOException` - If an I/O error occurred.

    - #### getID

          public int getID​(Value value)
                    throws IOException

      Gets the ID for the specified value.
      Parameters:
        `value` - A value.
      Returns:
        The ID for the specified value, or `NativeValue.UNKNOWN_ID` if no such ID could be found.
      Throws:
        `IOException` - If an I/O error occurred.

    - #### storeValue

          public int storeValue​(Value value)
                         throws IOException

      Stores the supplied value and returns the ID that has been assigned to it. In case the value was already present, the value will not be stored again and the ID of the existing value is returned.
      Parameters:
        `value` - The Value to store.
      Returns:
        The ID that has been assigned to the value.
      Throws:
        `IOException` - If an I/O error occurred.

    - #### clear

          public void clear()
                     throws IOException

      Removes all values from the ValueStore.
      Throws:
        `IOException` - If an I/O error occurred.

    - #### sync

          public void sync()
                    throws IOException

      Synchronizes any changes that are cached in memory to disk.
      Throws:
        `IOException` - If an I/O error occurred.

    - #### close

          public void close()
                     throws IOException

      Closes the ValueStore, releasing any file references, etc. Once closed, the ValueStore can no longer be used.
      Throws:
        `IOException` - If an I/O error occurred.

    - #### checkConsistency

          public void checkConsistency()
                                throws SailException,
                                       IOException

      Checks that every value has exactly one ID.
      Throws:
        `IOException`
        `SailException`

    - #### createIRI

          public NativeIRI createIRI​(String uri)

      Description copied from interface: `ValueFactory`
      Creates a new IRI from the supplied string-representation.
      Specified by:
        `createIRI` in interface `ValueFactory`
      Overrides:
        `createIRI` in class `SimpleValueFactory`
      Parameters:
        `uri` - A string-representation of a IRI.
      Returns:
        An object representing the IRI.

    - #### createIRI

          public NativeIRI createIRI​(String namespace,
                                     String localName)

      Description copied from interface: `ValueFactory`
      Creates a new IRI from the supplied namespace and local name. Calling this method is funtionally equivalent to calling `createIRI(namespace+localName)`, but allows the ValueFactory to reuse supplied namespace and local name strings whenever possible. Note that the values returned by `IRI.getNamespace()` and `IRI.getLocalName()` are not necessarily the same as the values that are supplied to this method.
      Specified by:
        `createIRI` in interface `ValueFactory`
      Overrides:
        `createIRI` in class `SimpleValueFactory`
      Parameters:
        `namespace` - The IRI's namespace.
        `localName` - The IRI's local name.

    - #### createBNode

          public NativeBNode createBNode​(String nodeID)

      Description copied from interface: `ValueFactory`
      Creates a new blank node with the given node identifier.
      Specified by:
        `createBNode` in interface `ValueFactory`
      Overrides:
        `createBNode` in class `SimpleValueFactory`
      Parameters:
        `nodeID` - The blank node identifier.
      Returns:
        An object representing the blank node.

    - #### createLiteral

          public NativeLiteral createLiteral​(String value)

      Description copied from interface: `ValueFactory`
      Creates a new literal with the supplied label. The return value of `Literal.getDatatype()` for the returned object must be `xsd:string`.
      Specified by:
        `createLiteral` in interface `ValueFactory`
      Overrides:
        `createLiteral` in class `SimpleValueFactory`
      Parameters:
        `value` - The literal's label, must not be null.
      Returns:
        A literal for the specified value.

    - #### createLiteral

          public NativeLiteral createLiteral​(String value,
                                             String language)

      Description copied from interface: `ValueFactory`
      Creates a new literal with the supplied label and language attribute. The return value of `Literal.getDatatype()` for the returned object must be `rdf:langString`.
      Specified by:
        `createLiteral` in interface `ValueFactory`
      Overrides:
        `createLiteral` in class `SimpleValueFactory`
      Parameters:
        `value` - The literal's label, must not be null.
        `language` - The literal's language attribute, must not be null.
      Returns:
        A literal for the specified value and language attribute.

    - #### createLiteral

          public NativeLiteral createLiteral​(String value,
                                             IRI datatype)

      Description copied from interface: `ValueFactory`
      Creates a new literal with the supplied label and datatype.
      Specified by:
        `createLiteral` in interface `ValueFactory`
      Overrides:
        `createLiteral` in class `SimpleValueFactory`
      Parameters:
        `value` - The literal's label, must not be null.
        `datatype` - The literal's datatype. If it is null, the datatype `xsd:string` will be assigned to this literal.
      Returns:
        A literal for the specified value and type.

    - #### getNativeValue

          public NativeValue getNativeValue​(Value value)

    - #### getNativeResource

          public NativeResource getNativeResource​(Resource resource)

    - #### getNativeURI

          public NativeIRI getNativeURI​(IRI uri)

      Creates a NativeURI that is equal to the supplied URI. This method returns the supplied URI itself if it is already a NativeURI that has been created by this ValueStore, which prevents unnecessary object creations.
      Returns:
        A NativeURI for the specified URI.

    - #### getNativeBNode

          public NativeBNode getNativeBNode​(BNode bnode)

      Creates a NativeBNode that is equal to the supplied bnode. This method returns the supplied bnode itself if it is already a NativeBNode that has been created by this ValueStore, which prevents unnecessary object creations.
      Returns:
        A NativeBNode for the specified bnode.

    - #### getNativeLiteral

          public NativeLiteral getNativeLiteral​(Literal l)

      Creates an NativeLiteral that is equal to the supplied literal. This method returns the supplied literal itself if it is already a NativeLiteral that has been created by this ValueStore, which prevents unnecessary object creations.
      Returns:
        A NativeLiteral for the specified literal.

    - #### main

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

      Throws:
        `Exception`