Interface WriteableTransaction

    • Method Detail

      • createTreeIfAbsent

        default void createTreeIfAbsent​(TreeName name)
        Ensures that the tree identified by the provided name exists, creating it if it does not.
        Parameters:
        name - the tree name
        Throws:
        ReadOnlyStorageException - If the tree specified by the name does not exist and cannot be created as a result of the underlying storage being opened in read-only mode.
        See Also:
        Storage.open(AccessMode)
      • deleteTree

        default void deleteTree​(TreeName name)
        Deletes the tree identified by the provided name if it exists. Otherwise, do nothing.
        Parameters:
        name - the tree name
        Throws:
        ReadOnlyStorageException - if the underlying storage has been opened in read-only mode.
        See Also:
        Storage.open(AccessMode)
      • put

        default void put​(TreeName treeName,
                         ByteString key,
                         ByteString value)
        Adds a record with the provided key and value, replacing any existing record having the same key.
        Parameters:
        treeName - the tree name. If the tree does not exist, it will be created.
        key - the key of the new record
        value - the value of the new record
        Throws:
        ReadOnlyStorageException - if the underlying storage has been opened in read-only mode.
        See Also:
        Storage.open(AccessMode)
      • delete

        default boolean delete​(TreeName treeName,
                               ByteString key)
        Deletes the record with the provided key, in the tree whose name is provided.
        Parameters:
        treeName - the tree name. If the tree does not exist, it will be created.
        key - the key of the record to delete
        Returns:
        true if the record could be deleted, false otherwise
        Throws:
        ReadOnlyStorageException - if the underlying storage has been opened in read-only mode.
        See Also:
        Storage.open(AccessMode)