private void registerInterestKeys(Map<String, ?> regionKeys, boolean allKey, LocalRegion region,
        CacheClientNotifier ccn, CacheClientProxy proxy, boolean isDurable,
        boolean updatesAsInvalidates, final @NotNull InterestType interestType,
        Set<String> regionsWithInterest)
        throws IOException {

      final boolean isDebugEnabled = logger.isDebugEnabled();

      if (regionKeys != null) {
        for (final Map.Entry<String, ?> e : regionKeys.entrySet()) {
          String regionName = e.getKey();
          if (region.getCache().getRegion(regionName) == null) {
            if (isDebugEnabled) {
              logger.debug("Unable to register interests. Region not found :{}" + regionName);
            }
          } else {
            boolean manageEmptyRegions = false;
            if (emptyRegionMap != null) {
              manageEmptyRegions = emptyRegionMap.containsKey(regionName);
            }
            regionsWithInterest.add(regionName);
            if (allKey) {
              ccn.registerClientInterest(regionName, e.getValue(), proxy.getProxyID(), interestType,
                  isDurable, updatesAsInvalidates, manageEmptyRegions, DataPolicy.EMPTY, false);
            } else if (InterestType.REGULAR_EXPRESSION == interestType) {
              for (final Object o : asSet(e.getValue())) {
                ccn.registerClientInterest(regionName, o, proxy.getProxyID(),
                    interestType, isDurable, updatesAsInvalidates, manageEmptyRegions,
                    DataPolicy.EMPTY, false);
              }
            } else {
              ccn.registerClientInterest(regionName, new ArrayList<>(asSet(e.getValue())),
                  proxy.getProxyID(), isDurable, updatesAsInvalidates, manageEmptyRegions,
                  DataPolicy.EMPTY, false);
            }
          }
        }
      }
    }
Helper method to register the filters.
geode-core/src/main/java/org/apache/geode/internal/cache/InitialImageOperation.java