Class LogbookOperationsImpl
- java.lang.Object
-
- fr.gouv.vitam.logbook.operations.core.LogbookOperationsImpl
-
- All Implemented Interfaces:
LogbookOperations
public class LogbookOperationsImpl extends java.lang.Object implements LogbookOperations
Logbook Operations implementation base class
-
-
Constructor Summary
Constructors Constructor Description LogbookOperationsImpl(LogbookDbAccess mongoDbAccess, ElasticsearchLogbookIndexManager indexManager)
LogbookOperationsImpl(LogbookDbAccess mongoDbAccess, WorkspaceClientFactory workspaceClientFactory, StorageClientFactory storageClientFactory, IndexationHelper indexationHelper, ElasticsearchLogbookIndexManager indexManager)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
checkNewEligibleLogbookOperationsSinceLastTraceabilityOperation(java.time.LocalDateTime traceabilityStartDate, java.time.LocalDateTime traceabilityEndDate)
void
create(LogbookOperationParameters parameters)
Create and insert logbook operation entriesvoid
createBulkLogbookOperation(LogbookOperationParameters[] operationArray)
Create one Logbook Operation with already multiple sub-eventsLogbookOperation
findFirstTraceabilityOperationOKAfterDate(java.time.LocalDateTime date)
Find One logbook TraceabilityOperation after a given dateLogbookOperation
findLastLifecycleTraceabilityOperation(java.lang.String eventType, boolean traceabilityWithZipOnly)
Find last OK or WARNING LFC traceability operation (even if no traceability zip has been generated)java.util.Optional<LogbookOperation>
findLastOperationByType(java.lang.String operationType)
FInd last event of last operation by typeLogbookOperation
findLastTraceabilityOperationOK()
Find last successful traceability operationLogbookOperation
getById(java.lang.String idProcess)
LogbookOperation
getById(java.lang.String idProcess, com.fasterxml.jackson.databind.JsonNode query, boolean sliced, boolean crossTenant)
Select logbook operation by the operation's IDReindexationResult
reindex(IndexParameters indexParameters)
Reindex one or more collectionsjava.util.List<LogbookOperation>
selectOperations(com.fasterxml.jackson.databind.JsonNode select)
Select logbook operation entriesjava.util.List<LogbookOperation>
selectOperations(com.fasterxml.jackson.databind.JsonNode select, boolean sliced, boolean crossTenant)
RequestResponseOK<LogbookOperation>
selectOperationsAsRequestResponse(com.fasterxml.jackson.databind.JsonNode select, boolean sliced, boolean crossTenant)
com.mongodb.client.MongoCursor<LogbookOperation>
selectOperationsByLastPersistenceDateInterval(java.time.LocalDateTime startDate, java.time.LocalDateTime endDate)
Select all logbook operations entries persisted within provided intervalSwitchIndexResult
switchIndex(java.lang.String alias, java.lang.String newIndexName)
Switch indexes for one or more collectionsvoid
update(LogbookOperationParameters parameters)
Update and insert logbook operation entriesvoid
updateBulkLogbookOperation(LogbookOperationParameters[] operationArray)
Update one Logbook Operation with multiple sub-events
It adds this new entry within the very same Logbook Operaton entry in "events" array.
-
-
-
Constructor Detail
-
LogbookOperationsImpl
public LogbookOperationsImpl(LogbookDbAccess mongoDbAccess, ElasticsearchLogbookIndexManager indexManager)
-
LogbookOperationsImpl
public LogbookOperationsImpl(LogbookDbAccess mongoDbAccess, WorkspaceClientFactory workspaceClientFactory, StorageClientFactory storageClientFactory, IndexationHelper indexationHelper, ElasticsearchLogbookIndexManager indexManager)
-
-
Method Detail
-
create
public void create(LogbookOperationParameters parameters) throws LogbookAlreadyExistsException, LogbookDatabaseException
Description copied from interface:LogbookOperations
Create and insert logbook operation entries- Specified by:
create
in interfaceLogbookOperations
- Parameters:
parameters
- the entry parameters- Throws:
LogbookAlreadyExistsException
- if an operation with the same eventIdentifierProcess and outcome="Started" already existsLogbookDatabaseException
- if errors occur while connecting or writing to the database
-
update
public void update(LogbookOperationParameters parameters) throws LogbookNotFoundException, LogbookDatabaseException
Description copied from interface:LogbookOperations
Update and insert logbook operation entries- Specified by:
update
in interfaceLogbookOperations
- Parameters:
parameters
- the entry parameters- Throws:
LogbookNotFoundException
- if no operation with the same eventIdentifierProcess existsLogbookDatabaseException
- if errors occur while connecting or writing to the database
-
selectOperations
public java.util.List<LogbookOperation> selectOperations(com.fasterxml.jackson.databind.JsonNode select) throws VitamDBException, LogbookDatabaseException
Description copied from interface:LogbookOperations
Select logbook operation entries- Specified by:
selectOperations
in interfaceLogbookOperations
- Parameters:
select
- the select request in format of JsonNode- Returns:
- List of the logbook operation
- Throws:
VitamDBException
- in case a desynchro is recorded between Mongo and ESLogbookDatabaseException
- if errors occur while connecting or writing to the database
-
selectOperations
public java.util.List<LogbookOperation> selectOperations(com.fasterxml.jackson.databind.JsonNode select, boolean sliced, boolean crossTenant) throws VitamDBException, LogbookDatabaseException
- Specified by:
selectOperations
in interfaceLogbookOperations
- Throws:
VitamDBException
LogbookDatabaseException
-
selectOperationsAsRequestResponse
public RequestResponseOK<LogbookOperation> selectOperationsAsRequestResponse(com.fasterxml.jackson.databind.JsonNode select, boolean sliced, boolean crossTenant) throws VitamDBException, LogbookDatabaseException
- Specified by:
selectOperationsAsRequestResponse
in interfaceLogbookOperations
- Throws:
VitamDBException
LogbookDatabaseException
-
getById
public LogbookOperation getById(java.lang.String idProcess) throws LogbookDatabaseException, LogbookNotFoundException
- Specified by:
getById
in interfaceLogbookOperations
- Throws:
LogbookDatabaseException
LogbookNotFoundException
-
getById
public LogbookOperation getById(java.lang.String idProcess, com.fasterxml.jackson.databind.JsonNode query, boolean sliced, boolean crossTenant) throws LogbookDatabaseException, LogbookNotFoundException
Description copied from interface:LogbookOperations
Select logbook operation by the operation's ID- Specified by:
getById
in interfaceLogbookOperations
- Parameters:
idProcess
- the operation identifier- Returns:
- the logbook operation found by the ID
- Throws:
LogbookDatabaseException
- if errors occur while connecting or writing to the databaseLogbookNotFoundException
- if no operation selected cannot be found
-
createBulkLogbookOperation
public final void createBulkLogbookOperation(LogbookOperationParameters[] operationArray) throws LogbookDatabaseException, LogbookAlreadyExistsException
Description copied from interface:LogbookOperations
Create one Logbook Operation with already multiple sub-events- Specified by:
createBulkLogbookOperation
in interfaceLogbookOperations
- Parameters:
operationArray
- with first and next events to add/update- Throws:
LogbookDatabaseException
- if errors occur while connecting or writing to the databaseLogbookAlreadyExistsException
- if logbook already exists
-
updateBulkLogbookOperation
public final void updateBulkLogbookOperation(LogbookOperationParameters[] operationArray) throws LogbookDatabaseException, LogbookNotFoundException
Description copied from interface:LogbookOperations
Update one Logbook Operation with multiple sub-events
It adds this new entry within the very same Logbook Operaton entry in "events" array.- Specified by:
updateBulkLogbookOperation
in interfaceLogbookOperations
- Parameters:
operationArray
- containing all operations Logbook in order- Throws:
LogbookDatabaseException
- if errors occur while connecting or writing to the databaseLogbookNotFoundException
- if no operation selected cannot be found
-
selectOperationsByLastPersistenceDateInterval
public com.mongodb.client.MongoCursor<LogbookOperation> selectOperationsByLastPersistenceDateInterval(java.time.LocalDateTime startDate, java.time.LocalDateTime endDate) throws LogbookDatabaseException, InvalidCreateOperationException, InvalidParseOperationException
Description copied from interface:LogbookOperations
Select all logbook operations entries persisted within provided interval- Specified by:
selectOperationsByLastPersistenceDateInterval
in interfaceLogbookOperations
- Parameters:
startDate
- the start dateendDate
- the end date- Returns:
- the Closeable MongoCursor of LogbookOperation
- Throws:
LogbookDatabaseException
- if errors occur while connecting or writing to the databaseInvalidCreateOperationException
- if the query could not be createdInvalidParseOperationException
- if invalid parse for selecting the operation
-
findFirstTraceabilityOperationOKAfterDate
public LogbookOperation findFirstTraceabilityOperationOKAfterDate(java.time.LocalDateTime date) throws InvalidCreateOperationException, LogbookDatabaseException
Description copied from interface:LogbookOperations
Find One logbook TraceabilityOperation after a given date- Specified by:
findFirstTraceabilityOperationOKAfterDate
in interfaceLogbookOperations
- Parameters:
date
- the select request in format of JsonNode- Returns:
- the LogbookOperation
- Throws:
InvalidCreateOperationException
- if the query could not be createdLogbookDatabaseException
- if errors occur while connecting or writing to the database
-
findLastTraceabilityOperationOK
public LogbookOperation findLastTraceabilityOperationOK() throws InvalidCreateOperationException, LogbookDatabaseException, InvalidParseOperationException
Description copied from interface:LogbookOperations
Find last successful traceability operation- Specified by:
findLastTraceabilityOperationOK
in interfaceLogbookOperations
- Returns:
- the last valid traceability operation
- Throws:
InvalidCreateOperationException
- if the query could not be createdLogbookDatabaseException
- if errors occur while connecting or writing to the databaseInvalidParseOperationException
- if the query could not be created
-
findLastLifecycleTraceabilityOperation
public LogbookOperation findLastLifecycleTraceabilityOperation(java.lang.String eventType, boolean traceabilityWithZipOnly) throws VitamException
Description copied from interface:LogbookOperations
Find last OK or WARNING LFC traceability operation (even if no traceability zip has been generated)- Specified by:
findLastLifecycleTraceabilityOperation
in interfaceLogbookOperations
- Parameters:
eventType
- Logbook event typetraceabilityWithZipOnly
- if true, skip operation without Zip (empty operations)- Returns:
- the last valid traceability operation
- Throws:
VitamException
- if errors occur while retrieving data
-
findLastOperationByType
public java.util.Optional<LogbookOperation> findLastOperationByType(java.lang.String operationType) throws InvalidCreateOperationException, LogbookDatabaseException, InvalidParseOperationException
Description copied from interface:LogbookOperations
FInd last event of last operation by type- Specified by:
findLastOperationByType
in interfaceLogbookOperations
- Returns:
- Throws:
InvalidCreateOperationException
LogbookDatabaseException
InvalidParseOperationException
-
reindex
public ReindexationResult reindex(IndexParameters indexParameters)
Description copied from interface:LogbookOperations
Reindex one or more collections- Specified by:
reindex
in interfaceLogbookOperations
- Parameters:
indexParameters
- the parameters specifying what to reindex- Returns:
- the reindexation result as a IndexationResult Object
-
switchIndex
public SwitchIndexResult switchIndex(java.lang.String alias, java.lang.String newIndexName) throws DatabaseException
Description copied from interface:LogbookOperations
Switch indexes for one or more collections- Specified by:
switchIndex
in interfaceLogbookOperations
- Parameters:
alias
- the alias namenewIndexName
- the new index to be pointed on- Returns:
- Throws:
DatabaseException
- in case error with database occurs
-
checkNewEligibleLogbookOperationsSinceLastTraceabilityOperation
public boolean checkNewEligibleLogbookOperationsSinceLastTraceabilityOperation(java.time.LocalDateTime traceabilityStartDate, java.time.LocalDateTime traceabilityEndDate) throws LogbookDatabaseException
- Specified by:
checkNewEligibleLogbookOperationsSinceLastTraceabilityOperation
in interfaceLogbookOperations
- Throws:
LogbookDatabaseException
-
-