class PreservationStorageMetadataAndLfc extends StoreMetadataObjectActionHandler {

    @Override
    public List<ItemStatus> executeList(WorkerParameters param, HandlerIO handler)
        throws ProcessingException {
        final ItemStatus itemStatus = new ItemStatus(PRESERVATION_STORAGE_METADATA_LFC);
        WorkflowBatchResults results = (WorkflowBatchResults) handler.getInput(WORKFLOWBATCHRESULTS_IN_MEMORY);
        List<ItemStatus> itemStatuses = new ArrayList<>();
        List<WorkflowBatchResult> workflowBatchResults = results.getWorkflowBatchResults();

        for (WorkflowBatchResult result : workflowBatchResults) {
            List<WorkflowBatchResult.OutputExtra> outputExtras = result.getOutputExtras().stream()
                .filter(WorkflowBatchResult.OutputExtra::isOkAndGenerated)
                .collect(Collectors.toList());

            if (outputExtras.isEmpty()) {
                itemStatuses.add(new ItemStatus(PRESERVATION_STORAGE_METADATA_LFC));
                continue;
            }
            itemStatuses.add(saveDocumentWithLfcInStorage(result.getGotId(), handler, param.getContainerName(), itemStatus));
        }
        return itemStatuses;
    }

    public  PreservationStorageMetadataAndLfc();
    @VisibleForTesting  PreservationStorageMetadataAndLfc(MetaDataClientFactory metaDataClientFactory,
        LogbookLifeCyclesClientFactory logbookLifeCyclesClientFactory, StorageClientFactory storageClientFactory);

}