class MustBeRelocatedSelfManagedTaskCollectorStep {

    public Map<String, TaskRelocationPlan> collectTasksThatMustBeRelocated() {
        Stopwatch stopwatch = Stopwatch.createStarted();
        try {
            Map<String, TaskRelocationPlan> result = buildRelocationPlans();
            metrics.onSuccess(result.size(), stopwatch.elapsed(TimeUnit.MILLISECONDS));
            logger.debug("Step results: {}", result);
            return result;
        } catch (Exception e) {
            logger.error("Step processing error", e);
            metrics.onError(stopwatch.elapsed(TimeUnit.MILLISECONDS));
            throw e;
        }
    }

    public  MustBeRelocatedSelfManagedTaskCollectorStep(NodeDataResolver nodeDataResolver,
                                                       ReadOnlyJobOperations jobOperations,
                                                       TitusRuntime titusRuntime);

}