Package edu.wisc.library.ocfl.core.db
Interface ObjectDetailsDatabase
-
- All Known Implementing Classes:
BaseObjectDetailsDatabase,H2ObjectDetailsDatabase,MariaDbObjectDetailsDatabase,PostgresObjectDetailsDatabase
public interface ObjectDetailsDatabaseInterface for interacting with OCFL object details that are stored in a database.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description voidaddObjectDetails(Inventory inventory, String inventoryDigest, byte[] inventoryBytes)Adds ObjectDetails to the database.voiddeleteAllDetails()Removes all ObjectDetails from the databasevoiddeleteObjectDetails(String objectId)Removes ObjectDetails from the database.OcflObjectDetailsretrieveObjectDetails(String objectId)Retrieves ObjectDetails from the database.voidupdateObjectDetails(Inventory inventory, String inventoryDigest, Path inventoryFile, Runnable runnable)Updates existing ObjectDetails in the database.
-
-
-
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 inventoryinventoryDigest- the digest of the inventoryinventoryBytes- 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 inventoryinventoryDigest- the digest of the inventoryinventoryFile- the path to the inventory on diskrunnable- 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
-
-