class DelayActionProvider implements SceneActionProvider<DelayAction> {

    public static final String PROVIDER = "delay";

    @Override
    public String getProvider() {
        return PROVIDER;
    }

    @Override
    public DelayAction newConfig() {
        return new DelayAction();
    }

    @Override
    public List<String> parseColumns(DelayAction config) {
        return Collections.emptyList();
    }

    @Override
    public Flux<Variable> createVariable(DelayAction config) {
        return Flux.empty();
    }

    @Override
    public void applyRuleNode(DelayAction delay, RuleNodeModel model) {<FILL_FUNCTION_BODY>}
}

        DelayTaskExecutorProvider.DelayTaskExecutorConfig config = new DelayTaskExecutorProvider.DelayTaskExecutorConfig();
        config.setPauseType(DelayTaskExecutorProvider.PauseType.delay);
        config.setTimeout(delay.getTime());
        config.setTimeoutUnits(delay.getUnit().chronoUnit);
        model.setExecutor(DelayTaskExecutorProvider.EXECUTOR);
        model.setConfiguration(FastBeanCopier.copy(config, new HashMap<>()));
    
<no_super_class>