code: public AnalysisResult.Extensions prepareAnalysis(@Nonnull AnalysisContext analysisContext) {
          Map<ExtensionInstance<ElementFilter>, AnalysisContext> filters = splitByConfiguration(analysisContext,
                  pipelineConfiguration.getFilterTypes(), pipelineConfiguration.getIncludedFilterExtensionIds(),
                  pipelineConfiguration.getExcludedFilterExtensionIds());
          Map<ExtensionInstance<Reporter>, AnalysisContext> reporters = splitByConfiguration(analysisContext,
                  pipelineConfiguration.getReporterTypes(), pipelineConfiguration.getIncludedReporterExtensionIds(),
                  pipelineConfiguration.getExcludedReporterExtensionIds());
          Map<ExtensionInstance<ApiAnalyzer>, AnalysisContext> analyzers = splitByConfiguration(analysisContext,
                  pipelineConfiguration.getApiAnalyzerTypes(), pipelineConfiguration.getIncludedAnalyzerExtensionIds(),
                  pipelineConfiguration.getExcludedAnalyzerExtensionIds());
          Map<ExtensionInstance<DifferenceTransform<?>>, AnalysisContext> transforms = splitByConfiguration(analysisContext,
                  pipelineConfiguration.getTransformTypes(), pipelineConfiguration.getIncludedTransformExtensionIds(),
                  pipelineConfiguration.getExcludedTransformExtensionIds());
  
          return new AnalysisResult.Extensions(analyzers, filters, reporters, transforms);
      }
docs: This instantiates the individual extensions and assigns the configurations to each one of them. The caller of
  this method gains insight on what extensions with what configurations would be executed by the analysis.
  
  <p>Note that the extensions are instantiated but NOT initialized after this call.
  
  @param analysisContext the analysis context containing the "global" configuration of all extensions
  @return the instantiated extensions and their individual configurations