public void pushDownToClasses(UsageInfo @NotNull [] usages) {
    myDelegate.prepareToPush(myPushDownData);
    final PsiElement sourceClass = myPushDownData.getSourceClass();
    if (mySubClassData != null) {
      final PsiElement subClass = myDelegate.createSubClass(sourceClass, mySubClassData);
      if (subClass != null) {
        myDelegate.pushDownToClass(subClass, myPushDownData);
      }
    }
    else {
      for (UsageInfo usage : usages) {
        final PsiElement element = usage.getElement();
        if (element != null) {
          final PushDownDelegate targetDelegate = PushDownDelegate.findDelegateForTarget(sourceClass, element);
          if (targetDelegate != null) {
            targetDelegate.pushDownToClass(element, myPushDownData);
          }
        }
      }
    }
  }
public void pushDownToClasses(UsageInfo @NotNull [] usages)