Class 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
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      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)  
      protected Optional<org.fcrepo.kernel.api.identifiers.FedoraId> findArchivalGroupInAncestry​(org.fcrepo.kernel.api.identifiers.FedoraId fedoraId, OcflPersistentStorageSession session)  
      protected FedoraOcflMapping getMapping​(org.fcrepo.kernel.api.Transaction transaction, org.fcrepo.kernel.api.identifiers.FedoraId resourceId)  
      boolean handle​(org.fcrepo.kernel.api.operations.ResourceOperation operation)
      The method returns true if the operation can be persisted by this persister.
      protected String mapToOcflId​(org.fcrepo.kernel.api.Transaction transaction, org.fcrepo.kernel.api.identifiers.FedoraId fedoraId)
      Maps the Fedora ID to an OCFL ID.
      void persist​(OcflPersistentStorageSession session, org.fcrepo.kernel.api.operations.ResourceOperation operation)
      The persistence handling for the given operation.
      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)
      Persists the RDF using the specified operation and session.
    • 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: Persister
        The persistence handling for the given operation.
        Parameters:
        session - The persistent storage session
        operation - 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.PersistentStorageException
        Persists the RDF using the specified operation and session.
        Parameters:
        objectSession - The object session.
        operation - The operation
        rootId - 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: Persister
        The method returns true if the operation can be persisted by this persister.
        Specified by:
        handle in interface Persister
        Parameters:
        operation - the operation to persist
        Returns:
        true or false
      • 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