override fun reportVerificationResult()

in intellij-plugin-verifier/verifier-intellij/src/main/java/com/jetbrains/pluginverifier/reporting/DirectoryBasedPluginVerificationReportage.kt [121:157]


  override fun reportVerificationResult(pluginVerificationResult: PluginVerificationResult) {
    with(pluginVerificationResult) {
      val verificationTargetDirectory = targetDirectoryProvider(verificationTarget)
      val directory = verificationTargetDirectory
        .resolve("plugins")
        .resolve(createPluginVerificationDirectory(plugin))

      reportVerificationDetails(directory, "verification-verdict.txt", listOf(pluginVerificationResult)) { it.verificationVerdict }

      return when (this) {
        is PluginVerificationResult.Verified -> {
          reportVerificationDetails(directory, "compatibility-warnings.txt", compatibilityWarnings)
          reportVerificationDetails(directory, "compatibility-problems.txt", compatibilityProblems)
          reportVerificationDetails(directory, "dependencies.txt", listOf(dependenciesGraph)) { DependenciesGraphPrettyPrinter(it).prettyPresentation() }
          reportVerificationDetails(directory, "deprecated-usages.txt", deprecatedUsages)
          reportVerificationDetails(directory, "experimental-api-usages.txt", experimentalApiUsages)
          reportVerificationDetails(directory, "internal-api-usages.txt", internalApiUsages)
          reportVerificationDetails(directory, "internal-api-kt-usages.txt", kotlinInternalApiUsages)
          reportVerificationDetails(directory, "override-only-usages.txt", overrideOnlyMethodUsages)
          reportVerificationDetails(directory, "non-extendable-api-usages.txt", nonExtendableApiUsages)
          reportVerificationDetails(directory, "plugin-structure-warnings.txt", pluginStructureWarnings)
          reportVerificationDetails(directory, "telemetry.txt", telemetryAggregator[plugin].withPluginIdAndVersion(this).orEmpty()) { it.toPlainString() }

          val problemIgnoredEvents = ignoredProblems.map { ProblemIgnoredEvent(plugin, verificationTarget, it.key, it.value) }
          problemIgnoredEvents.forEach { allIgnoredProblemsReporter.report(it) }
          IgnoredProblemsReporter(directory, verificationTarget).useReporter(problemIgnoredEvents)
          pluginVerificationReportageResultAggregator.handleVerificationResult(this, verificationTargetDirectory)
        }
        is PluginVerificationResult.InvalidPlugin -> {
          reportVerificationDetails(directory, "invalid-plugin.txt", pluginStructureErrors)
          pluginVerificationReportageResultAggregator.handleVerificationResult(this, verificationTargetDirectory)
        }
        is PluginVerificationResult.NotFound -> Unit
        is PluginVerificationResult.FailedToDownload -> Unit
      }
    }
  }