public void invoke(@NotNull Project project, Editor editor, PsiFile file) throws IncorrectOperationException { Set<String> classes = new LinkedHashSet<String>(); Set<String> interfaces = new LinkedHashSet<String>(); Set<String> unknownClasses = new LinkedHashSet<String>(); Set<String> unknownInterfaces = new LinkedHashSet<String>(); if (myExtendsClause != null) { collectRefs( myExtendsClause.getReferenceElementsGroovy(), classes, interfaces, myClass.isInterface() ? unknownInterfaces : unknownClasses); myExtendsClause.delete(); } if (myImplementsClause != null) { collectRefs( myImplementsClause.getReferenceElementsGroovy(), classes, interfaces, unknownInterfaces); myImplementsClause.delete(); } if (myClass.isInterface()) { interfaces.addAll(classes); unknownInterfaces.addAll(unknownClasses); addNewClause(interfaces, unknownInterfaces, project, true); } else { addNewClause(classes, unknownClasses, project, true); addNewClause(interfaces, unknownInterfaces, project, false); } }