Interface ContainmentIndex

    • Method Detail

      • getContains

        Stream<StringgetContains​(Transaction tx,
                                   FedoraId fedoraId)
        Return a stream of fedora identifiers contained by the specified fedora resource for the current state of the repository.
        Parameters:
        tx - The transaction, or null if no transaction
        fedoraId - The ID of the containing fedora resource
        Returns:
        A stream of contained identifiers
      • getContainsDeleted

        Stream<StringgetContainsDeleted​(Transaction tx,
                                          FedoraId fedoraId)
        Return a stream of fedora identifiers contained by the specified fedora resource that have deleted relationships.
        Parameters:
        tx - The transaction, or null if no transaction
        fedoraId - The ID of the containing fedora resource
        Returns:
        A stream of contained identifiers
      • getContainedBy

        String getContainedBy​(Transaction tx,
                              FedoraId resource)
        Return the ID of the containing resource for resourceID.
        Parameters:
        tx - The transaction, or null if no transaction
        resource - The FedoraId of the resource to find the containing resource for.
        Returns:
        The id of the containing resource or null if none found.
      • removeContainedBy

        void removeContainedBy​(@Nonnull
                               Transaction tx,
                               FedoraId parent,
                               FedoraId child)
        Mark a contained by relation between the child resource and its parent as deleted.
        Parameters:
        tx - The transaction.
        parent - The containing resource fedoraID.
        child - The contained resource fedoraID.
      • removeResource

        void removeResource​(@Nonnull
                            Transaction tx,
                            FedoraId resource)
        Mark all relationships to the specified resource as deleted.
        Parameters:
        tx - The transaction.
        resource - The FedoraId of resource to remove.
      • purgeResource

        void purgeResource​(@Nonnull
                           Transaction tx,
                           FedoraId resource)
        Remove all relationships to the specified resource.
        Parameters:
        tx - The transaction.
        resource - The FedoraId of resource to remove.
      • addContainedBy

        void addContainedBy​(@Nonnull
                            Transaction tx,
                            FedoraId parent,
                            FedoraId child)
        Add a contained by relation between the child resource and its parent.
        Parameters:
        tx - The transaction.
        parent - The containing resource fedoraID.
        child - The contained resource fedoraID.
      • addContainedBy

        void addContainedBy​(@Nonnull
                            Transaction tx,
                            FedoraId parent,
                            FedoraId child,
                            Instant startTime,
                            Instant endTime)
        Add a contained by relation between the child resource and its parent for a range of time in the past.
        Parameters:
        tx - The transaction.
        parent - The containing resource fedoraID.
        child - The contained resource fedoraID.
        startTime - The start instant of the containment relationship.
        endTime - The end instant of the containment relationship.
      • commitTransaction

        void commitTransaction​(Transaction tx)
        Commit the changes made in the transaction.
        Parameters:
        tx - The transaction.
      • rollbackTransaction

        void rollbackTransaction​(Transaction tx)
        Rollback the containment index changes in the transaction.
        Parameters:
        tx - The transaction.
      • resourceExists

        boolean resourceExists​(Transaction tx,
                               FedoraId fedoraId,
                               boolean includeDeleted)
        Check if the resourceID exists in the containment index. Which should mean it exists.
        Parameters:
        tx - The transaction, or null if no transaction
        fedoraId - The resource's FedoraId.
        includeDeleted - Include deleted resources in the search.
        Returns:
        True if it is in the index.
      • getContainerIdByPath

        FedoraId getContainerIdByPath​(Transaction tx,
                                      FedoraId fedoraId,
                                      boolean checkDeleted)
        Find the ID for the container of the provided resource by iterating up the path until you find a real resource.
        Parameters:
        tx - The transaction, or null if no transaction
        fedoraId - The resource's ID.
        checkDeleted - Whether to include deleted resource (tombstones) in the search.
        Returns:
        The container ID.
      • reset

        void reset()
        Truncates the containment index. This should only be called when rebuilding the index.
      • hasResourcesStartingWith

        boolean hasResourcesStartingWith​(Transaction tx,
                                         FedoraId fedoraId)
        Find whether there are any resources that starts with the ID provided.
        Parameters:
        tx - The transaction, or null if no transaction.
        fedoraId - The ID to use to look for other IDs.
        Returns:
        Are there any matching IDs.
      • containmentLastUpdated

        Instant containmentLastUpdated​(Transaction tx,
                                       FedoraId fedoraId)
        Find the timestamp of the last child added or deleted
        Parameters:
        tx - The transaction, or null if no transaction.
        fedoraId - The ID of the containing resource to check.
        Returns:
        Timestamp of last child added or deleted or null if none