@Override
  protected void performRefactoring(UsageInfo @NotNull [] usages) {
    try {
      for (UsageInfo aUsage : usages) {
        InheritanceToDelegationUsageInfo usage = (InheritanceToDelegationUsageInfo)aUsage;


        if (usage instanceof UnqualifiedNonDelegatedMemberUsageInfo) {
          delegateUsageFromClass(usage.getElement(), ((NonDelegatedMemberUsageInfo)usage).nonDelegatedMember,
                                 usage.getDelegateFieldAccessible());
        }
        else {
          upcastToDelegation(usage.getElement(), usage.getDelegateFieldAccessible());
        }
      }

      myAbstractDelegatedMethods = new HashSet<>();
      addInnerClass();
      addField(usages);
      delegateMethods();
      addImplementingInterfaces();
      updateSealedHierarchy();
    } catch (IncorrectOperationException e) {
      LOG.error(e);
    }
  }
@Override
  protected void performRefactoring(UsageInfo @NotNull [] usages)