private void registerFilterClassInMap(Object interest, Long clientID, Map<Object, Map> filts) {
    // get instance of the filter
    Class filterClass;
    InterestFilter filter;
    try {
      filterClass = ClassLoadUtils.classFromName((String) interest);
      filter = (InterestFilter) filterClass.newInstance();
    } catch (ClassNotFoundException cnfe) {
      throw new RuntimeException(String.format("Class %s not found in classpath.",
          interest), cnfe);
    } catch (Exception e) {
      throw new RuntimeException(String.format("Class %s could not be instantiated.",
          interest), e);
    }
    Map interestMap = filts.get(clientID);
    if (interestMap == null) {
      interestMap = new CopyOnWriteHashMap();
      filts.put(clientID, interestMap);
    }
    interestMap.put(interest, filter);
  }
Registers interest in the input region name and key

@param inputClientID The identity of the interested client
@param interest The key in which to register interest
@param typeOfInterest the type of interest the client is registering
@param updatesAsInvalidates whether the client just wants invalidations
@return a set of the keys that were registered, which may be null
geode-core/src/main/java/org/apache/geode/internal/cache/FilterProfile.java