class TaskStatAware implements ExecutorAware {

    protected final Map<Executor, ThreadPoolStatProvider> statProviders = new ConcurrentHashMap<>();

    @Override
    public void register(ExecutorWrapper wrapper) {
        ThreadPoolStatProvider statProvider = wrapper.getThreadPoolStatProvider();
        statProviders.put(wrapper.getExecutor(), statProvider);
        statProviders.put(wrapper.getExecutor().getOriginal(), statProvider);
    }

    @Override
    public void refresh(ExecutorWrapper wrapper, TpExecutorProps props) {<FILL_FUNCTION_BODY>}

    @Override
    public void remove(ExecutorWrapper wrapper) {
        statProviders.remove(wrapper.getExecutor());
        statProviders.remove(wrapper.getExecutor().getOriginal());
    }

    protected void refresh(TpExecutorProps props, ThreadPoolStatProvider statProvider) { }
}

        if (Objects.isNull(statProviders.get(wrapper.getExecutor()))) {
            register(wrapper);
        }
        ThreadPoolStatProvider statProvider = wrapper.getThreadPoolStatProvider();
        refresh(props, statProvider);
    
<no_super_class>