Package org.fcrepo.persistence.ocfl.impl
Class CreateVersionPersister
- java.lang.Object
-
- org.fcrepo.persistence.ocfl.impl.CreateVersionPersister
-
- All Implemented Interfaces:
Persister
public class CreateVersionPersister extends Object
Persister for creating a new OCFL version of a resource. The new version is not created until the session is committed.- Author:
- pwinckles
-
-
Field Summary
Fields Modifier and Type Field Description protected FedoraToOcflObjectIndex
ocflIndex
-
Constructor Summary
Constructors Modifier Constructor Description protected
CreateVersionPersister(FedoraToOcflObjectIndex index)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected ResourceHeadersImpl
createCommonHeaders(org.fcrepo.storage.ocfl.OcflObjectSession session, ResourceOperation operation, boolean isResourceRoot, FedoraId archivalGroupId)
protected Optional<FedoraId>
findArchivalGroupInAncestry(FedoraId fedoraId, OcflPersistentStorageSession session)
protected FedoraOcflMapping
getMapping(Transaction transaction, FedoraId resourceId)
boolean
handle(ResourceOperation operation)
The method returns true if the operation can be persisted by this persister.protected String
mapToOcflId(Transaction transaction, FedoraId fedoraId)
Maps the Fedora ID to an OCFL ID.void
persist(OcflPersistentStorageSession session, ResourceOperation operation)
The persistence handling for the given operation.
-
-
-
Field Detail
-
ocflIndex
protected final FedoraToOcflObjectIndex ocflIndex
-
-
Constructor Detail
-
CreateVersionPersister
protected CreateVersionPersister(FedoraToOcflObjectIndex index)
-
-
Method Detail
-
persist
public void persist(OcflPersistentStorageSession session, ResourceOperation operation) throws PersistentStorageException
Description copied from interface:Persister
The persistence handling for the given operation.- Parameters:
session
- The persistent storage sessionoperation
- The operation and associated data need to perform the operation.- Throws:
PersistentStorageException
- on failure
-
handle
public boolean handle(ResourceOperation operation)
Description copied from interface:Persister
The method returns true if the operation can be persisted by this persister.
-
getMapping
protected FedoraOcflMapping getMapping(Transaction transaction, FedoraId resourceId) throws PersistentStorageException
- Parameters:
transaction
- The externally generated transaction.resourceId
- The fedora resource identifier- Returns:
- The associated mapping
- Throws:
PersistentStorageException
- When no mapping is found.
-
findArchivalGroupInAncestry
protected Optional<FedoraId> findArchivalGroupInAncestry(FedoraId fedoraId, OcflPersistentStorageSession session)
-
mapToOcflId
protected String mapToOcflId(Transaction transaction, FedoraId fedoraId)
Maps the Fedora ID to an OCFL ID.- Parameters:
transaction
- The externally generated transaction.fedoraId
- The fedora identifier for the root OCFL object- Returns:
- The OCFL ID
-
createCommonHeaders
protected ResourceHeadersImpl createCommonHeaders(org.fcrepo.storage.ocfl.OcflObjectSession session, ResourceOperation operation, boolean isResourceRoot, FedoraId archivalGroupId) throws PersistentStorageException
- Throws:
PersistentStorageException
-
-