mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-02-04 23:39:07 +07:00
IJent cleanup: extract method FsAndUserApi.create
GitOrigin-RevId: 82036afa1725914a7beb4dfb707b35bebd6c5003
This commit is contained in:
committed by
intellij-monorepo-bot
parent
a22f1c994e
commit
092fb70a2b
@@ -2,9 +2,7 @@
|
||||
package com.intellij.platform.ijent.community.impl.nio
|
||||
|
||||
import com.intellij.openapi.progress.runBlockingMaybeCancellable
|
||||
import com.intellij.platform.ijent.IjentInfo
|
||||
import com.intellij.platform.ijent.IjentPosixInfo
|
||||
import com.intellij.platform.ijent.IjentWindowsInfo
|
||||
import com.intellij.platform.ijent.*
|
||||
import com.intellij.platform.ijent.fs.*
|
||||
import kotlinx.coroutines.isActive
|
||||
import java.nio.file.FileStore
|
||||
@@ -26,6 +24,13 @@ class IjentNioFileSystem internal constructor(
|
||||
|
||||
data class Posix(override val fs: IjentFileSystemPosixApi, override val userInfo: IjentPosixInfo.User) : FsAndUserApi
|
||||
data class Windows(override val fs: IjentFileSystemWindowsApi, override val userInfo: IjentWindowsInfo.User) : FsAndUserApi
|
||||
|
||||
companion object {
|
||||
fun create(ijentApi: IjentApi): FsAndUserApi = when (ijentApi) {
|
||||
is IjentPosixApi -> Posix(ijentApi.fs, ijentApi.info.user)
|
||||
is IjentWindowsApi -> Windows(ijentApi.fs, ijentApi.info.user)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun close() {
|
||||
|
||||
@@ -2,11 +2,9 @@
|
||||
package com.intellij.platform.ijent.community.impl.nio
|
||||
|
||||
import com.intellij.platform.ijent.IjentId
|
||||
import com.intellij.platform.ijent.IjentPosixApi
|
||||
import com.intellij.platform.ijent.IjentSessionRegistry
|
||||
import com.intellij.platform.ijent.IjentWindowsApi
|
||||
import com.intellij.platform.ijent.community.impl.IjentFsResultImpl
|
||||
import com.intellij.platform.ijent.community.impl.nio.IjentNioFileSystem.*
|
||||
import com.intellij.platform.ijent.community.impl.nio.IjentNioFileSystem.FsAndUserApi
|
||||
import com.intellij.platform.ijent.community.impl.nio.IjentNioFileSystemProvider.UnixFilePermissionBranch.*
|
||||
import com.intellij.platform.ijent.fs.*
|
||||
import com.intellij.platform.ijent.fs.IjentFileInfo.Type.*
|
||||
@@ -51,13 +49,13 @@ class IjentNioFileSystemProvider : FileSystemProvider() {
|
||||
|
||||
val ijentId = IjentId(uri.host)
|
||||
|
||||
val fs = IjentNioFileSystem(
|
||||
this,
|
||||
when (val ijentApi = IjentSessionRegistry.instance().ijents[ijentId]) {
|
||||
is IjentPosixApi -> FsAndUserApi.Posix(ijentApi.fs, ijentApi.info.user)
|
||||
is IjentWindowsApi -> FsAndUserApi.Windows(ijentApi.fs, ijentApi.info.user)
|
||||
null -> throw IllegalArgumentException("$ijentApi is not registered in ${IjentSessionRegistry::class.java.simpleName}")
|
||||
})
|
||||
val ijentApi = IjentSessionRegistry.instance().ijents[ijentId]
|
||||
require(ijentApi != null) {
|
||||
"$ijentApi is not registered in ${IjentSessionRegistry::class.java.simpleName}"
|
||||
}
|
||||
val ijentFsAndUser = FsAndUserApi.create(ijentApi)
|
||||
|
||||
val fs = IjentNioFileSystem(this, ijentFsAndUser)
|
||||
|
||||
if (registeredFileSystems.putIfAbsent(ijentId, fs) != null) {
|
||||
throw FileSystemAlreadyExistsException("A filesystem for $ijentId is already registered")
|
||||
|
||||
Reference in New Issue
Block a user