ValidationResultType (@NotNull String data, @NotNull EventContext context) { final ExperimentalFeature feature = findFeatureById(data); if (feature != null) { final PluginInfo info = getPluginInfo(feature.getClass()); context.setPayload(PLUGIN_INFO, info); return info.isDevelopedByJetBrains() ? ValidationResultType.ACCEPTED : ValidationResultType.THIRD_PARTY; } for (AdvancedSettingBean extension : AdvancedSettingBean.EP_NAME.getExtensionList()) { if (extension.id.equals(data)) { PluginDescriptor descriptor = extension.getPluginDescriptor(); if (descriptor == null) return ValidationResultType.REJECTED; final PluginInfo info = getPluginInfoByDescriptor(descriptor); context.setPayload(PLUGIN_INFO, info); return info.isDevelopedByJetBrains() ? ValidationResultType.ACCEPTED : ValidationResultType.THIRD_PARTY; } } PluginInfo info = getPluginInfoByRegistry(Registry.get(data)); context.setPayload(PLUGIN_INFO, info); return info.isSafeToReport() ? ValidationResultType.ACCEPTED : ValidationResultType.THIRD_PARTY; }