Class MembershipIndexManager

    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addMembership​(org.fcrepo.kernel.api.Transaction tx, org.fcrepo.kernel.api.identifiers.FedoraId sourceId, org.fcrepo.kernel.api.identifiers.FedoraId proxyId, org.apache.jena.graph.Triple membership, Instant startTime)
      Add new membership property to the index, clearing any delete operations for the property if necessary.
      void addMembership​(org.fcrepo.kernel.api.Transaction tx, org.fcrepo.kernel.api.identifiers.FedoraId sourceId, org.fcrepo.kernel.api.identifiers.FedoraId proxyId, org.apache.jena.graph.Triple membership, Instant startTime, Instant endTime)
      Add new membership property to the index
      void clearIndex()
      Clear all entries from the index
      void commitTransaction​(org.fcrepo.kernel.api.Transaction tx)
      Perform a commit of operations stored in the specified transaction
      void deleteMembershipForProxyAfter​(org.fcrepo.kernel.api.Transaction tx, org.fcrepo.kernel.api.identifiers.FedoraId sourceId, org.fcrepo.kernel.api.identifiers.FedoraId proxyId, Instant afterTime)  
      void deleteMembershipForSourceAfter​(org.fcrepo.kernel.api.Transaction tx, org.fcrepo.kernel.api.identifiers.FedoraId sourceId, Instant afterTime)
      Delete membership entries that are active at or after the given timestamp for the specified source
      void deleteMembershipReferences​(String txId, org.fcrepo.kernel.api.identifiers.FedoraId targetId)
      Clean up any references to the target id, in transactions and outside
      void deleteTransaction​(org.fcrepo.kernel.api.Transaction tx)
      Delete all entries related to a transaction
      void endMembershipForSource​(org.fcrepo.kernel.api.Transaction tx, org.fcrepo.kernel.api.identifiers.FedoraId sourceId, Instant endTime)
      End all membership properties resulting from the specified source container
      void endMembershipFromChild​(org.fcrepo.kernel.api.Transaction tx, org.fcrepo.kernel.api.identifiers.FedoraId sourceId, org.fcrepo.kernel.api.identifiers.FedoraId proxyId, Instant endTime)
      End a membership from the child of a Direct/IndirectContainer, setting an end time if committed, or clearing from the current tx if it was newly added.
      DataSource getDataSource()
      Get the JDBC datastore.
      Instant getLastUpdated​(org.fcrepo.kernel.api.Transaction transaction, org.fcrepo.kernel.api.identifiers.FedoraId subjectId)  
      Stream<org.apache.jena.graph.Triple> getMembership​(org.fcrepo.kernel.api.Transaction tx, org.fcrepo.kernel.api.identifiers.FedoraId subjectId)
      Get a stream of membership triples with
      protected void logMembership()
      Log all membership entries, for debugging usage only
      protected void logOperations()
      Log all membership operations, for debugging usage only
      void setDataSource​(DataSource dataSource)
      Set the JDBC datastore.
      void setUp()  
    • Method Detail

      • setUp

        @PostConstruct
        public void setUp()
      • endMembershipFromChild

        public void endMembershipFromChild​(org.fcrepo.kernel.api.Transaction tx,
                                           org.fcrepo.kernel.api.identifiers.FedoraId sourceId,
                                           org.fcrepo.kernel.api.identifiers.FedoraId proxyId,
                                           Instant endTime)
        End a membership from the child of a Direct/IndirectContainer, setting an end time if committed, or clearing from the current tx if it was newly added.
        Parameters:
        tx - transaction
        sourceId - ID of the direct/indirect container whose membership should be ended
        proxyId - ID of the proxy producing this membership, when applicable
        endTime - the time the resource was deleted, generally its last modified
      • deleteMembershipForProxyAfter

        public void deleteMembershipForProxyAfter​(org.fcrepo.kernel.api.Transaction tx,
                                                  org.fcrepo.kernel.api.identifiers.FedoraId sourceId,
                                                  org.fcrepo.kernel.api.identifiers.FedoraId proxyId,
                                                  Instant afterTime)
      • endMembershipForSource

        public void endMembershipForSource​(org.fcrepo.kernel.api.Transaction tx,
                                           org.fcrepo.kernel.api.identifiers.FedoraId sourceId,
                                           Instant endTime)
        End all membership properties resulting from the specified source container
        Parameters:
        tx - transaction
        sourceId - ID of the direct/indirect container whose membership should be ended
        endTime - the time the resource was deleted, generally its last modified
      • deleteMembershipForSourceAfter

        public void deleteMembershipForSourceAfter​(org.fcrepo.kernel.api.Transaction tx,
                                                   org.fcrepo.kernel.api.identifiers.FedoraId sourceId,
                                                   Instant afterTime)
        Delete membership entries that are active at or after the given timestamp for the specified source
        Parameters:
        tx - transaction
        sourceId - ID of the direct/indirect container
        afterTime - time at or after which membership should be removed
      • deleteMembershipReferences

        public void deleteMembershipReferences​(String txId,
                                               org.fcrepo.kernel.api.identifiers.FedoraId targetId)
        Clean up any references to the target id, in transactions and outside
        Parameters:
        txId - transaction id
        targetId - identifier of the resource to cleanup membership references for
      • addMembership

        public void addMembership​(org.fcrepo.kernel.api.Transaction tx,
                                  org.fcrepo.kernel.api.identifiers.FedoraId sourceId,
                                  org.fcrepo.kernel.api.identifiers.FedoraId proxyId,
                                  org.apache.jena.graph.Triple membership,
                                  Instant startTime)
        Add new membership property to the index, clearing any delete operations for the property if necessary.
        Parameters:
        tx - transaction
        sourceId - ID of the direct/indirect container which produced the membership
        proxyId - ID of the proxy producing this membership, when applicable
        membership - membership triple
        startTime - time the membership triple was added
      • addMembership

        public void addMembership​(org.fcrepo.kernel.api.Transaction tx,
                                  org.fcrepo.kernel.api.identifiers.FedoraId sourceId,
                                  org.fcrepo.kernel.api.identifiers.FedoraId proxyId,
                                  org.apache.jena.graph.Triple membership,
                                  Instant startTime,
                                  Instant endTime)
        Add new membership property to the index
        Parameters:
        tx - transaction
        sourceId - ID of the direct/indirect container which produced the membership
        proxyId - ID of the proxy producing this membership, when applicable
        membership - membership triple
        startTime - time the membership triple was added
        endTime - time the membership triple ends, or never if not provided
      • getMembership

        public Stream<org.apache.jena.graph.Triple> getMembership​(org.fcrepo.kernel.api.Transaction tx,
                                                                  org.fcrepo.kernel.api.identifiers.FedoraId subjectId)
        Get a stream of membership triples with
        Parameters:
        tx - transaction from which membership will be retrieved, or null for no transaction
        subjectId - ID of the subject
        Returns:
        Stream of membership triples
      • getLastUpdated

        public Instant getLastUpdated​(org.fcrepo.kernel.api.Transaction transaction,
                                      org.fcrepo.kernel.api.identifiers.FedoraId subjectId)
      • commitTransaction

        public void commitTransaction​(org.fcrepo.kernel.api.Transaction tx)
        Perform a commit of operations stored in the specified transaction
        Parameters:
        tx - transaction
      • deleteTransaction

        @Transactional(propagation=NOT_SUPPORTED)
        public void deleteTransaction​(org.fcrepo.kernel.api.Transaction tx)
        Delete all entries related to a transaction
        Parameters:
        tx - transaction
      • clearIndex

        public void clearIndex()
        Clear all entries from the index
      • logMembership

        protected void logMembership()
        Log all membership entries, for debugging usage only
      • logOperations

        protected void logOperations()
        Log all membership operations, for debugging usage only
      • setDataSource

        public void setDataSource​(DataSource dataSource)
        Set the JDBC datastore.
        Parameters:
        dataSource - the dataStore.