Interface ContainmentIndex


public interface ContainmentIndex
An interface for retrieving resource IDs by their containment relationships.
Since:
6.0.0
Author:
dbernstein
  • Method Details

    • getContains

      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

      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

      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

      Commit the changes made in the transaction.
      Parameters:
      tx - The transaction.
    • rollbackTransaction

      Rollback the containment index changes in the transaction.
      Parameters:
      tx - The transaction.
    • clearAllTransactions

      Clear all transactions in the containment index.
    • 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

      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

      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