public Map<String, List<String>> getAllHeuristicNames() {
    if (_heuristicGroupedNames.isEmpty()) {
      for (Map.Entry<ApplicationType, List<Heuristic>> entry : _typeToHeuristics.entrySet()) {
        ApplicationType type = entry.getKey();
        List<Heuristic> list = entry.getValue();

        List<String> nameList = new ArrayList<String>();
        for (Heuristic heuristic : list) {
          nameList.add(heuristic.getHeuristicConfData().getHeuristicName());
        }

        Collections.sort(nameList);
        _heuristicGroupedNames.put(type.getName(), nameList);
      }
    }

    return _heuristicGroupedNames;
  }
Return the heuristic names available grouped by application type.

@return A map of application type name -> a list of heuristic names
app/com/linkedin/drelephant/ElephantContext.java