SuperTypeGroup (final PsiClass groupClass, final SuperTypeGroup.OwnershipType ownershipType, final Map<Group, SuperTypeGroup> groups) { SuperTypeGroup superTypeGroup = new SuperTypeGroup(groupClass, ownershipType); SuperTypeGroup existing = groups.get(superTypeGroup); if (existing == null) { groups.put(superTypeGroup, superTypeGroup); existing = superTypeGroup; } return existing; }