class SingleGroupAddressHolder extends AddressHolder {

    @Override
    public void updateAllProviders(List<ProviderGroup> providerGroups) {
        ConcurrentHashSet<ProviderInfo> tmpDirectUrl = new ConcurrentHashSet<ProviderInfo>();
        ConcurrentHashSet<ProviderInfo> tmpRegistry = new ConcurrentHashSet<ProviderInfo>();
        for (ProviderGroup providerGroup : providerGroups) {
            if (!ProviderHelper.isEmpty(providerGroup)) {
                if (RpcConstants.ADDRESS_DIRECT_GROUP.equals(providerGroup.getName())) {
                    tmpDirectUrl.addAll(providerGroup.getProviderInfos());
                } else {
                    tmpRegistry.addAll(providerGroup.getProviderInfos());
                }
            }
        }
        wLock.lock();
        try {
            this.directUrlGroup.setProviderInfos(new ArrayList<ProviderInfo>(tmpDirectUrl));
            this.registryGroup.setProviderInfos(new ArrayList<ProviderInfo>(tmpRegistry));
        } finally {
            wLock.unlock();
        }
    }

    protected  SingleGroupAddressHolder(ConsumerBootstrap consumerBootstrap);

}