[json-settings] Use generated JsonSettingsModel in the test

GitOrigin-RevId: 1d292ce985896b2f54fe1fbee198b48159e591de
This commit is contained in:
Rustam Vishniakov
2024-05-14 09:53:31 +00:00
committed by intellij-monorepo-bot
parent 0435f17290
commit f6f1d78dcd
2 changed files with 26 additions and 8 deletions
+10 -7
View File
@@ -8925,6 +8925,7 @@ f:com.intellij.ide.projectWizard.NewProjectWizardConstants$Language
*f:com.intellij.ide.settings.json.JsonSettingsModel
- *sf:Companion:com.intellij.ide.settings.json.JsonSettingsModel$Companion
- <init>(java.util.Map):V
- f:getPluginId(java.lang.String,java.lang.String):java.lang.String
- f:getPropertyMap():java.util.Map
*f:com.intellij.ide.settings.json.JsonSettingsModel$Companion
- f:componentToSettingsModel(com.intellij.ide.settings.json.JsonSettingsModel$ComponentModel):com.intellij.ide.settings.json.JsonSettingsModel
@@ -9013,20 +9014,22 @@ f:com.intellij.ide.projectWizard.NewProjectWizardConstants$Language
*f:com.intellij.ide.settings.json.JsonSettingsModel$ComponentPropertyInfo$Companion
- f:serializer():kotlinx.serialization.KSerializer
*f:com.intellij.ide.settings.json.JsonSettingsModel$PropertyDescriptor
- <init>(java.lang.String,java.lang.String,com.intellij.ide.settings.json.JsonSettingsModel$PropertyType,java.lang.String,java.lang.String,java.util.List):V
- b:<init>(java.lang.String,java.lang.String,com.intellij.ide.settings.json.JsonSettingsModel$PropertyType,java.lang.String,java.lang.String,java.util.List,I,kotlin.jvm.internal.DefaultConstructorMarker):V
- <init>(java.lang.String,java.lang.String,java.lang.String,com.intellij.ide.settings.json.JsonSettingsModel$PropertyType,java.lang.String,java.lang.String,java.util.List):V
- b:<init>(java.lang.String,java.lang.String,java.lang.String,com.intellij.ide.settings.json.JsonSettingsModel$PropertyType,java.lang.String,java.lang.String,java.util.List,I,kotlin.jvm.internal.DefaultConstructorMarker):V
- f:component1():java.lang.String
- f:component2():java.lang.String
- f:component3():com.intellij.ide.settings.json.JsonSettingsModel$PropertyType
- f:component4():java.lang.String
- f:component3():java.lang.String
- f:component4():com.intellij.ide.settings.json.JsonSettingsModel$PropertyType
- f:component5():java.lang.String
- f:component6():java.util.List
- f:copy(java.lang.String,java.lang.String,com.intellij.ide.settings.json.JsonSettingsModel$PropertyType,java.lang.String,java.lang.String,java.util.List):com.intellij.ide.settings.json.JsonSettingsModel$PropertyDescriptor
- bs:copy$default(com.intellij.ide.settings.json.JsonSettingsModel$PropertyDescriptor,java.lang.String,java.lang.String,com.intellij.ide.settings.json.JsonSettingsModel$PropertyType,java.lang.String,java.lang.String,java.util.List,I,java.lang.Object):com.intellij.ide.settings.json.JsonSettingsModel$PropertyDescriptor
- f:component6():java.lang.String
- f:component7():java.util.List
- f:copy(java.lang.String,java.lang.String,java.lang.String,com.intellij.ide.settings.json.JsonSettingsModel$PropertyType,java.lang.String,java.lang.String,java.util.List):com.intellij.ide.settings.json.JsonSettingsModel$PropertyDescriptor
- bs:copy$default(com.intellij.ide.settings.json.JsonSettingsModel$PropertyDescriptor,java.lang.String,java.lang.String,java.lang.String,com.intellij.ide.settings.json.JsonSettingsModel$PropertyType,java.lang.String,java.lang.String,java.util.List,I,java.lang.Object):com.intellij.ide.settings.json.JsonSettingsModel$PropertyDescriptor
- equals(java.lang.Object):Z
- f:getComponentName():java.lang.String
- f:getMapTo():java.lang.String
- f:getName():java.lang.String
- f:getPluginId():java.lang.String
- f:getStorage():java.lang.String
- f:getType():com.intellij.ide.settings.json.JsonSettingsModel$PropertyType
- f:getVariants():java.util.List
@@ -16,6 +16,13 @@ private val logger = logger<JsonSettingsModel>()
@ApiStatus.Experimental
class JsonSettingsModel(val propertyMap: Map<String, PropertyDescriptor>) {
private val propertyPluginIdMap: Map<String, String> by lazy {
propertyMap.values.filter { it.pluginId != "com.intellij" }.mapNotNull { property ->
property.pluginId?.let { "${property.componentName}.${property.name}" to it }
}.toMap()
}
/**
* Supported property types.
*/
@@ -63,6 +70,7 @@ class JsonSettingsModel(val propertyMap: Map<String, PropertyDescriptor>) {
)
data class PropertyDescriptor (
val pluginId: String?,
val componentName: String,
val name: String,
val type: PropertyType,
@@ -82,6 +90,13 @@ class JsonSettingsModel(val propertyMap: Map<String, PropertyDescriptor>) {
val properties: List<String> = emptyList()
)
/**
* @return Real production Plugin ID instead of "com.intellij" when the IDE is launched in debug or test mode. Not to be used in
* production.
*/
@VisibleForTesting
fun getPluginId(componentName: String, propertyName: String): String? = propertyPluginIdMap["${componentName}.${propertyName}"]
companion object {
val instance: JsonSettingsModel by lazy { componentToSettingsModel(loadFromJson()) }
@@ -109,7 +124,7 @@ class JsonSettingsModel(val propertyMap: Map<String, PropertyDescriptor>) {
private fun jsonDataToPropertyDescriptor(componentInfo: ComponentInfo, propertyInfo: ComponentPropertyInfo): PropertyDescriptor? {
return if (componentInfo.name != null && componentInfo.storage != null) {
PropertyDescriptor(componentInfo.name, propertyInfo.name, propertyInfo.type, componentInfo.storage,
PropertyDescriptor(componentInfo.pluginId, componentInfo.name, propertyInfo.name, propertyInfo.type, componentInfo.storage,
propertyInfo.mapTo ?: propertyInfo.name, propertyInfo.variants)
}
else null