class ComputeInheritedRuleProgenyIdentifierPlugin extends ActionHandler {

    @Override
    public List<ItemStatus> executeList(WorkerParameters workerParameters, HandlerIO handler)
        throws ProcessingException {
        String processId = handler.getContainerName();

        if (StringUtils.isEmpty(processId)) {
            LOGGER.error("processId null or empty.");
            return buildBulkItemStatus(workerParameters, PLUGIN_NAME, StatusCode.FATAL);
        }

        handler.setCurrentObjectId(workerParameters.getObjectNameList().get(0));
        try (InputStream inputStream = new FileInputStream((File) handler.getInput(0));
            JsonLineGenericIterator<JsonLineModel> lines = new JsonLineGenericIterator<>(inputStream, TYPE_REFERENCE);
            BatchReportClient batchReportClient = batchReportClientFactory.getClient();
            MetaDataClient metaDataClient = metaDataClientFactory.getClient()) {

            Iterator<List<JsonLineModel>> bulkLines = Iterators.partition(lines, bulkSize);
            bulkLines.forEachRemaining(
                unitsToBatch -> findAndSaveUnitsProgeny(metaDataClient, batchReportClient, unitsToBatch, processId));

            batchReportClient.exportUnitsToInvalidate(processId, new ReportExportRequest(UNITS_JSONL_FILE_NAME));

        } catch (IOException | VitamClientInternalException e) {
            throw new ProcessingException(e);
        }

        return buildBulkItemStatus(workerParameters, PLUGIN_NAME, StatusCode.OK);
    }

    public  ComputeInheritedRuleProgenyIdentifierPlugin();
    @VisibleForTesting  ComputeInheritedRuleProgenyIdentifierPlugin(MetaDataClientFactory metaDataClientFactory,
        BatchReportClientFactory batchReportClientFactory, int bulkSize);

}