Package org.fcrepo.persistence.ocfl.impl
Class UpdateNonRdfSourceHeadersPersister
- java.lang.Object
-
- org.fcrepo.persistence.ocfl.impl.UpdateNonRdfSourceHeadersPersister
-
- All Implemented Interfaces:
Persister
public class UpdateNonRdfSourceHeadersPersister extends Object
This class implements the persistence of the headers for an RDFSource to bring in new system managed properties- Since:
- 6.0.0
- Author:
- mikejritter
-
-
Field Summary
Fields Modifier and Type Field Description protected FedoraToOcflObjectIndexocflIndex
-
Constructor Summary
Constructors Constructor Description UpdateNonRdfSourceHeadersPersister(FedoraToOcflObjectIndex fedoraOcflIndex)Constructor
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected org.fcrepo.persistence.common.ResourceHeadersImplcreateCommonHeaders(org.fcrepo.storage.ocfl.OcflObjectSession session, org.fcrepo.kernel.api.operations.ResourceOperation operation, boolean isResourceRoot, org.fcrepo.kernel.api.identifiers.FedoraId archivalGroupId)protected Optional<org.fcrepo.kernel.api.identifiers.FedoraId>findArchivalGroupInAncestry(org.fcrepo.kernel.api.identifiers.FedoraId fedoraId, OcflPersistentStorageSession session)protected FedoraOcflMappinggetMapping(org.fcrepo.kernel.api.Transaction transaction, org.fcrepo.kernel.api.identifiers.FedoraId resourceId)booleanhandle(org.fcrepo.kernel.api.operations.ResourceOperation operation)The method returns true if the operation can be persisted by this persister.protected StringmapToOcflId(org.fcrepo.kernel.api.Transaction transaction, org.fcrepo.kernel.api.identifiers.FedoraId fedoraId)Maps the Fedora ID to an OCFL ID.voidpersist(OcflPersistentStorageSession session, org.fcrepo.kernel.api.operations.ResourceOperation operation)The persistence handling for the given operation.protected voidpersistRDF(org.fcrepo.storage.ocfl.OcflObjectSession objectSession, org.fcrepo.kernel.api.operations.ResourceOperation operation, org.fcrepo.kernel.api.identifiers.FedoraId rootId, boolean isArchivalPart)Persists the RDF using the specified operation and session.
-
-
-
Field Detail
-
ocflIndex
protected final FedoraToOcflObjectIndex ocflIndex
-
-
Constructor Detail
-
UpdateNonRdfSourceHeadersPersister
public UpdateNonRdfSourceHeadersPersister(FedoraToOcflObjectIndex fedoraOcflIndex)
Constructor- Parameters:
fedoraOcflIndex- the FedoraToOcflObjectIndex
-
-
Method Detail
-
persist
public void persist(OcflPersistentStorageSession session, org.fcrepo.kernel.api.operations.ResourceOperation operation) throws org.fcrepo.persistence.api.exceptions.PersistentStorageException
Description copied from interface:PersisterThe persistence handling for the given operation.- Parameters:
session- The persistent storage sessionoperation- The operation and associated data need to perform the operation.- Throws:
org.fcrepo.persistence.api.exceptions.PersistentStorageException- on failure
-
persistRDF
protected void persistRDF(org.fcrepo.storage.ocfl.OcflObjectSession objectSession, org.fcrepo.kernel.api.operations.ResourceOperation operation, org.fcrepo.kernel.api.identifiers.FedoraId rootId, boolean isArchivalPart) throws org.fcrepo.persistence.api.exceptions.PersistentStorageExceptionPersists the RDF using the specified operation and session.- Parameters:
objectSession- The object session.operation- The operationrootId- The fedora root object identifier tha maps to the OCFL object root.isArchivalPart- indicates if the resource is an AG part resource, ignored on update- Throws:
org.fcrepo.persistence.api.exceptions.PersistentStorageException
-
handle
public boolean handle(org.fcrepo.kernel.api.operations.ResourceOperation operation)
Description copied from interface:PersisterThe method returns true if the operation can be persisted by this persister.
-
getMapping
protected FedoraOcflMapping getMapping(org.fcrepo.kernel.api.Transaction transaction, org.fcrepo.kernel.api.identifiers.FedoraId resourceId) throws org.fcrepo.persistence.api.exceptions.PersistentStorageException
- Parameters:
transaction- The externally generated transaction.resourceId- The fedora resource identifier- Returns:
- The associated mapping
- Throws:
org.fcrepo.persistence.api.exceptions.PersistentStorageException- When no mapping is found.
-
findArchivalGroupInAncestry
protected Optional<org.fcrepo.kernel.api.identifiers.FedoraId> findArchivalGroupInAncestry(org.fcrepo.kernel.api.identifiers.FedoraId fedoraId, OcflPersistentStorageSession session)
-
mapToOcflId
protected String mapToOcflId(org.fcrepo.kernel.api.Transaction transaction, org.fcrepo.kernel.api.identifiers.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 org.fcrepo.persistence.common.ResourceHeadersImpl createCommonHeaders(org.fcrepo.storage.ocfl.OcflObjectSession session, org.fcrepo.kernel.api.operations.ResourceOperation operation, boolean isResourceRoot, org.fcrepo.kernel.api.identifiers.FedoraId archivalGroupId) throws org.fcrepo.persistence.api.exceptions.PersistentStorageException- Throws:
org.fcrepo.persistence.api.exceptions.PersistentStorageException
-
-