mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-02-05 08:06:56 +07:00
[Workspace Model] Add syntax sugar for workspace model quick access
GitOrigin-RevId: 5b261af938362ac66092f17ed65fe3822d5ea9b6
This commit is contained in:
committed by
intellij-monorepo-bot
parent
2ef985f310
commit
46a9edfe96
@@ -24,6 +24,7 @@ import com.intellij.util.containers.BidirectionalMap
|
||||
import com.intellij.util.xmlb.XmlSerializer
|
||||
import com.intellij.workspaceModel.ide.WorkspaceModel
|
||||
import com.intellij.workspaceModel.ide.impl.WorkspaceModelImpl
|
||||
import com.intellij.workspaceModel.ide.workspaceModel
|
||||
import com.intellij.workspaceModel.storage.*
|
||||
import com.intellij.workspaceModel.storage.bridgeEntities.ArtifactEntity
|
||||
import com.intellij.workspaceModel.storage.bridgeEntities.ArtifactId
|
||||
@@ -47,8 +48,7 @@ class ArtifactManagerBridge(private val project: Project) : ArtifactManager(), D
|
||||
override fun getArtifacts(): Array<ArtifactBridge> {
|
||||
initBridges()
|
||||
|
||||
val workspaceModel = WorkspaceModel.getInstance(project)
|
||||
val entityStorage = workspaceModel.entityStorage
|
||||
val entityStorage = project.workspaceModel.entityStorage
|
||||
|
||||
val store = entityStorage.current
|
||||
|
||||
@@ -63,8 +63,7 @@ class ArtifactManagerBridge(private val project: Project) : ArtifactManager(), D
|
||||
override fun findArtifact(name: String): Artifact? {
|
||||
initBridges()
|
||||
|
||||
val workspaceModel = WorkspaceModel.getInstance(project)
|
||||
val entityStorage = workspaceModel.entityStorage
|
||||
val entityStorage = project.workspaceModel.entityStorage
|
||||
val store = entityStorage.current
|
||||
|
||||
val artifactEntity = store.resolve(ArtifactId(name)) ?: return null
|
||||
@@ -83,8 +82,7 @@ class ArtifactManagerBridge(private val project: Project) : ArtifactManager(), D
|
||||
ApplicationManager.getApplication().assertReadAccessAllowed()
|
||||
initBridges()
|
||||
|
||||
val workspaceModel = WorkspaceModel.getInstance(project)
|
||||
val entityStorage = workspaceModel.entityStorage
|
||||
val entityStorage = project.workspaceModel.entityStorage
|
||||
val store = entityStorage.current
|
||||
val typeId = type.id
|
||||
|
||||
@@ -101,7 +99,7 @@ class ArtifactManagerBridge(private val project: Project) : ArtifactManager(), D
|
||||
ApplicationManager.getApplication().assertReadAccessAllowed()
|
||||
initBridges()
|
||||
|
||||
val entityStorage = WorkspaceModel.getInstance(project).entityStorage
|
||||
val entityStorage = project.workspaceModel.entityStorage
|
||||
val storage = entityStorage.current
|
||||
|
||||
return storage
|
||||
@@ -122,7 +120,7 @@ class ArtifactManagerBridge(private val project: Project) : ArtifactManager(), D
|
||||
}
|
||||
|
||||
override fun createModifiableModel(): ModifiableArtifactModel {
|
||||
val storage = WorkspaceModel.getInstance(project).entityStorage.current
|
||||
val storage = project.workspaceModel.entityStorage.current
|
||||
return ArtifactModifiableModelBridge(project, MutableEntityStorage.from(storage), this)
|
||||
}
|
||||
|
||||
@@ -162,7 +160,7 @@ class ArtifactManagerBridge(private val project: Project) : ArtifactManager(), D
|
||||
LOG.trace { "Committing artifact manager bridge. diff: ${artifactModel.diff}" }
|
||||
updateCustomElements(artifactModel.diff)
|
||||
|
||||
val current = WorkspaceModel.getInstance(project).entityStorage.current
|
||||
val current = project.workspaceModel.entityStorage.current
|
||||
val changes = artifactModel.diff.collectChanges(current)[ArtifactEntity::class.java] ?: emptyList()
|
||||
|
||||
val removed = mutableSetOf<ArtifactBridge>()
|
||||
@@ -203,7 +201,7 @@ class ArtifactManagerBridge(private val project: Project) : ArtifactManager(), D
|
||||
|
||||
(ArtifactPointerManager.getInstance(project) as ArtifactPointerManagerImpl).disposePointers(changedArtifacts)
|
||||
|
||||
WorkspaceModel.getInstance(project).updateProjectModel("Commit artifact manager") {
|
||||
project.workspaceModel.updateProjectModel("Commit artifact manager") {
|
||||
it.addDiff(artifactModel.diff)
|
||||
}
|
||||
|
||||
@@ -226,7 +224,7 @@ class ArtifactManagerBridge(private val project: Project) : ArtifactManager(), D
|
||||
artifactWithDiffs.forEach { it.setActualStorage() }
|
||||
artifactWithDiffs.clear()
|
||||
|
||||
val entityStorage = WorkspaceModel.getInstance(project).entityStorage
|
||||
val entityStorage = project.workspaceModel.entityStorage
|
||||
added.forEach { bridge ->
|
||||
bridge.elementsWithDiff.forEach { it.setStorage(entityStorage, project, HashSet(), PackagingElementInitializer) }
|
||||
bridge.elementsWithDiff.clear()
|
||||
@@ -272,7 +270,7 @@ class ArtifactManagerBridge(private val project: Project) : ArtifactManager(), D
|
||||
private fun initBridges() {
|
||||
// XXX @RequiresReadLock annotation doesn't work for kt now
|
||||
ApplicationManager.getApplication().assertReadAccessAllowed()
|
||||
val workspaceModel = WorkspaceModel.getInstance(project)
|
||||
val workspaceModel = project.workspaceModel
|
||||
val current = workspaceModel.entityStorage.current
|
||||
if (current.entitiesAmount(ArtifactEntity::class.java) != current.artifactsMap.size()) {
|
||||
|
||||
@@ -323,7 +321,7 @@ class ArtifactManagerBridge(private val project: Project) : ArtifactManager(), D
|
||||
fun dropMappings(selector: (ArtifactEntity) -> Boolean) {
|
||||
// XXX @RequiresReadLock annotation doesn't work for kt now
|
||||
ApplicationManager.getApplication().assertWriteAccessAllowed()
|
||||
(WorkspaceModel.getInstance(project) as WorkspaceModelImpl).updateProjectModelSilent("Drop artifact mappings") {
|
||||
(project.workspaceModel as WorkspaceModelImpl).updateProjectModelSilent("Drop artifact mappings") {
|
||||
val map = it.mutableArtifactsMap
|
||||
it.entities(ArtifactEntity::class.java).filter(selector).forEach { artifact ->
|
||||
map.removeMapping(artifact)
|
||||
|
||||
Reference in New Issue
Block a user