Package org.fcrepo.persistence.ocfl.impl
Class DbFedoraToOcflObjectIndex
- java.lang.Object
-
- org.fcrepo.persistence.ocfl.impl.DbFedoraToOcflObjectIndex
-
- All Implemented Interfaces:
FedoraToOcflObjectIndex
@Component("ocflIndexImpl") public class DbFedoraToOcflObjectIndex extends Object implements FedoraToOcflObjectIndex
Maps Fedora IDs to the OCFL IDs of the OCFL objects the Fedora resource is stored in. This implementation is backed by a relational database.- Author:
- pwinckles
-
-
Constructor Summary
Constructors Constructor Description DbFedoraToOcflObjectIndex(DataSource dataSource)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description FedoraOcflMapping
addMapping(Transaction transaction, FedoraId fedoraId, FedoraId fedoraRootId, String ocflId)
Adds a mapping to the indexvoid
commit(Transaction transaction)
Commit mapping changes for the session.FedoraOcflMapping
getMapping(Transaction transaction, FedoraId fedoraId)
Retrieve identification information for the OCFL object which either contains, or is identified by, the provided fedora resource id.void
removeMapping(Transaction transaction, FedoraId fedoraId)
Removes a mappingvoid
reset()
Remove all persistent state associated with the index.void
rollback(Transaction transaction)
Rollback mapping changes for the session.void
setup()
-
-
-
Constructor Detail
-
DbFedoraToOcflObjectIndex
public DbFedoraToOcflObjectIndex(@Autowired DataSource dataSource)
-
-
Method Detail
-
setup
@PostConstruct public void setup()
-
getMapping
public FedoraOcflMapping getMapping(Transaction transaction, FedoraId fedoraId) throws FedoraOcflMappingNotFoundException
Description copied from interface:FedoraToOcflObjectIndex
Retrieve identification information for the OCFL object which either contains, or is identified by, the provided fedora resource id. In other words the method will find the closest resource that is persisted as an OCFL object and returns its identifiers. If you pass fedora identifier that is not part of an archival group such as "my/fedora/binary/fcr:metadata" the fedora resource returned in the mapping will be "my/fedora/binary". Contrast this with an Archival Group example: if you pass in "my/archival-group/binary/fcr:metadata" the resource returned in the mapping would be "my/archival-group".- Specified by:
getMapping
in interfaceFedoraToOcflObjectIndex
- Parameters:
transaction
- the current session, or null for read-only.fedoraId
- the fedora resource identifier- Returns:
- the mapping
- Throws:
FedoraOcflMappingNotFoundException
- when no mapping exists for the specified identifier.
-
addMapping
public FedoraOcflMapping addMapping(@Nonnull Transaction transaction, FedoraId fedoraId, FedoraId fedoraRootId, String ocflId)
Description copied from interface:FedoraToOcflObjectIndex
Adds a mapping to the index- Specified by:
addMapping
in interfaceFedoraToOcflObjectIndex
- Parameters:
transaction
- the current session.fedoraId
- The fedora resourcefedoraRootId
- The identifier of the root fedora object resourceocflId
- The ocfl object id- Returns:
- The newly created mapping
-
removeMapping
public void removeMapping(@Nonnull Transaction transaction, FedoraId fedoraId)
Description copied from interface:FedoraToOcflObjectIndex
Removes a mapping- Specified by:
removeMapping
in interfaceFedoraToOcflObjectIndex
- Parameters:
transaction
- the current session.fedoraId
- The fedora resource to remove the mapping for
-
reset
public void reset()
Description copied from interface:FedoraToOcflObjectIndex
Remove all persistent state associated with the index.- Specified by:
reset
in interfaceFedoraToOcflObjectIndex
-
commit
public void commit(@Nonnull Transaction transaction)
Description copied from interface:FedoraToOcflObjectIndex
Commit mapping changes for the session.- Specified by:
commit
in interfaceFedoraToOcflObjectIndex
- Parameters:
transaction
- the session to commit.
-
rollback
@Transactional(propagation=NOT_SUPPORTED) public void rollback(@Nonnull Transaction transaction)
Description copied from interface:FedoraToOcflObjectIndex
Rollback mapping changes for the session.- Specified by:
rollback
in interfaceFedoraToOcflObjectIndex
- Parameters:
transaction
- the session to rollback.
-
-