mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-03-22 06:50:54 +07:00
simplify resolveNotRequiredValue
GitOrigin-RevId: 130f0170b1126240ff5db705c1fe1a97dff33185
This commit is contained in:
committed by
intellij-monorepo-bot
parent
8d94dfcad2
commit
24c035dc51
@@ -40,7 +40,7 @@ class RegistryKeyBean private constructor() {
|
||||
Registry.setContributedKeys(HashMap<String, RegistryKeyDescriptor>().let { mutator ->
|
||||
point.processUnsortedWithPluginDescriptor { bean, pluginDescriptor ->
|
||||
val descriptor = createRegistryKeyDescriptor(bean, pluginDescriptor)
|
||||
putNewDescriptorConsideringOverrides(mutator, descriptor, false)
|
||||
putNewDescriptorConsideringOverrides(map = mutator, newDescriptor = descriptor, isDynamic = false)
|
||||
}
|
||||
java.util.Map.copyOf(mutator)
|
||||
})
|
||||
@@ -51,7 +51,7 @@ class RegistryKeyBean private constructor() {
|
||||
Registry.mutateContributedKeys { oldMap ->
|
||||
val newMap = HashMap<String, RegistryKeyDescriptor>(oldMap.size + 1)
|
||||
newMap.putAll(oldMap)
|
||||
putNewDescriptorConsideringOverrides(newMap, descriptor, isDynamic = true)
|
||||
putNewDescriptorConsideringOverrides(map = newMap, newDescriptor = descriptor, isDynamic = true)
|
||||
java.util.Map.copyOf(newMap)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -59,11 +59,11 @@ internal class RegistryManagerImpl(coroutineScope: CoroutineScope) : PersistentS
|
||||
override fun stringValue(key: String): @NlsSafe String = Registry._getWithoutStateCheck(key).asString()
|
||||
|
||||
override fun intValue(key: String, defaultValue: Int): Int {
|
||||
return try {
|
||||
Registry._getWithoutStateCheck(key).asInteger()
|
||||
try {
|
||||
return Registry._getWithoutStateCheck(key).asInteger()
|
||||
}
|
||||
catch (ignore: MissingResourceException) {
|
||||
defaultValue
|
||||
return defaultValue
|
||||
}
|
||||
}
|
||||
|
||||
@@ -76,11 +76,11 @@ internal class RegistryManagerImpl(coroutineScope: CoroutineScope) : PersistentS
|
||||
override fun getState(): Element = Registry.getInstance().getState()
|
||||
|
||||
override fun noStateLoaded() {
|
||||
Registry.loadState(/* state = */ null, /* earlyAccess = */ EarlyAccessRegistryManager.getOrLoadMap())
|
||||
Registry.loadState(state = null, earlyAccess = EarlyAccessRegistryManager.getOrLoadMap())
|
||||
}
|
||||
|
||||
override fun loadState(state: Element) {
|
||||
log(Registry.loadState(/* state = */ state, /* earlyAccess = */ EarlyAccessRegistryManager.getOrLoadMap()))
|
||||
log(Registry.loadState(state = state, earlyAccess = EarlyAccessRegistryManager.getOrLoadMap()))
|
||||
}
|
||||
|
||||
private fun log(userProperties: Map<String, String>) {
|
||||
@@ -89,13 +89,12 @@ internal class RegistryManagerImpl(coroutineScope: CoroutineScope) : PersistentS
|
||||
}
|
||||
|
||||
val keys = ArrayUtilRt.toStringArray(userProperties.keys)
|
||||
Arrays.sort(keys)
|
||||
keys.sort()
|
||||
val builder = StringBuilder("Registry values changed by user: ")
|
||||
for (key in keys) {
|
||||
if ("ide.firstStartup" == key) {
|
||||
continue
|
||||
if ("ide.firstStartup" != key) {
|
||||
builder.append(key).append(" = ").append(userProperties[key]).append(", ")
|
||||
}
|
||||
builder.append(key).append(" = ").append(userProperties[key]).append(", ")
|
||||
}
|
||||
logger<RegistryManager>().info(builder.substring(0, builder.length - 2))
|
||||
}
|
||||
|
||||
@@ -1493,7 +1493,6 @@ c:com.intellij.openapi.util.registry.RegistryValue
|
||||
- f:getSelectedOption():java.lang.String
|
||||
- isBoolean():Z
|
||||
- isChangedFromDefault():Z
|
||||
- f:isChangedFromDefault(java.lang.String,com.intellij.openapi.util.registry.Registry):Z
|
||||
- f:isChangedSinceAppStart():Z
|
||||
- f:isMultiValue():Z
|
||||
- f:isOptionEnabled(java.lang.String):Z
|
||||
|
||||
@@ -208,7 +208,7 @@ class Registry {
|
||||
val keysToProcess = HashSet(userProperties.keys)
|
||||
for ((key, value) in map) {
|
||||
val registryValue = registry.resolveValue(key)
|
||||
val currentValue = registryValue.resolveNotRequiredValue(key = key, defaultValue = null)
|
||||
val currentValue = registryValue.resolveNotRequiredValue(key)
|
||||
// currentValue == null means value is not in the bundle. Ignore it
|
||||
if (currentValue != null && currentValue != value) {
|
||||
registryValue.setValue(value)
|
||||
@@ -259,17 +259,17 @@ class Registry {
|
||||
val keys = bundle?.keys ?: emptySet()
|
||||
val result = ArrayList<RegistryValue>()
|
||||
// don't use getInstance here - https://youtrack.jetbrains.com/issue/IDEA-271748
|
||||
val instance = registry
|
||||
val contributedKeys = instance.contributedKeys
|
||||
val registry = registry
|
||||
val contributedKeys = registry.contributedKeys
|
||||
for (key in keys) {
|
||||
if (key.endsWith(".description") || key.endsWith(".restartRequired") || contributedKeys.containsKey(key)) {
|
||||
continue
|
||||
}
|
||||
result.add(instance.resolveValue(key))
|
||||
result.add(registry.resolveValue(key))
|
||||
}
|
||||
|
||||
for (key in contributedKeys.keys) {
|
||||
result.add(instance.resolveValue(key))
|
||||
result.add(registry.resolveValue(key))
|
||||
}
|
||||
|
||||
return result
|
||||
@@ -317,7 +317,7 @@ class Registry {
|
||||
val map = fromState(state)
|
||||
for ((key, value) in map) {
|
||||
val registryValue = registry.resolveValue(key)
|
||||
if (registryValue.isChangedFromDefault(value, registry)) {
|
||||
if (value != registry.getBundleValueOrNull(registryValue.key)) {
|
||||
userProperties.put(key, value)
|
||||
registryValue.resetCache()
|
||||
}
|
||||
@@ -328,6 +328,7 @@ class Registry {
|
||||
// yes, earlyAccess overrides user properties
|
||||
userProperties.putAll(earlyAccess)
|
||||
}
|
||||
|
||||
registry.isLoaded = true
|
||||
registry.loadFuture.complete(null)
|
||||
return userProperties
|
||||
|
||||
@@ -120,7 +120,7 @@ open class RegistryValue @Internal constructor(
|
||||
}
|
||||
|
||||
private fun computeDouble(): Double {
|
||||
return resolveNotRequiredValue(key = key, defaultValue = null)?.toDoubleOrNull()
|
||||
return resolveNotRequiredValue(key)?.toDoubleOrNull()
|
||||
?: keyDescriptor?.defaultValue?.toDouble()
|
||||
?: registry.getBundleValueOrNull(key)?.toDouble()
|
||||
?: 0.0
|
||||
@@ -145,33 +145,33 @@ open class RegistryValue @Internal constructor(
|
||||
}
|
||||
|
||||
open val description: @NlsSafe String
|
||||
get() = keyDescriptor?.description ?: resolveNotRequiredValue(key = "$key.description", defaultValue = "")!!
|
||||
get() = keyDescriptor?.description ?: resolveNotRequiredValue(key = "$key.description") ?: ""
|
||||
|
||||
open fun isRestartRequired(): Boolean {
|
||||
if (keyDescriptor != null) {
|
||||
if (keyDescriptor == null) {
|
||||
return resolveNotRequiredValue(key = "$key.restartRequired").toBoolean()
|
||||
}
|
||||
else {
|
||||
return keyDescriptor.isRestartRequired
|
||||
}
|
||||
return resolveNotRequiredValue(key = "$key.restartRequired", defaultValue = "false").toBoolean()
|
||||
}
|
||||
|
||||
open fun isChangedFromDefault(): Boolean = isChangedFromDefault(asString(), registry)
|
||||
open fun isChangedFromDefault(): Boolean {
|
||||
return (stringCachedValue ?: resolveNotRequiredValue(key)) != registry.getBundleValueOrNull(key)
|
||||
}
|
||||
|
||||
val pluginId: String?
|
||||
get() = keyDescriptor?.pluginId
|
||||
|
||||
fun isChangedFromDefault(newValue: String, registry: Registry): Boolean {
|
||||
return newValue != registry.getBundleValueOrNull(key)
|
||||
}
|
||||
|
||||
private fun getAsValue(key: @NonNls String): String? {
|
||||
if (stringCachedValue == null) {
|
||||
stringCachedValue = resolveNotRequiredValue(key = key, defaultValue = null)
|
||||
stringCachedValue = resolveNotRequiredValue(key)
|
||||
}
|
||||
return stringCachedValue?.takeIf { it.isNotEmpty() }
|
||||
}
|
||||
|
||||
@Internal
|
||||
fun resolveNotRequiredValue(key: @NonNls String, defaultValue: String?): String? {
|
||||
fun resolveNotRequiredValue(key: @NonNls String): String? {
|
||||
registry.getUserProperties().get(key)?.let {
|
||||
return it
|
||||
}
|
||||
@@ -181,7 +181,7 @@ open class RegistryValue @Internal constructor(
|
||||
}
|
||||
|
||||
checkIsLoaded(key)
|
||||
return registry.getBundleValueOrNull(key) ?: defaultValue
|
||||
return registry.getBundleValueOrNull(key)
|
||||
}
|
||||
|
||||
@Throws(MissingResourceException::class)
|
||||
@@ -236,7 +236,7 @@ open class RegistryValue @Internal constructor(
|
||||
listener.afterValueChanged(this)
|
||||
}
|
||||
|
||||
if (!isRestartRequired() && resolveNotRequiredValue(key = key, defaultValue = null) == registry.getBundleValueOrNull(key)) {
|
||||
if (!isRestartRequired() && resolveNotRequiredValue(key) == registry.getBundleValueOrNull(key)) {
|
||||
registry.getUserProperties().remove(key)
|
||||
}
|
||||
|
||||
|
||||
@@ -149,7 +149,7 @@ public class RegistryTest {
|
||||
Registry.Companion.loadState(registryElementFromMap(secondMap), null);
|
||||
assertEquals(secondValue, Registry.get(key).asString());
|
||||
RegistryValue newRegistryValue = Registry.get(newKey);
|
||||
String loadedNewValue = newRegistryValue.resolveNotRequiredValue(newRegistryValue.getKey(), null);
|
||||
String loadedNewValue = newRegistryValue.resolveNotRequiredValue(newRegistryValue.getKey());
|
||||
assertNull(loadedNewValue);
|
||||
assertThat(changedPairs).hasSize(1);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user