mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-02-04 23:39:07 +07:00
[json-settings] Add JsonSettingsModel JavaDoc, mark test-only classes and methods
GitOrigin-RevId: cb9b06b6d2c060bf96b6dad5aa9b1aa5ce4f439c
This commit is contained in:
committed by
intellij-monorepo-bot
parent
7b62ddb124
commit
f4b1e85e0a
@@ -9094,28 +9094,6 @@ f:com.intellij.ide.settings.json.JsonSettingsModel$VariantInfo$$serializer
|
||||
- typeParametersSerializers():kotlinx.serialization.KSerializer[]
|
||||
f:com.intellij.ide.settings.json.JsonSettingsModel$VariantInfo$Companion
|
||||
- f:serializer():kotlinx.serialization.KSerializer
|
||||
f:com.intellij.ide.settings.json.JsonSettingsModel$WhiteList
|
||||
- sf:Companion:com.intellij.ide.settings.json.JsonSettingsModel$WhiteList$Companion
|
||||
- <init>():V
|
||||
- <init>(java.util.List):V
|
||||
- b:<init>(java.util.List,I,kotlin.jvm.internal.DefaultConstructorMarker):V
|
||||
- f:component1():java.util.List
|
||||
- f:copy(java.util.List):com.intellij.ide.settings.json.JsonSettingsModel$WhiteList
|
||||
- bs:copy$default(com.intellij.ide.settings.json.JsonSettingsModel$WhiteList,java.util.List,I,java.lang.Object):com.intellij.ide.settings.json.JsonSettingsModel$WhiteList
|
||||
- equals(java.lang.Object):Z
|
||||
- f:getProperties():java.util.List
|
||||
- hashCode():I
|
||||
- toString():java.lang.String
|
||||
f:com.intellij.ide.settings.json.JsonSettingsModel$WhiteList$$serializer
|
||||
- kotlinx.serialization.internal.GeneratedSerializer
|
||||
- sf:INSTANCE:com.intellij.ide.settings.json.JsonSettingsModel$WhiteList$$serializer
|
||||
- childSerializers():kotlinx.serialization.KSerializer[]
|
||||
- deserialize(kotlinx.serialization.encoding.Decoder):com.intellij.ide.settings.json.JsonSettingsModel$WhiteList
|
||||
- getDescriptor():kotlinx.serialization.descriptors.SerialDescriptor
|
||||
- serialize(kotlinx.serialization.encoding.Encoder,com.intellij.ide.settings.json.JsonSettingsModel$WhiteList):V
|
||||
- typeParametersSerializers():kotlinx.serialization.KSerializer[]
|
||||
f:com.intellij.ide.settings.json.JsonSettingsModel$WhiteList$Companion
|
||||
- f:serializer():kotlinx.serialization.KSerializer
|
||||
f:com.intellij.ide.settings.json.SettingsInspectorKt
|
||||
- sf:buildComponentModel():com.intellij.ide.settings.json.JsonSettingsModel$ComponentModel
|
||||
f:com.intellij.ide.startup.ServiceNotReadyException
|
||||
|
||||
@@ -4,12 +4,19 @@ package com.intellij.ide.settings.json
|
||||
import com.intellij.openapi.diagnostic.logger
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.json.Json
|
||||
import org.jetbrains.annotations.VisibleForTesting
|
||||
|
||||
private val logger = logger<JsonSettingsModel>()
|
||||
|
||||
/**
|
||||
* Contains supported settings which are publicly available to end users and can be edited without UI using only Json schema.
|
||||
* See [Json Settings](https://youtrack.jetbrains.com/articles/IDEA-A-2100661939/Json-Settings)
|
||||
*/
|
||||
class JsonSettingsModel(val propertyMap: Map<String, PropertyDescriptor>) {
|
||||
|
||||
|
||||
/**
|
||||
* Supported property types.
|
||||
*/
|
||||
enum class PropertyType {
|
||||
Boolean,
|
||||
Integer,
|
||||
@@ -20,11 +27,16 @@ class JsonSettingsModel(val propertyMap: Map<String, PropertyDescriptor>) {
|
||||
Unsupported
|
||||
}
|
||||
|
||||
/**
|
||||
* Contains a pregenerated raw list of Persistent State Components converted to JsonSettingsModel.
|
||||
*/
|
||||
@VisibleForTesting
|
||||
@Serializable
|
||||
data class ComponentModel (
|
||||
val components: List<ComponentInfo> = emptyList()
|
||||
)
|
||||
|
||||
@VisibleForTesting
|
||||
@Serializable
|
||||
data class ComponentInfo (
|
||||
val name: String?,
|
||||
@@ -38,6 +50,7 @@ class JsonSettingsModel(val propertyMap: Map<String, PropertyDescriptor>) {
|
||||
if (name != null && pluginId != null) "${pluginId}:${scope}:${name}" else null
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
@Serializable
|
||||
data class ComponentPropertyInfo (
|
||||
val name: String,
|
||||
@@ -63,7 +76,7 @@ class JsonSettingsModel(val propertyMap: Map<String, PropertyDescriptor>) {
|
||||
)
|
||||
|
||||
@Serializable
|
||||
data class WhiteList (
|
||||
internal class WhiteList (
|
||||
val properties: List<String> = emptyList()
|
||||
)
|
||||
|
||||
@@ -77,6 +90,7 @@ class JsonSettingsModel(val propertyMap: Map<String, PropertyDescriptor>) {
|
||||
} ?: ComponentModel()
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
fun componentToSettingsModel(componentModel: ComponentModel): JsonSettingsModel {
|
||||
val propertyMap = mutableMapOf<String, PropertyDescriptor>()
|
||||
val filteredModel = filterSettings(componentModel)
|
||||
|
||||
@@ -8,10 +8,11 @@ import com.intellij.openapi.extensions.PluginDescriptor
|
||||
import com.intellij.serialization.MutableAccessor
|
||||
import com.intellij.serviceContainer.ComponentManagerImpl
|
||||
import com.intellij.util.xmlb.getBeanAccessors
|
||||
import org.jetbrains.annotations.VisibleForTesting
|
||||
import java.util.*
|
||||
import java.util.function.IntPredicate
|
||||
|
||||
|
||||
@VisibleForTesting
|
||||
fun buildComponentModel(): JsonSettingsModel.ComponentModel =
|
||||
JsonSettingsModel.ComponentModel(listAppComponents().map { descriptor ->
|
||||
JsonSettingsModel.ComponentInfo(
|
||||
|
||||
Reference in New Issue
Block a user