mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Workspace Model: store the module library in library entry instead of the whole library table
GitOrigin-RevId: 4232df9a1b0433aad25b53a6ab6acaa960940ff9
This commit is contained in:
committed by
intellij-monorepo-bot
parent
95f278bc67
commit
655e780578
+3
-6
@@ -10,14 +10,12 @@ import com.intellij.openapi.roots.impl.ClonableOrderEntry
|
||||
import com.intellij.openapi.roots.impl.ModuleRootManagerImpl
|
||||
import com.intellij.openapi.roots.impl.ProjectRootManagerImpl
|
||||
import com.intellij.openapi.roots.libraries.Library
|
||||
import com.intellij.openapi.roots.libraries.LibraryTable
|
||||
import com.intellij.openapi.roots.libraries.LibraryTablesRegistrar
|
||||
import com.intellij.openapi.vfs.VirtualFile
|
||||
import com.intellij.openapi.vfs.pointers.VirtualFilePointerManager
|
||||
import com.intellij.util.ArrayUtil
|
||||
import com.intellij.workspace.api.LibraryTableId
|
||||
import com.intellij.workspace.api.ModuleDependencyItem
|
||||
import com.intellij.workspace.legacyBridge.libraries.libraries.LegacyBridgeLibrary
|
||||
import org.jetbrains.jps.model.serialization.library.JpsLibraryTableSerializer
|
||||
|
||||
internal abstract class OrderEntryViaTypedEntity(
|
||||
@@ -173,7 +171,7 @@ internal class LibraryOrderEntryViaTypedEntity(
|
||||
model: RootModelViaTypedEntityImpl,
|
||||
index: Int,
|
||||
internal val libraryDependencyItem: ModuleDependencyItem.Exportable.LibraryDependency,
|
||||
private val moduleLibraryTable: LibraryTable,
|
||||
private val moduleLibrary: Library?,
|
||||
itemUpdater: (((ModuleDependencyItem) -> ModuleDependencyItem) -> Unit)?
|
||||
) : LibraryOrderEntryBaseViaTypedEntity(model, index, libraryDependencyItem, itemUpdater), LibraryOrderEntry, ClonableOrderEntry {
|
||||
|
||||
@@ -197,8 +195,7 @@ internal class LibraryOrderEntryViaTypedEntity(
|
||||
.getLibraryTableByLevel(LibraryTablesRegistrar.PROJECT_LEVEL, project)
|
||||
?.getLibraryByName(libraryId.name)
|
||||
}
|
||||
is LibraryTableId.ModuleLibraryTableId ->
|
||||
moduleLibraryTable.libraries.firstOrNull { (it as LegacyBridgeLibrary).libraryId == libraryId }
|
||||
is LibraryTableId.ModuleLibraryTableId -> moduleLibrary
|
||||
is LibraryTableId.GlobalLibraryTableId -> {
|
||||
LibraryTablesRegistrar.getInstance()
|
||||
?.getLibraryTableByLevel(parentId.level, project)
|
||||
@@ -239,7 +236,7 @@ internal class LibraryOrderEntryViaTypedEntity(
|
||||
override fun cloneEntry(rootModel: ModifiableRootModel,
|
||||
projectRootManager: ProjectRootManagerImpl,
|
||||
filePointerManager: VirtualFilePointerManager
|
||||
): OrderEntry = LibraryOrderEntryViaTypedEntity(model, index, libraryDependencyItem.copy(), rootModel.moduleLibraryTable, if (isModifiable) updater else null)
|
||||
): OrderEntry = LibraryOrderEntryViaTypedEntity(model, index, libraryDependencyItem.copy(), library, if (isModifiable) updater else null)
|
||||
|
||||
override fun isSynthetic(): Boolean = isModuleLevel
|
||||
}
|
||||
|
||||
+5
-1
@@ -18,6 +18,7 @@ import com.intellij.workspace.api.*
|
||||
import com.intellij.workspace.legacyBridge.intellij.LegacyBridgeCompilerModuleExtension
|
||||
import com.intellij.workspace.legacyBridge.intellij.LegacyBridgeFilePointerProvider
|
||||
import com.intellij.workspace.legacyBridge.intellij.LegacyBridgeModule
|
||||
import com.intellij.workspace.legacyBridge.libraries.libraries.LegacyBridgeLibrary
|
||||
import java.util.*
|
||||
import java.util.concurrent.atomic.AtomicReference
|
||||
import kotlin.collections.HashMap
|
||||
@@ -131,7 +132,10 @@ internal class RootModelViaTypedEntityImpl(internal val moduleEntityId: Persiste
|
||||
|
||||
return when (item) {
|
||||
is ModuleDependencyItem.Exportable.ModuleDependency -> ModuleOrderEntryViaTypedEntity(this, index, item, updater)
|
||||
is ModuleDependencyItem.Exportable.LibraryDependency -> LibraryOrderEntryViaTypedEntity(this, index, item, moduleLibraryTable, updater)
|
||||
is ModuleDependencyItem.Exportable.LibraryDependency -> {
|
||||
val library = moduleLibraryTable.libraries.firstOrNull { (it as? LegacyBridgeLibrary)?.libraryId == item.library }
|
||||
LibraryOrderEntryViaTypedEntity(this, index, item, library, updater)
|
||||
}
|
||||
is ModuleDependencyItem.SdkDependency -> SdkOrderEntryViaTypedEntity(this, index, item)
|
||||
is ModuleDependencyItem.InheritedSdkDependency -> InheritedSdkOrderEntryViaTypedEntity(this, index, item)
|
||||
is ModuleDependencyItem.ModuleSourceDependency -> ModuleSourceOrderEntryViaTypedEntity(this, index, item)
|
||||
|
||||
Reference in New Issue
Block a user