mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[plugin model] refactoring: get rid of unnecessary base class 'ContentElement'
The only allowed element in the `content` tag is a `module`, and we don't plan to introduce other elements there. So to simplify code, `ContentElement.Module` is renamed to `ContentModuleElement`, and usages of its base class are inlined. GitOrigin-RevId: db53095675961b35aac09b6ff9d61d0120db1d86
This commit is contained in:
committed by
intellij-monorepo-bot
parent
27c1a57b63
commit
006eaae1ba
@@ -475,21 +475,13 @@ class PluginMainDescriptor(
|
||||
|
||||
@ApiStatus.Internal
|
||||
companion object {
|
||||
private fun convertContentModules(contentElements: List<ContentElement>): List<PluginContentDescriptor.ModuleItem> {
|
||||
return contentElements.mapNotNull { elem ->
|
||||
when (elem) {
|
||||
is ContentElement.Module -> {
|
||||
val index = elem.name.lastIndexOf('/')
|
||||
val configFile: String? = if (index != -1) {
|
||||
"${elem.name.substring(0, index)}.${elem.name.substring(index + 1)}.xml"
|
||||
} else null
|
||||
PluginContentDescriptor.ModuleItem(elem.name, configFile, elem.embeddedDescriptorContent, elem.loadingRule.convert())
|
||||
}
|
||||
else -> {
|
||||
LOG.error("Unknown content element: $elem")
|
||||
null
|
||||
}
|
||||
}
|
||||
private fun convertContentModules(contentElements: List<ContentModuleElement>): List<PluginContentDescriptor.ModuleItem> {
|
||||
return contentElements.map { elem ->
|
||||
val index = elem.name.lastIndexOf('/')
|
||||
val configFile: String? = if (index != -1) {
|
||||
"${elem.name.substring(0, index)}.${elem.name.substring(index + 1)}.xml"
|
||||
} else null
|
||||
PluginContentDescriptor.ModuleItem(elem.name, configFile, elem.embeddedDescriptorContent, elem.loadingRule.convert())
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ import com.fasterxml.jackson.core.JsonFactory
|
||||
import com.fasterxml.jackson.core.JsonGenerator
|
||||
import com.intellij.openapi.extensions.PluginId
|
||||
import com.intellij.platform.plugins.parser.impl.RawPluginDescriptor
|
||||
import com.intellij.platform.plugins.parser.impl.elements.ContentElement
|
||||
import com.intellij.platform.plugins.parser.impl.elements.ContentModuleElement
|
||||
import com.intellij.platform.plugins.parser.impl.elements.DependenciesElement
|
||||
import com.intellij.platform.plugins.parser.impl.elements.ModuleLoadingRule
|
||||
import com.intellij.platform.plugins.testFramework.LoadFromSourceXIncludeLoader
|
||||
@@ -288,8 +288,6 @@ class PluginModelValidator(
|
||||
}
|
||||
|
||||
val moduleNameToLoadingRule = pluginInfo.descriptor.contentModules
|
||||
.asSequence()
|
||||
.filterIsInstance<ContentElement.Module>()
|
||||
.associateBy({ it.name }, { it.loadingRule })
|
||||
checkDependencies(
|
||||
dependenciesElements = descriptor.dependencies,
|
||||
@@ -528,13 +526,12 @@ class PluginModelValidator(
|
||||
// 2) no depends + no dependency on plugin in a referenced descriptor = directly injected into plugin (separate classloader is not created
|
||||
// during a transition period). In old format: xi:include (e.g. <xi:include href="dockerfile-language.xml"/>).
|
||||
private fun checkContent(
|
||||
contentElements: List<ContentElement>,
|
||||
contentElements: List<ContentModuleElement>,
|
||||
referencingModuleInfo: ModuleInfo,
|
||||
sourceModuleNameToFileInfo: Map<String, ModuleDescriptorFileInfo>,
|
||||
moduleNameToInfo: MutableMap<String, ModuleInfo>
|
||||
) {
|
||||
for (contentElement in contentElements) {
|
||||
contentElement as ContentElement.Module
|
||||
fun registerError(message: String, additionalParams: Map<String, Any?> = emptyMap()) {
|
||||
reportError(
|
||||
message,
|
||||
|
||||
+2
-2
@@ -58,8 +58,8 @@ interface PluginDescriptorBuilder {
|
||||
fun addExtension(qualifiedExtensionPointName: String, extension: ExtensionElement)
|
||||
val extensions: Map<String, List<ExtensionElement>>
|
||||
|
||||
fun addContentModule(contentModule: ContentElement)
|
||||
val contentModules: List<ContentElement>
|
||||
fun addContentModule(contentModule: ContentModuleElement)
|
||||
val contentModules: List<ContentModuleElement>
|
||||
|
||||
fun addDependency(dependency: DependenciesElement)
|
||||
val dependencies: List<DependenciesElement>
|
||||
|
||||
+3
-3
@@ -96,14 +96,14 @@ internal class PluginDescriptorBuilderImpl : PluginDescriptorBuilder {
|
||||
override val extensions: Map<String, List<ExtensionElement>>
|
||||
get() = _extensions ?: Java11Shim.INSTANCE.mapOf()
|
||||
|
||||
private var _contentModules: MutableList<ContentElement>? = null
|
||||
override fun addContentModule(contentModule: ContentElement) {
|
||||
private var _contentModules: MutableList<ContentModuleElement>? = null
|
||||
override fun addContentModule(contentModule: ContentModuleElement) {
|
||||
if (_contentModules == null) {
|
||||
_contentModules = ArrayList()
|
||||
}
|
||||
_contentModules!!.add(contentModule)
|
||||
}
|
||||
override val contentModules: List<ContentElement>
|
||||
override val contentModules: List<ContentModuleElement>
|
||||
get() = _contentModules ?: Java11Shim.INSTANCE.listOf()
|
||||
|
||||
private var _dependencies: MutableList<DependenciesElement>? = null
|
||||
|
||||
+1
-1
@@ -58,6 +58,6 @@ class RawPluginDescriptor(
|
||||
* */
|
||||
val extensions: Map<String, List<ExtensionElement>>,
|
||||
|
||||
val contentModules: List<ContentElement>,
|
||||
val contentModules: List<ContentModuleElement>,
|
||||
val dependencies: List<DependenciesElement>,
|
||||
)
|
||||
|
||||
+2
-2
@@ -670,7 +670,7 @@ private fun readContent(reader: XMLStreamReader2, builder: PluginDescriptorBuild
|
||||
val isEndElement = reader.next() == XMLStreamConstants.END_ELEMENT
|
||||
if (isEndElement) {
|
||||
if (os == null || readContext.elementOsFilter(os)) {
|
||||
builder.addContentModule(ContentElement.Module(name = name, loadingRule = loadingRule, embeddedDescriptorContent = null))
|
||||
builder.addContentModule(ContentModuleElement(name = name, loadingRule = loadingRule, embeddedDescriptorContent = null))
|
||||
}
|
||||
}
|
||||
else {
|
||||
@@ -679,7 +679,7 @@ private fun readContent(reader: XMLStreamReader2, builder: PluginDescriptorBuild
|
||||
val toIndex = fromIndex + reader.textLength
|
||||
val length = toIndex - fromIndex
|
||||
val descriptorContent = if (length == 0) null else reader.textCharacters.copyOfRange(fromIndex, toIndex)
|
||||
builder.addContentModule(ContentElement.Module(name = name, loadingRule = loadingRule, embeddedDescriptorContent = descriptorContent))
|
||||
builder.addContentModule(ContentModuleElement(name = name, loadingRule = loadingRule, embeddedDescriptorContent = descriptorContent))
|
||||
}
|
||||
|
||||
var nesting = 1
|
||||
|
||||
-14
@@ -1,14 +0,0 @@
|
||||
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.platform.plugins.parser.impl.elements
|
||||
|
||||
abstract class ContentElement {
|
||||
class Module(
|
||||
val name: String,
|
||||
val loadingRule: ModuleLoadingRule = ModuleLoadingRule.OPTIONAL,
|
||||
val embeddedDescriptorContent: CharArray? = null,
|
||||
) : ContentElement() {
|
||||
override fun toString(): String {
|
||||
return "Module(name=$name, loadingRule=$loadingRule)"
|
||||
}
|
||||
}
|
||||
}
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.platform.plugins.parser.impl.elements
|
||||
|
||||
class ContentModuleElement(
|
||||
val name: String,
|
||||
val loadingRule: ModuleLoadingRule = ModuleLoadingRule.OPTIONAL,
|
||||
val embeddedDescriptorContent: CharArray? = null,
|
||||
) {
|
||||
override fun toString(): String {
|
||||
return "Module(name=$name, loadingRule=$loadingRule)"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user