private @NotNull ProblemDescriptionsProcessor getProblemDescriptionProcessor(
    @NotNull GlobalInspectionToolWrapper toolWrapper,
    @NotNull Map<String, InspectionToolWrapper<?, ?>> wrappersMap
  ) {
    return new ProblemDescriptionsProcessor() {
      @Override
      public void addProblemElement(@Nullable RefEntity refEntity, CommonProblemDescriptor @NotNull ... commonProblemDescriptors) {
        for (CommonProblemDescriptor problemDescriptor : commonProblemDescriptors) {
          if (!(problemDescriptor instanceof ProblemDescriptor)) {
            continue;
          }
          if (SuppressionUtil.inspectionResultSuppressed(((ProblemDescriptor)problemDescriptor).getPsiElement(), toolWrapper.getTool())) {
            continue;
          }
          ProblemGroup problemGroup = ((ProblemDescriptor)problemDescriptor).getProblemGroup();

          InspectionToolWrapper<?, ?> targetWrapper = problemGroup == null ? toolWrapper : wrappersMap.get(problemGroup.getProblemName());
          if (targetWrapper != null) { // Else it's switched off
            InspectionToolResultExporter toolPresentation = getPresentation(targetWrapper);
            toolPresentation.addProblemElement(refEntity, problemDescriptor);
          }
        }
      }
    };
  }
private @NotNull ProblemDescriptionsProcessor getProblemDescriptionProcessor(
    @NotNull GlobalInspectionToolWrapper toolWrapper,
    @NotNull Map<String, InspectionToolWrapper<?, ?>> wrappersMap
  )