public void initializeTools(@NotNull List<Tools> outGlobalTools,
                              @NotNull List<Tools> outLocalTools,
                              @NotNull List<? super Tools> outGlobalSimpleTools) {
    List<Tools> usedTools = getUsedTools();
    for (GlobalInspectionContextExtension<?> extension : myExtensions.values()) {
      extension.performPreInitToolsActivities(usedTools, this);
    }
    Map<String, Tools> tools = new HashMap<>(usedTools.size());
    for (Tools currentTools : usedTools) {
      String shortName = currentTools.getShortName();
      tools.put(shortName, currentTools);
      InspectionToolWrapper<?,?> toolWrapper = currentTools.getTool();
      classifyTool(outGlobalTools, outLocalTools, outGlobalSimpleTools, currentTools, toolWrapper);

      for (ScopeToolState state : currentTools.getTools()) {
        state.getTool().initialize(this);
      }

      JobDescriptor[] jobDescriptors = toolWrapper.getJobDescriptors(this);
      for (JobDescriptor jobDescriptor : jobDescriptors) {
        appendJobDescriptor(jobDescriptor);
      }
    }
    appendPairedInspectionsForUnfairTools(outGlobalTools, outGlobalSimpleTools, outLocalTools, tools);
    myTools = Collections.unmodifiableMap(tools);
    for (GlobalInspectionContextExtension<?> extension : myExtensions.values()) {
      extension.performPreRunActivities(outGlobalTools, outLocalTools, this);
    }
  }
public void initializeTools(@NotNull List<Tools> outGlobalTools,
                              @NotNull List<Tools> outLocalTools,
                              @NotNull List<? super Tools> outGlobalSimpleTools)