void (@NotNull Class<?> concreteInterface, SortedSet<? super Class<?>> results) { Collection<DomImplementationClassEP> values = myImplementationClasses.get(concreteInterface.getName()); for (DomImplementationClassEP value : values) { if (value.getInterfaceClass() == concreteInterface) { results.add(value.getImplementationClass()); return; } } for (Class<?> aClass1 : concreteInterface.getInterfaces()) { findImplementationClassDFS(aClass1, results); } }