void (StringBuilder text, PsiClass typeDefinition) { final Collection<PsiClassType> implementsTypes = new LinkedHashSet<>(); Collections.addAll(implementsTypes, typeDefinition.getImplementsListTypes()); if (implementsTypes.isEmpty()) return; if (implementsTypes.size() == 1 && shouldSkipInImplements(typeDefinition, implementsTypes.iterator().next())) return; text.append(typeDefinition.isInterface() ? "extends " : "implements "); for (PsiClassType implementsType : implementsTypes) { if (shouldSkipInImplements(typeDefinition, implementsType)) { continue; } TypeWriter.writeType(text, implementsType, typeDefinition, classNameProvider); text.append(", "); } if (!implementsTypes.isEmpty()) text.delete(text.length() - 2, text.length()); text.append(' '); }