@Override
  @NotNull
  public PsiElementVisitor buildInternalVisitor(@NotNull final ProblemsHolder holder, boolean isOnTheFly) {
    return UastHintedVisitorAdapter.create(holder.getFile().getLanguage(), new AbstractUastNonRecursiveVisitor() {
      @Override
      public boolean visitCallExpression(@NotNull UCallExpression expression) {
        if (isAwtRgbColorConstructor(expression)) {
          Integer grayValue = getGrayValue(expression);
          if (grayValue != null) {
            PsiElement sourcePsi = expression.getSourcePsi();
            if (sourcePsi != null && DevKitInspectionUtil.isClassAvailable(holder, GRAY_CLASS_NAME)) {
              holder.registerProblem(sourcePsi,
                                     DevKitBundle.message("inspections.use.gray.awt.color.used.name"),
                                     new ConvertToGrayQuickFix(grayValue));
            }
          }
        }
        return super.visitCallExpression(expression);
      }
    }, HINTS);
  }
@Override
  @NotNull
  public PsiElementVisitor buildInternalVisitor(@NotNull final ProblemsHolder holder, boolean isOnTheFly)