class ActionResourceImpl implements ActionResource {

    @Override
    public CompletionStage<Response> execute(final String family, final String type, final String action,
            final String lang, final Map<String, String> params) {
        return virtualActions
                .getAction(family, type, action)
                .map(it -> it.getHandler().apply(params, lang).exceptionally(this::onError))
                .orElseGet(() -> doExecuteLocalAction(family, type, action, lang, params));
    }

}