class PreservationPreparationPlugin extends ActionHandler {

    @Override
    public ItemStatus execute(WorkerParameters param, HandlerIO handler) {

        try (MetaDataClient metaDataClient = metaDataClientFactory.getClient()) {
            PreservationRequest preservationRequest = loadPreservationRequest(handler);
            computePreparation(handler, metaDataClient, preservationRequest, param.getRequestId());
            return buildItemStatus(PRESERVATION_PREPARATION, StatusCode.OK,
                createObjectNode().put("query", preservationRequest.getDslQuery().toString()));

        } catch (Exception e) {
            LOGGER.error(String.format("Preservation action failed with status [%s]", KO), e);
            ObjectNode error = createObjectNode().put("error", e.getMessage());
            return buildItemStatus(PRESERVATION_PREPARATION, KO, error);
        }
    }

    public  PreservationPreparationPlugin();
    @VisibleForTesting  PreservationPreparationPlugin(AdminManagementClientFactory adminManagementClientFactory,
        MetaDataClientFactory metaDataClientFactory, WorkspaceClientFactory workspaceClientFactory);

}