All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.jetbrains.pluginverifier.reporting.telemetry.TelemetryAggregator.kt Maven / Gradle / Ivy

Go to download

JetBrains Plugin Verifier Classes for IntelliJ Platform integration with API usage detection and reporting.

There is a newer version: 1.381
Show newest version
package com.jetbrains.pluginverifier.reporting.telemetry

import com.jetbrains.plugin.structure.base.telemetry.MutablePluginTelemetry
import com.jetbrains.plugin.structure.base.telemetry.PluginTelemetry
import com.jetbrains.pluginverifier.repository.PluginInfo
import java.util.concurrent.ConcurrentHashMap

class TelemetryAggregator {

  private val telemetries: MutableMap = ConcurrentHashMap()

  fun reportTelemetry(pluginInfo: PluginInfo, telemetry: PluginTelemetry) {
    telemetries.merge(pluginInfo.coordinate, telemetry) { existing, new ->
      MutablePluginTelemetry()
        .apply {
          merge(existing)
          merge(new)
        }
        .toImmutable()
    }
  }

  operator fun get(id: String, version: String): PluginTelemetry? {
    return telemetries[PluginCoordinate(id, version)]
  }

  operator fun get(plugin: PluginInfo): PluginTelemetry? {
    return telemetries[plugin.coordinate]
  }

  private data class PluginCoordinate(val id: String, val version: String)

  private val PluginInfo.coordinate: PluginCoordinate
    get() = PluginCoordinate(pluginId, version)
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy