org.eclipse.viatra.query.runtime.matchers.scopes

## Interface IStorageBackend

- All Known Implementing Classes:
    SimpleLocalStorageBackend

      public interface IStorageBackend

  An abstract storage backend that instantiates tables and coordinates transactions.

  EXPERIMENTAL. This class or interface has been added as part of a work in progress. There is no guarantee that this API will work or that it will remain the same.

  Since:
    2.1

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `ITableWriterBinary.Table<java.lang.Object,java.lang.Object>` | `createBinaryTable(IInputKey key, ITableContext tableContext, boolean unique)` Creates an index table for a simple source-target bidirectional mapping.
    `ITableWriterUnary.Table<java.lang.Object>` | `createUnaryTable(IInputKey key, ITableContext tableContext, boolean unique)` Creates an index table for a simple value set.
    `void` | `finishTransaction()` Marks the end of a transaction.
    `void` | `startTransaction()` Marks the beginning of a transaction.

- - ### Method Detail

    - #### startTransaction

          void startTransaction()

      Marks the beginning of a transaction. In transaction mode, table updates may be temporarily delayed (`IIndexTable` methods may return stale answers) for better performance.

    - #### finishTransaction

          void finishTransaction()

      Marks the end of a transaction. Any updates delayed during the transaction must now be flushed.

    - #### createUnaryTable

          ITableWriterUnary.Table<java.lang.Object> createUnaryTable(IInputKey key,
                                                                     ITableContext tableContext,
                                                                     boolean unique)

      Creates an index table for a simple value set.
      Parameters:
        `unique` - client promises to only insert a given tuple with multiplicity one

    - #### createBinaryTable

          ITableWriterBinary.Table<java.lang.Object,java.lang.Object> createBinaryTable(IInputKey key,
                                                                                        ITableContext tableContext,
                                                                                        boolean unique)

      Creates an index table for a simple source-target bidirectional mapping.
      Parameters:
        `unique` - client promises to only insert a given tuple with multiplicity one