@Override
 public void renderElement(LookupElementPresentation presentation) {
   super.renderElement(presentation);
   if (myHelper != null) {
     myHelper.renderElement(
         presentation,
         getAttribute(FORCE_QUALIFY) != null ? Boolean.TRUE : null,
         getSubstitutor());
   }
 }
  @Override
  public void renderElement(LookupElementPresentation presentation) {
    myClassItem.renderElement(presentation);

    String tailText = StringUtil.notNullize(presentation.getTailText());
    int genericsEnd = tailText.lastIndexOf('>') + 1;

    presentation.clearTail();
    presentation.appendTailText(tailText.substring(0, genericsEnd), false);
    presentation.appendTailText(
        MemberLookupHelper.getMethodParameterString(getObject(), getSubstitutor()), false);
    presentation.appendTailText(tailText.substring(genericsEnd), true);
  }
  private boolean shouldQualify(PsiField field, InsertionContext context) {
    if (myHelper != null && !myHelper.willBeImported()) {
      return true;
    }

    if (getAttribute(FORCE_QUALIFY) != null) {
      return true;
    }

    PsiReference reference = context.getFile().findReferenceAt(context.getStartOffset());
    if (reference instanceof PsiReferenceExpression
        && !((PsiReferenceExpression) reference).isQualified()) {
      final PsiVariable target =
          JavaPsiFacade.getInstance(context.getProject())
              .getResolveHelper()
              .resolveReferencedVariable(field.getName(), (PsiElement) reference);
      return !field
          .getManager()
          .areElementsEquivalent(target, CompletionUtil.getOriginalOrSelf(field));
    }
    return false;
  }
 @Override
 public boolean willBeImported() {
   return myHelper != null && myHelper.willBeImported();
 }
 @Override
 public void setShouldBeImported(boolean shouldImportStatic) {
   assert myHelper != null;
   myHelper.setShouldBeImported(shouldImportStatic);
 }