From 7d735c871e655b3ec37ca19357e4a9a4e27f4935 Mon Sep 17 00:00:00 2001 From: Roman Shevchenko Date: Mon, 28 Jan 2019 13:36:15 +0100 Subject: [PATCH] Cleanup (potential AIOOBE; doc comment; formatting) --- .../eventLog/FeatureUsageEventLogger.kt | 41 +++++++------------ 1 file changed, 14 insertions(+), 27 deletions(-) diff --git a/platform/platform-api/src/com/intellij/internal/statistic/eventLog/FeatureUsageEventLogger.kt b/platform/platform-api/src/com/intellij/internal/statistic/eventLog/FeatureUsageEventLogger.kt index 62fc79167eb6..ff9bc912713f 100644 --- a/platform/platform-api/src/com/intellij/internal/statistic/eventLog/FeatureUsageEventLogger.kt +++ b/platform/platform-api/src/com/intellij/internal/statistic/eventLog/FeatureUsageEventLogger.kt @@ -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("com.intellij.statistic.eventLog.fusEventLoggerProvider") interface FeatureUsageEventLogger { - fun log(group: FeatureUsageGroup, action: String, isState: Boolean) - fun log(group: FeatureUsageGroup, action: String, data: Map, isState: Boolean) - fun getLogFiles(): List - } 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, isState: Boolean) { - } - - override fun getLogFiles(): List { - return emptyList() - } + override fun log(group: FeatureUsageGroup, action: String, isState: Boolean) = Unit + override fun log(group: FeatureUsageGroup, action: String, data: Map, isState: Boolean) = Unit + override fun getLogFiles(): List = 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(*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) \ No newline at end of file