From 2d0ff6a54aa0ab6ef38f59eea807e59848c16cc4 Mon Sep 17 00:00:00 2001 From: Vladimir Krivosheev Date: Mon, 19 May 2025 18:01:30 +0200 Subject: [PATCH] cleanup GitOrigin-RevId: b9a2edb599a3660795f24523d538d2d92112b6d4 --- .../facet/FacetEntityChangeListener.kt | 90 +++++++++---------- .../legacyBridge/module/ModuleBridgeImpl.kt | 1 - 2 files changed, 44 insertions(+), 47 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/workspaceModel/ide/impl/legacyBridge/facet/FacetEntityChangeListener.kt b/platform/lang-impl/src/com/intellij/workspaceModel/ide/impl/legacyBridge/facet/FacetEntityChangeListener.kt index 3b7fbe657c62..3a6ad011cd97 100644 --- a/platform/lang-impl/src/com/intellij/workspaceModel/ide/impl/legacyBridge/facet/FacetEntityChangeListener.kt +++ b/platform/lang-impl/src/com/intellij/workspaceModel/ide/impl/legacyBridge/facet/FacetEntityChangeListener.kt @@ -33,10 +33,9 @@ import org.jetbrains.annotations.ApiStatus @Service(Service.Level.PROJECT) @ApiStatus.Internal class FacetEntityChangeListener(private val project: Project) { - private val publisher: FacetEventsPublisher - get() = FacetEventsPublisher.getInstance(project) + private fun getPublisher(): FacetEventsPublisher = FacetEventsPublisher.getInstance(project) - fun initializeFacetBridge(changes: Map, List>>, builder: MutableEntityStorage) = initializeFacetBridgeTimeMs.addMeasuredTime { + fun initializeFacetBridge(changes: Map, List>>, builder: MutableEntityStorage): Unit = initializeFacetBridgeTimeMs.addMeasuredTime { for (facetBridgeContributor in WorkspaceFacetContributor.EP_NAME.extensionList) { val facetType = facetBridgeContributor.rootEntityType changes[facetType]?.asSequence()?.filterIsInstance>()?.forEach perFacet@{ facetChange -> @@ -64,7 +63,7 @@ class FacetEntityChangeListener(private val project: Project) { } } - class WorkspaceModelListener(project: Project) : WorkspaceModelChangeListener { + internal class WorkspaceModelListener(project: Project) : WorkspaceModelChangeListener { private val facetEntityChangeListener = project.service() override fun beforeChanged(event: VersionedStorageChange) { @@ -91,16 +90,16 @@ class FacetEntityChangeListener(private val project: Project) { is EntityChange.Added -> { val existingFacetBridge = event.storageAfter.facetMapping().getDataByEntity(change.newEntity) ?: error("Facet bridge should be already initialized") - publisher.fireBeforeFacetAdded(existingFacetBridge) + getPublisher().fireBeforeFacetAdded(existingFacetBridge) } is EntityChange.Removed -> { val facet = event.storageBefore.facetMapping().getDataByEntity(change.oldEntity) ?: return@forEach - publisher.fireBeforeFacetRemoved(facet) + getPublisher().fireBeforeFacetRemoved(facet) } is EntityChange.Replaced -> { if (change.oldEntity.name != change.newEntity.name) { val facetBridge = event.storageAfter.facetMapping().getDataByEntity(change.newEntity) ?: error("Facet should be available") - publisher.fireBeforeFacetRenamed(facetBridge) + getPublisher().fireBeforeFacetRenamed(facetBridge) } } } @@ -123,47 +122,46 @@ class FacetEntityChangeListener(private val project: Project) { result } - event.getChanges(workspaceFacetContributor.rootEntityType) - .forEach { change -> - when (change) { - is EntityChange.Added -> { - val existingFacetBridge = event.storageAfter.facetMapping().getDataByEntity(change.newEntity) - ?: error("Facet bridge should be already initialized") - val moduleEntity = workspaceFacetContributor.getParentModuleEntity(change.newEntity) - getFacetManager(moduleEntity)?.model?.facetsChanged() + for (change in event.getChanges(workspaceFacetContributor.rootEntityType)) { + when (change) { + is EntityChange.Added -> { + val existingFacetBridge = event.storageAfter.facetMapping().getDataByEntity(change.newEntity) + ?: error("Facet bridge should be already initialized") + val moduleEntity = workspaceFacetContributor.getParentModuleEntity(change.newEntity) + getFacetManager(moduleEntity)?.model?.facetsChanged() - FacetManagerBase.setFacetName(existingFacetBridge, change.newEntity.name) - existingFacetBridge.initFacet() + FacetManagerBase.setFacetName(existingFacetBridge, change.newEntity.name) + existingFacetBridge.initFacet() - // We should not send an event if the associated module was added in the same transaction. - // Event will be sent with "moduleAdded" event. - if (moduleEntity.name !in addedModulesNames) { - publisher.fireFacetAdded(existingFacetBridge) - } + // We should not send an event if the associated module was added in the same transaction. + // Event will be sent with "moduleAdded" event. + if (moduleEntity.name !in addedModulesNames) { + getPublisher().fireFacetAdded(existingFacetBridge) } - is EntityChange.Removed -> { - val moduleEntity = workspaceFacetContributor.getParentModuleEntity(change.oldEntity) - val manager = getFacetManager(moduleEntity) ?: return@forEach - // Mapping to facet isn't saved in manager.model after 'applyChangesFrom'. But you can get an object from the older version of the store - manager.model.facetsChanged() - val facet = event.storageBefore.facetMapping().getDataByEntity(change.oldEntity) ?: return@forEach - Disposer.dispose(facet) - publisher.fireFacetRemoved(facet) - } - is EntityChange.Replaced -> { - val facet = event.storageAfter.facetMapping().getDataByEntity(change.newEntity) ?: error("Facet should be available") - val moduleEntity = workspaceFacetContributor.getParentModuleEntity(change.newEntity) - getFacetManager(moduleEntity)?.model?.facetsChanged() - val newFacetName = change.newEntity.name - val oldFacetName = change.oldEntity.name - FacetManagerBase.setFacetName(facet, newFacetName) - changedFacets[facet] = change.newEntity - if (oldFacetName != newFacetName) { - publisher.fireFacetRenamed(facet, oldFacetName) - } + } + is EntityChange.Removed -> { + val moduleEntity = workspaceFacetContributor.getParentModuleEntity(change.oldEntity) + val manager = getFacetManager(moduleEntity) ?: continue + // Mapping to facet isn't saved in manager.model after 'applyChangesFrom'. But you can get an object from the older version of the store + manager.model.facetsChanged() + val facet = event.storageBefore.facetMapping().getDataByEntity(change.oldEntity) ?: continue + Disposer.dispose(facet) + getPublisher().fireFacetRemoved(facet) + } + is EntityChange.Replaced -> { + val facet = event.storageAfter.facetMapping().getDataByEntity(change.newEntity) ?: error("Facet should be available") + val moduleEntity = workspaceFacetContributor.getParentModuleEntity(change.newEntity) + getFacetManager(moduleEntity)?.model?.facetsChanged() + val newFacetName = change.newEntity.name + val oldFacetName = change.oldEntity.name + FacetManagerBase.setFacetName(facet, newFacetName) + changedFacets[facet] = change.newEntity + if (oldFacetName != newFacetName) { + getPublisher().fireFacetRenamed(facet, oldFacetName) } } } + } val newlyAddedFacets by lazy { event.getChanges(workspaceFacetContributor.rootEntityType) @@ -175,8 +173,8 @@ class FacetEntityChangeListener(private val project: Project) { .filterIsInstance>().map { it.oldEntity } } - workspaceFacetContributor.childEntityTypes.forEach { entityType -> - event.getChanges(entityType).forEach { change -> + for (entityType in workspaceFacetContributor.childEntityTypes) { + for (change in event.getChanges(entityType)) { when (change) { is EntityChange.Added -> { // We shouldn't fire `facetConfigurationChanged` for newly added spring settings @@ -213,7 +211,7 @@ class FacetEntityChangeListener(private val project: Project) { val moduleEntity = event.storageAfter.resolve(ModuleId(facet.module.name))!! val facetConfigurationElement = if (facet is FacetBridge<*, *>) { val builder = event.storageAfter.toBuilder() - val thief = Ref.create() + val thief = Ref() builder.modifyModuleEntity(moduleEntity) { thief.set(this) } @@ -228,7 +226,7 @@ class FacetEntityChangeListener(private val project: Project) { @Suppress("UNCHECKED_CAST") (facet as? FacetBridge)?.updateFacetConfiguration(rootEntity) ?: FacetUtil.loadFacetConfiguration(facet.configuration, rootElement) - publisher.fireFacetConfigurationChanged(facet) + getPublisher().fireFacetConfigurationChanged(facet) } } } diff --git a/platform/lang-impl/src/com/intellij/workspaceModel/ide/impl/legacyBridge/module/ModuleBridgeImpl.kt b/platform/lang-impl/src/com/intellij/workspaceModel/ide/impl/legacyBridge/module/ModuleBridgeImpl.kt index 7fa01f48e940..b255dbb85aaa 100644 --- a/platform/lang-impl/src/com/intellij/workspaceModel/ide/impl/legacyBridge/module/ModuleBridgeImpl.kt +++ b/platform/lang-impl/src/com/intellij/workspaceModel/ide/impl/legacyBridge/module/ModuleBridgeImpl.kt @@ -4,7 +4,6 @@ package com.intellij.workspaceModel.ide.impl.legacyBridge.module import com.intellij.configurationStore.DefaultModuleStoreFactory import com.intellij.configurationStore.ModuleStoreFactory import com.intellij.configurationStore.RenameableStateStorageManager -import com.intellij.facet.Facet import com.intellij.facet.FacetManagerFactory import com.intellij.ide.plugins.IdeaPluginDescriptorImpl import com.intellij.openapi.application.ApplicationManager