public void addCache(GemFireVM systemEntity, RegionSnapshot snap) {
    if (!snap.getName().equals(name)) {
      throw new IllegalArgumentException(
          "All snapshots in a compound snapshot must have the same name");
    }
    // individuals.put(systemEntity, snap);

    RegionAttributes ra = snap.getAttributes();
    if (ra != null) {
      CacheListener listener = ra.getCacheListener();
      if (listener != null) {
        allListeners.add(listener.toString());
      }

      CacheWriter writer = ra.getCacheWriter();
      if (writer != null) {
        allCacheWriters.add(writer.toString());
      }

      CacheLoader loader = ra.getCacheLoader();
      if (loader != null) {
        allCacheLoaders.add(loader);
      }

      allDataPolicies.add(ra.getDataPolicy());
      allRegionTtl.add(ra.getRegionTimeToLive());
      allEntryTtl.add(ra.getEntryTimeToLive());
      allCustomTtl.add(ra.getCustomEntryTimeToLive().toString());
      allRegionIdleTimeout.add(ra.getRegionIdleTimeout());
      allEntryIdleTimeout.add(ra.getEntryIdleTimeout());
      allCustomIdle.add(ra.getCustomEntryIdleTimeout().toString());
      allScopes.add(ra.getScope());
      allLoadFactors.add(ra.getLoadFactor());
      allInitialCaps.add(ra.getInitialCapacity());
      allConcLevels.add(ra.getConcurrencyLevel());
      allStatsEnabled.add(ra.getStatisticsEnabled());
      allUserAttributes.add(snap.getUserAttribute());
      allKeyConstraints.add(ra.getKeyConstraint());
      allValueConstraints.add(ra.getValueConstraint());

      // if (constraintClass == null) {
      // Class clazz = ra.getKeyConstraint();
      // if (clazz != null) {
      // constraintClass = clazz.getName();
      // }
      // }
    }

    long modified = snap.getLastModifiedTime();
    if (modified > 0 && modified > lastModifiedTime) {
      lastModifiedTime = modified;
    }

    long access = snap.getLastAccessTime();
    if (access > 0 && access > lastAccessTime) {
      lastAccessTime = access;
    }

    long hitCount = snap.getNumberOfHits();
    if (hitCount > 0) {
      numHits += hitCount;
    }

    long missCount = snap.getNumberOfMisses();
    if (missCount > 0) {
      numMisses += missCount;
    }

    float hitRatio = snap.getHitRatio();
    if (hitRatio >= 0.00) {
      hitResponders++;
      hitRatioSum += hitRatio;
      this.hitRatio = (float) (hitRatioSum / hitResponders);
    }
  }
Amalgamates a <code>RegionSnapshot</code> into this <code>CompoundRegionSnapshot</code>.

@param systemEntity The member of the distributed system that sent the snapshot
@param snap The snapshot to be amalgamated

@throws IllegalArgumentException If <code>snap</code> is for a <code>Region</code> other than
        the one amalgamated by this snapshot.
geode-core/src/main/java/org/apache/geode/internal/admin/CompoundRegionSnapshot.java