void matchSpec(StatSpec spec, List matchedValues) {
      if (spec.getCombineType() == StatSpec.FILE) {
        // search for previous ComboValue
        for (final Object fileComboValue : fileComboValues) {
          ComboValue v = (ComboValue) fileComboValue;
          if (!spec.statMatches(v.getDescriptor().getName())) {
            continue;
          }
          if (!spec.typeMatches(v.getType().getName())) {
            continue;
          }
          ResourceInst[] resources = v.getResources();
          for (final ResourceInst resource : resources) {
            if (!spec.instanceMatches(resource.getName(), resource.getId())) {
              continue;
            }
            // note: we already know the archive file matches
          }
          matchedValues.add(v);
          return;
        }
        ArrayList l = new ArrayList();
        matchSpec(new RawStatSpec(spec), l);
        if (l.size() != 0) {
          ComboValue cv = new ComboValue(l);
          // save this in file's combo value list
          fileComboValues.add(cv);
          matchedValues.add(cv);
        }
      } else {
        for (int instIdx = 0; instIdx < resourceInstSize; instIdx++) {
          resourceInstTable[instIdx].matchSpec(spec, matchedValues);
        }
      }
    }
Returns true if the specified instance matches this spec. Any instance whose text id and
numeric id do not match this spec will not be selected for loading by this spec.
geode-core/src/main/java/org/apache/geode/internal/statistics/StatArchiveReader.java