Package org.fcrepo.kernel.api
Interface ContainmentIndex
-
- All Known Implementing Classes:
ContainmentIndexImpl
,ContainmentIndexMetrics
public interface ContainmentIndex
An interface for retrieving resource IDs by their containment relationships.- Since:
- 6.0.0
- Author:
- dbernstein
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description void
addContainedBy(Transaction tx, FedoraId parent, FedoraId child)
Add a contained by relation between the child resource and its parent.void
addContainedBy(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.void
commitTransaction(Transaction tx)
Commit the changes made in the transaction.Instant
containmentLastUpdated(Transaction tx, FedoraId fedoraId)
Find the timestamp of the last child added or deletedString
getContainedBy(Transaction tx, FedoraId resource)
Return the ID of the containing resource for resourceID.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.Stream<String>
getContains(Transaction tx, FedoraId fedoraId)
Return a stream of fedora identifiers contained by the specified fedora resource for the current state of the repository.Stream<String>
getContainsDeleted(Transaction tx, FedoraId fedoraId)
Return a stream of fedora identifiers contained by the specified fedora resource that have deleted relationships.boolean
hasResourcesStartingWith(Transaction tx, FedoraId fedoraId)
Find whether there are any resources that starts with the ID provided.void
purgeResource(Transaction tx, FedoraId resource)
Remove all relationships to the specified resource.void
removeContainedBy(Transaction tx, FedoraId parent, FedoraId child)
Mark a contained by relation between the child resource and its parent as deleted.void
removeResource(Transaction tx, FedoraId resource)
Mark all relationships to the specified resource as deleted.void
reset()
Truncates the containment index.boolean
resourceExists(Transaction tx, FedoraId fedoraId, boolean includeDeleted)
Check if the resourceID exists in the containment index.void
rollbackTransaction(Transaction tx)
Rollback the containment index changes in the transaction.
-
-
-
Method Detail
-
getContains
Stream<String> getContains(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 transactionfedoraId
- The ID of the containing fedora resource- Returns:
- A stream of contained identifiers
-
getContainsDeleted
Stream<String> getContainsDeleted(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 transactionfedoraId
- 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 transactionresource
- 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 transactionfedoraId
- 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 transactionfedoraId
- 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
-
-