Interface ObjectDetailsDatabase

    • Method Detail

      • retrieveObjectDetails

        OcflObjectDetails retrieveObjectDetails​(String objectId)
        Retrieves ObjectDetails from the database. If no details can be found, null is returned.
        Parameters:
        objectId - the OCFL object id
        Returns:
        ObjectDetails or null
      • addObjectDetails

        void addObjectDetails​(Inventory inventory,
                              String inventoryDigest,
                              byte[] inventoryBytes)
        Adds ObjectDetails to the database. In the case of a concurrent update, this operation will only fail if the inventory digests are different.
        Parameters:
        inventory - the object's inventory
        inventoryDigest - the digest of the inventory
        inventoryBytes - the serialized inventory bytes
      • updateObjectDetails

        void updateObjectDetails​(Inventory inventory,
                                 String inventoryDigest,
                                 Path inventoryFile,
                                 Runnable runnable)
        Updates existing ObjectDetails in the database. The update is executed within a transaction. Before the transaction is committed, the supplied runnable is executed. The transaction is only committed if the runnable completes without exception.
        Parameters:
        inventory - the object's inventory
        inventoryDigest - the digest of the inventory
        inventoryFile - the path to the inventory on disk
        runnable - the code to execute within the update transaction
      • deleteObjectDetails

        void deleteObjectDetails​(String objectId)
        Removes ObjectDetails from the database.
        Parameters:
        objectId - the OCFL object id
      • deleteAllDetails

        void deleteAllDetails()
        Removes all ObjectDetails from the database