@Override
      public boolean process(PsiReference reference) {
        PsiCallExpression call = PsiTreeUtil.getParentOfType(reference.getElement(), PsiCallExpression.class, false);
        if (call == null) return true;
        if (call.getArgumentList() == null) return true;

        PsiFile file = reference.getElement().getContainingFile();
        if ("AllIcons.java".equals(file.getName())) return true;

        PsiClass container = PsiUtil.getTopLevelClass(reference.getElement());
        if (container != null && container.getQualifiedName().startsWith("icons.")) {
          return true;
        }

        for (PsiExpression arg : call.getArgumentList().getExpressions()) {
          Object value;
          if (arg instanceof PsiLiteralExpression) {
            value = ((PsiLiteralExpression)arg).getValue();
          }
          else {
            value = psiFacade.getConstantEvaluationHelper().computeConstantExpression(arg, false);
          }
          processValue(value, call, file);
        }


        return true;
      }
@Override
      public boolean process(PsiReference reference)