@Override
  protected void restoreReferences(ReferenceData @NotNull [] referenceData,
                                   GrReferenceElement @NotNull [] refs,
                                   @NotNull Set<? super String> imported) {
    for (int i = 0; i < refs.length; i++) {
      GrReferenceElement reference = refs[i];
      if (reference == null) continue;
      try {
        PsiManager manager = reference.getManager();
        ReferenceData refData = referenceData[i];
        PsiClass refClass = JavaPsiFacade.getInstance(manager.getProject()).findClass(refData.qClassName, reference.getResolveScope());
        if (refClass != null) {
          if (refData.staticMemberName == null) {
            reference.bindToElement(refClass);
            imported.add(refData.qClassName);
          }
          else {
            LOG.assertTrue(reference instanceof GrReferenceExpression);
            PsiMember member = findMember(refData, refClass);
            if (member != null) {
              ((GrReferenceExpression)reference).bindToElementViaStaticImport(member);
              imported.add(StringUtil.getQualifiedName(refData.qClassName, refData.staticMemberName));
            }
          }
        }
      }
      catch (IncorrectOperationException e) {
        LOG.error(e);
      }
    }
  }
@Override
  protected void restoreReferences(ReferenceData @NotNull [] referenceData,
                                   GrReferenceElement @NotNull [] refs,
                                   @NotNull Set<? super String> imported)