docs: public PmiDataInfo[] submoduleMembers(String submoduleName, int level) {
          if (submoduleName == null)
              return listLevelData(level);
  
          ArrayList returnData = new ArrayList();
  
          // special case for category
          boolean inCategory = false;
          if (submoduleName.startsWith("ejb."))
              inCategory = true;
  
          Iterator allData = perfData.values().iterator();
          while (allData.hasNext()) {
              PmiDataInfo info = (PmiDataInfo) allData.next();
              if (inCategory) { // submoduleName is actually the category name for entity/session/mdb
                  if (info.getCategory().equals("all") || isInCategory(submoduleName, info.getCategory()))
                      returnData.add(info);
              } else if (info.getSubmoduleName() != null &&
                         info.getSubmoduleName().equals(submoduleName) && info.getLevel() <= level) {
                  returnData.add(info);
              }
          }
  
          PmiDataInfo[] ret = new PmiDataInfo[returnData.size()];
          for (int i = 0; i < ret.length; i++)
              ret[i] = (PmiDataInfo) returnData.get(i);
          return ret;
      }