class ConsumerConfig extends AbstractConfig {

    boolean maybeOverrideEnableAutoCommit() {
        Optional<String> groupId = Optional.ofNullable(getString(CommonClientConfigs.GROUP_ID_CONFIG));
        boolean enableAutoCommit = getBoolean(ConsumerConfig.ENABLE_AUTO_COMMIT_CONFIG);
        if (!groupId.isPresent()) { // overwrite in case of default group id where the config is not explicitly provided
            if (!originals().containsKey(ENABLE_AUTO_COMMIT_CONFIG)) {
                enableAutoCommit = false;
            } else if (enableAutoCommit) {
                throw new InvalidConfigurationException(ConsumerConfig.ENABLE_AUTO_COMMIT_CONFIG + " cannot be set to true when default group id (null) is used.");
            }
        }
        return enableAutoCommit;
    }

    public  ConsumerConfig(Properties props);
    public  ConsumerConfig(Map<String, Object> props);
    protected  ConsumerConfig(Map<?, ?> props, boolean doLog);

}