class AbstractExecutor implements Executor {

    @Override
    public void run(BuildExecutionContext context) {

        if (buildDialog.isBuilding()) {
            return;
        }

        validator.validate(context);

        buildDialog.startBuild();

        start(context);
    }

    public  AbstractExecutor(Caller<BuildService> buildServiceCaller, Event<BuildResults> buildResultsEvent, Event<NotificationEvent> notificationEvent, BuildDialog buildDialog, ContextValidator validator);

}