class DiscoveryConfigProcessor implements DisposableBean {
    public void logGetStarted() {<FILL_FUNCTION_BODY>}

    public void logGetFailed(Exception e) {
        String group = getGroup();
        String dataId = getDataId();
        String description = getDescription();
        ConfigType configType = getConfigType();
        boolean isConfigSingleKey = isConfigSingleKey();

        DiscoveryConfigProcessorLogger.logGetFailed(group, dataId, description, configType, isConfigSingleKey, e);
    }

    public void logNotFound() {
        String description = getDescription();
        ConfigType configType = getConfigType();

        DiscoveryConfigProcessorLogger.logNotFound(description, configType);
    }

    public void logSubscribeStarted() {
        String group = getGroup();
        String dataId = getDataId();
        String description = getDescription();
        ConfigType configType = getConfigType();
        boolean isConfigSingleKey = isConfigSingleKey();

        DiscoveryConfigProcessorLogger.logSubscribeStarted(group, dataId, description, configType, isConfigSingleKey);
    }

    public void logSubscribeFailed(Exception e) {
        String group = getGroup();
        String dataId = getDataId();
        String description = getDescription();
        ConfigType configType = getConfigType();
        boolean isConfigSingleKey = isConfigSingleKey();

        DiscoveryConfigProcessorLogger.logSubscribeFailed(group, dataId, description, configType, isConfigSingleKey, e);
    }

    public void logUnsubscribeStarted() {
        String group = getGroup();
        String dataId = getDataId();
        String description = getDescription();
        ConfigType configType = getConfigType();
        boolean isConfigSingleKey = isConfigSingleKey();

        DiscoveryConfigProcessorLogger.logUnsubscribeStarted(group, dataId, description, configType, isConfigSingleKey);
    }

    public void logUnsubscribeFailed(Exception e) {
        String group = getGroup();
        String dataId = getDataId();
        String description = getDescription();
        ConfigType configType = getConfigType();
        boolean isConfigSingleKey = isConfigSingleKey();

        DiscoveryConfigProcessorLogger.logUnsubscribeFailed(group, dataId, description, configType, isConfigSingleKey, e);
    }

    public void logCallbackFailed(Exception e) {
        String description = getDescription();

        DiscoveryConfigProcessorLogger.logCallbackFailed(description, e);
    }

    public boolean isConfigSingleKey() {
        ConfigType configType = getConfigType();

        return ConfigType.isSingleKey(configType);
    }

    public void beforeInitialization() {

    }

    public void afterInitialization() {

    }

    public abstract ConfigType getConfigType();

    public abstract String getGroup();

    public abstract String getDataId();

    public abstract String getDescription();

    public abstract void callbackConfig(String config);
}

        String group = getGroup();
        String dataId = getDataId();
        String description = getDescription();
        ConfigType configType = getConfigType();
        boolean isConfigSingleKey = isConfigSingleKey();

        DiscoveryConfigProcessorLogger.logGetStarted(group, dataId, description, configType, isConfigSingleKey);
    
<no_super_class>