private static KnownMethodsSet getAllKnownMethods()

in src/main/java/com/intellij/rt/debugger/agent/CollectionBreakpointInstrumentor.java [385:411]


  private static KnownMethodsSet getAllKnownMethods(Class<?> cls, List<Class<?>> supers) {
    String internalClsName = getInternalClsName(cls);
    boolean fairCheckIsNecessary = !internalClsName.startsWith("java/util") ||
                                   internalClsName.split("/").length != 3;

    if (fairCheckIsNecessary) {
      return new KnownMethodsSet();
    }

    int index = supers.indexOf(cls);
    if (index == -1) {
      return new KnownMethodsSet();
    }

    KnownMethodsSet result = new KnownMethodsSet();

    List<Class<?>> clsAndItsSupers = supers.subList(index, supers.size());

    for (Class<?> superCls : clsAndItsSupers) {
      KnownMethodsSet knownMethods = myKnownMethods.get(getInternalClsName(superCls));
      if (knownMethods != null) {
        result.addAll(knownMethods);
      }
    }

    return result;
  }