class DataStore implements DataCacheProvider, RolesProvider {

    public boolean processDomainDeletes() {

        /* first let's retrieve the list domains loaded into
         * our local cache */

        ArrayList<String> localDomainList = new ArrayList<>(getCacheStore().asMap().keySet());
        if (localDomainList.isEmpty()) {
            return true;
        }
        
        /* now retrieve the list of domains from ZMS */
        
        Set<String> zmsDomainList = changeLogStore.getServerDomainList();
        if (zmsDomainList == null) {
            return false;
        }
        
        /* make sure we don't have an empty list response
         * from ZMS that would cause all of our domains
         * to be deleted */
        
        if (!validDomainListResponse(zmsDomainList)) {
            return false;
        }
        
        /* go through each local domain and if it doesn't
         * exist in the list returned from ZMS we're going to
         * delete that domain from our cache and change log store */
        
        for (String domainName : localDomainList) {
            
            if (!zmsDomainList.contains(domainName)) {
                if (LOGGER.isDebugEnabled()) {
                    LOGGER.debug("Removing local domain: " + domainName + ". Domain not in ZMS anymore.");
                }
                deleteDomain(domainName);
            }
        }
        
        return true;
    }

    public  DataStore(ChangeLogStore clogStore, CloudStore cloudStore);

}