class ReclassificationPreparationLoadRequestHandler extends ActionHandler {

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

        try {

            // Load request from workspace
            JsonNode reclassificationDslJson = loadReclassificationRequestJsonFromWorkspace(handler);

            // Parse DSL
            ParsedReclassificationDslRequest parsedReclassificationDslRequest =
                parseReclassificationDslRequest(reclassificationDslJson);

            // Sanity checks for DSL query
            checkMaxRequestCount(parsedReclassificationDslRequest);

            // Check parent unit existence & accessibility through access contract
            AccessContractModel accessContractModel = getAccessContract();
            checkParentAccessContract(parsedReclassificationDslRequest, accessContractModel);

            // Select units to update
            ReclassificationOrders reclassificationOrders =
                selectReclassificationOrders(parsedReclassificationDslRequest,
                    accessContractModel);

            // Sanity checks for reclassification orders
            checkMinUnitsToUpdate(reclassificationOrders);
            checkMaxDistinctUnits(reclassificationOrders);
            checkAttachmentAndDetachmentForSameParent(reclassificationOrders);

            // Store request
            storeReclassificationOrders(handler, reclassificationOrders);

        } catch (ProcessingStatusException e) {
            LOGGER.error("Reclassification request loading failed with status [" + e.getStatusCode() + "]", e);
            return buildItemStatus(RECLASSIFICATION_PREPARATION_LOAD_REQUEST, e.getStatusCode(), e.getEventDetails());
        }

        LOGGER.info("Reclassification request loading succeeded");

        return buildItemStatus(RECLASSIFICATION_PREPARATION_LOAD_REQUEST, StatusCode.OK, null);
    }

    public  ReclassificationPreparationLoadRequestHandler();
    @VisibleForTesting  ReclassificationPreparationLoadRequestHandler(AdminManagementClientFactory adminManagementClientFactory,
        MetaDataClientFactory metaDataClientFactory, UnitGraphInfoLoader unitGraphInfoLoader,
        ReclassificationRequestDslParser reclassificationRequestDslParser, int maxBulkThreshold, int maxUnitsThreshold,
        int maxGuildListSizeInLogbookOperation);

}