mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Cleanup (potential AIOOBE; doc comment; formatting)
This commit is contained in:
+14
-27
@@ -1,67 +1,54 @@
|
||||
// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
// Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
package com.intellij.internal.statistic.eventLog
|
||||
|
||||
import com.intellij.openapi.diagnostic.Logger
|
||||
import com.intellij.openapi.extensions.ExtensionPointName
|
||||
import com.intellij.openapi.extensions.Extensions
|
||||
import java.io.File
|
||||
import java.util.*
|
||||
|
||||
private val LOG = Logger.getInstance("#com.intellij.internal.statistic.eventLog.FeatureUsageEventLogger")
|
||||
private val EP_NAME = ExtensionPointName.create<FeatureUsageEventLoggerProvider>("com.intellij.statistic.eventLog.fusEventLoggerProvider")
|
||||
|
||||
interface FeatureUsageEventLogger {
|
||||
|
||||
fun log(group: FeatureUsageGroup, action: String, isState: Boolean)
|
||||
|
||||
fun log(group: FeatureUsageGroup, action: String, data: Map<String, Any>, isState: Boolean)
|
||||
|
||||
fun getLogFiles(): List<File>
|
||||
|
||||
}
|
||||
|
||||
interface FeatureUsageEventLoggerProvider {
|
||||
fun isEnabled() : Boolean
|
||||
|
||||
fun createLogger() : FeatureUsageEventLogger
|
||||
}
|
||||
|
||||
class FeatureUsageEmptyEventLoggerProvider : FeatureUsageEventLoggerProvider {
|
||||
|
||||
override fun isEnabled() : Boolean {
|
||||
return false
|
||||
}
|
||||
|
||||
override fun createLogger() : FeatureUsageEventLogger {
|
||||
return FeatureUsageEmptyEventLogger()
|
||||
}
|
||||
override fun isEnabled() : Boolean = false
|
||||
override fun createLogger() : FeatureUsageEventLogger = FeatureUsageEmptyEventLogger()
|
||||
}
|
||||
|
||||
class FeatureUsageEmptyEventLogger : FeatureUsageEventLogger {
|
||||
|
||||
override fun log(group: FeatureUsageGroup, action: String, isState: Boolean) {
|
||||
}
|
||||
|
||||
override fun log(group: FeatureUsageGroup, action: String, data: Map<String, Any>, isState: Boolean) {
|
||||
}
|
||||
|
||||
override fun getLogFiles(): List<File> {
|
||||
return emptyList()
|
||||
}
|
||||
override fun log(group: FeatureUsageGroup, action: String, isState: Boolean) = Unit
|
||||
override fun log(group: FeatureUsageGroup, action: String, data: Map<String, Any>, isState: Boolean) = Unit
|
||||
override fun getLogFiles(): List<File> = emptyList()
|
||||
}
|
||||
|
||||
fun getLoggerProvider(): FeatureUsageEventLoggerProvider {
|
||||
if (Extensions.getRootArea().hasExtensionPoint(EP_NAME.name)) {
|
||||
val extensions = EP_NAME.extensions
|
||||
val extensions = EP_NAME.extensionList
|
||||
if (extensions.isEmpty()) {
|
||||
LOG.warn("Cannot find feature usage event logger")
|
||||
return FeatureUsageEmptyEventLoggerProvider()
|
||||
}
|
||||
else if (extensions.size > 1) {
|
||||
LOG.warn("Too many feature usage loggers registered (" + Arrays.asList<FeatureUsageEventLoggerProvider>(*extensions) + ")")
|
||||
LOG.warn("Too many feature usage loggers registered (${extensions})")
|
||||
}
|
||||
return extensions[0]
|
||||
}
|
||||
return FeatureUsageEmptyEventLoggerProvider()
|
||||
}
|
||||
|
||||
/**
|
||||
* Best practices:
|
||||
* - Prefer a bigger group with many (related) event types to many small groups of 1-2 events each.
|
||||
* - Prefer shorter group names; avoid common prefixes (such as "statistics.").
|
||||
*/
|
||||
class FeatureUsageGroup(val id: String, val version: Int)
|
||||
Reference in New Issue
Block a user