[workspace model] IJPL-345 Rename VirtualFileUrlManager#fromUrl to VirtualFileUrlManager.getOrCreateFromUri

GitOrigin-RevId: 810c3ce308c902ea4e1acf479a0b781ce45b34bc
This commit is contained in:
Mikhail Mazurkevich
2024-01-23 12:09:15 +04:00
committed by intellij-monorepo-bot
parent 5dc4732274
commit 8101439d4a
82 changed files with 361 additions and 369 deletions

View File

@@ -28,7 +28,6 @@ import com.intellij.platform.workspace.storage.impl.VersionedEntityStorageOnBuil
import com.intellij.platform.workspace.storage.url.VirtualFileUrlManager
import com.intellij.util.EventDispatcher
import com.intellij.workspaceModel.ide.getInstance
import com.intellij.workspaceModel.ide.impl.WorkspaceModelImpl
import com.intellij.workspaceModel.ide.toExternalSource
import io.opentelemetry.api.metrics.Meter
import org.jetbrains.annotations.NonNls
@@ -175,7 +174,7 @@ open class ArtifactBridge(
}
override fun setOutputPath(outputPath: String?) {
val outputUrl = outputPath?.let { VirtualFileUrlManager.getInstance(project).fromUrl(VfsUtilCore.pathToUrl(it)) }
val outputUrl = outputPath?.let { VirtualFileUrlManager.getInstance(project).getOrCreateFromUri(VfsUtilCore.pathToUrl(it)) }
val entity = diff.get(artifactId)
diff.modifyEntity(entity) {
this.outputUrl = outputUrl

View File

@@ -34,7 +34,6 @@ import com.intellij.util.containers.mapInPlace
import com.intellij.util.text.UniqueNameGenerator
import com.intellij.workspaceModel.ide.getInstance
import com.intellij.workspaceModel.ide.impl.LegacyBridgeJpsEntitySourceFactory
import com.intellij.workspaceModel.ide.impl.WorkspaceModelImpl
import io.opentelemetry.api.metrics.Meter
import java.util.concurrent.atomic.AtomicLong
@@ -143,7 +142,7 @@ class ArtifactModifiableModelBridge(
}
}
val outputUrl = outputPath?.let { fileManager.fromUrl(VfsUtilCore.pathToUrl(it)) }
val outputUrl = outputPath?.let { fileManager.getOrCreateFromUri(VfsUtilCore.pathToUrl(it)) }
val artifactEntity = diff addEntity ArtifactEntity(uniqueName, artifactType.id, false, source) {
this.outputUrl = outputUrl
this.rootElement = rootElementEntity

View File

@@ -43,7 +43,7 @@ public class DirectoryCopyPackagingElement extends FileOrDirectoryCopyPackagingE
VirtualFileUrlManager fileUrlManager = VirtualFileUrls.getVirtualFileUrlManager(project);
Objects.requireNonNull(myFilePath, "filePath is not specified");
VirtualFileUrl fileUrl = fileUrlManager.fromUrl(VfsUtilCore.pathToUrl(myFilePath));
VirtualFileUrl fileUrl = fileUrlManager.getOrCreateFromUri(VfsUtilCore.pathToUrl(myFilePath));
DirectoryCopyPackagingElementEntity addedEntity = diff.addEntity(DirectoryCopyPackagingElementEntity.create(fileUrl, source));
diff.getMutableExternalMapping(PackagingExternalMapping.key).addMapping(addedEntity, this);
return addedEntity;

View File

@@ -110,7 +110,7 @@ public class ExtractedDirectoryPackagingElement extends FileOrDirectoryCopyPacka
VirtualFileUrlManager fileUrlManager = VirtualFileUrls.getVirtualFileUrlManager(project);
Objects.requireNonNull(this.myFilePath, "filePath is not specified");
Objects.requireNonNull(this.myPathInJar, "pathInJar is not specified");
VirtualFileUrl fileUrl = fileUrlManager.fromUrl(VfsUtilCore.pathToUrl(this.myFilePath));
VirtualFileUrl fileUrl = fileUrlManager.getOrCreateFromUri(VfsUtilCore.pathToUrl(this.myFilePath));
ExtractedDirectoryPackagingElementEntity addedEntity = diff.addEntity(ExtractedDirectoryPackagingElementEntity.create(fileUrl, this.myPathInJar, source));
diff.getMutableExternalMapping(PackagingExternalMapping.key).addMapping(addedEntity, this);

View File

@@ -148,7 +148,7 @@ public class FileCopyPackagingElement extends FileOrDirectoryCopyPackagingElemen
Objects.requireNonNull(filePath, "filePath is not specified");
FileCopyPackagingElementEntity addedEntity;
VirtualFileUrlManager fileUrlManager = VirtualFileUrls.getVirtualFileUrlManager(project);
VirtualFileUrl fileUrl = fileUrlManager.fromUrl(VfsUtilCore.pathToUrl(filePath));
VirtualFileUrl fileUrl = fileUrlManager.getOrCreateFromUri(VfsUtilCore.pathToUrl(filePath));
if (renamedOutputFileName != null) {
addedEntity = diff.addEntity(FileCopyPackagingElementEntity.create(fileUrl, source, entityBuilder -> {
entityBuilder.setRenamedOutputFileName(renamedOutputFileName);

View File

@@ -75,7 +75,7 @@ public abstract class FileOrDirectoryCopyPackagingElement<T extends FileOrDirect
builder.modifyEntity(FileOrDirectoryPackagingElementEntity.Builder.class, entity, ent -> {
VirtualFileUrlManager manager = VirtualFileUrls.getVirtualFileUrlManager(myProject);
if (filePath != null) {
VirtualFileUrl fileUrl = manager.fromUrl(VfsUtilCore.pathToUrl(filePath));
VirtualFileUrl fileUrl = manager.getOrCreateFromUri(VfsUtilCore.pathToUrl(filePath));
ent.setFilePath(fileUrl);
}
else {

View File

@@ -41,7 +41,6 @@ import com.intellij.testFramework.workspaceModel.updateProjectModel
import com.intellij.util.ConcurrencyUtil
import com.intellij.util.concurrency.AppExecutorUtil
import com.intellij.workspaceModel.ide.getInstance
import com.intellij.workspaceModel.ide.impl.WorkspaceModelImpl
import junit.framework.TestCase
import org.junit.runner.RunWith
import java.util.concurrent.Callable
@@ -143,7 +142,7 @@ class ArtifactTest : ArtifactsTestCase() {
val artifactEntity = builder.entities(ArtifactEntity::class.java).single()
val elementEntity = artifactEntity.rootElement!!.children.single() as FileCopyPackagingElementEntity
builder.modifyEntity(FileCopyPackagingElementEntity.Builder::class.java, elementEntity) {
filePath = VirtualFileUrlManager.getInstance(project).fromUrl(VfsUtilCore.pathToUrl(file2.systemIndependentPath))
filePath = VirtualFileUrlManager.getInstance(project).getOrCreateFromUri(VfsUtilCore.pathToUrl(file2.systemIndependentPath))
}
}
}

View File

@@ -31,8 +31,8 @@ class ArtifactWatchRootsTest : ArtifactsTestCase() {
}
val virtualFileUrlManager = VirtualFileUrlManager.getInstance(project)
val outputVirtualUrl = virtualFileUrlManager.fromUrl(VfsUtilCore.pathToUrl(outputDir.path))
val fileVirtualUrl = virtualFileUrlManager.fromUrl(VfsUtilCore.pathToUrl(file.path))
val outputVirtualUrl = virtualFileUrlManager.getOrCreateFromUri(VfsUtilCore.pathToUrl(outputDir.path))
val fileVirtualUrl = virtualFileUrlManager.getOrCreateFromUri(VfsUtilCore.pathToUrl(file.path))
runWriteAction {
WorkspaceModel.getInstance(project).updateProjectModel {
val fileCopy = it addEntity FileCopyPackagingElementEntity(fileVirtualUrl, MySource)

View File

@@ -155,7 +155,7 @@ private fun convertToRepositoryLibraryAction(
val urlManager = VirtualFileUrlManager.getInstance(project)
libraryEditor.getUrls(OrderRootType.CLASSES)
.asSequence()
.map { urlString -> urlManager.fromUrl(urlString) }
.map { urlString -> urlManager.getOrCreateFromUri(urlString) }
.map { url -> LibraryRoot(url, LibraryRootTypeId.COMPILED) }
.forEach { root -> roots.add(root) }
}

View File

@@ -38,7 +38,7 @@ internal class CompilerModuleExtensionBridge(
private fun getCompilerOutput(): VirtualFileUrl? = when {
isCompilerOutputPathInherited -> {
val url = CompilerProjectExtension.getInstance(module.project)?.compilerOutputUrl
if (url != null) virtualFileManager.fromUrl(url + "/" + PRODUCTION + "/" + getSanitizedModuleName()) else null
if (url != null) virtualFileManager.getOrCreateFromUri(url + "/" + PRODUCTION + "/" + getSanitizedModuleName()) else null
}
else -> javaSettings?.compilerOutput
}
@@ -46,7 +46,7 @@ internal class CompilerModuleExtensionBridge(
private fun getCompilerOutputForTests(): VirtualFileUrl? = when {
isCompilerOutputPathInherited -> {
val url = CompilerProjectExtension.getInstance(module.project)?.compilerOutputUrl
if (url != null) virtualFileManager.fromUrl(url + "/" + TEST + "/" + getSanitizedModuleName()) else null
if (url != null) virtualFileManager.getOrCreateFromUri(url + "/" + TEST + "/" + getSanitizedModuleName()) else null
}
else -> javaSettings?.compilerOutputForTests
}
@@ -97,7 +97,7 @@ internal class CompilerModuleExtensionBridge(
override fun setCompilerOutputPath(url: String?) {
if (compilerOutputUrl == url) return
updateJavaSettings { compilerOutput = url?.let { virtualFileManager.fromUrl(it) } }
updateJavaSettings { compilerOutput = url?.let { virtualFileManager.getOrCreateFromUri(it) } }
}
override fun setCompilerOutputPathForTests(file: VirtualFile?) {
@@ -107,7 +107,7 @@ internal class CompilerModuleExtensionBridge(
override fun setCompilerOutputPathForTests(url: String?) {
if (compilerOutputUrlForTests == url) return
updateJavaSettings { compilerOutputForTests = url?.let { virtualFileManager.fromUrl(it) } }
updateJavaSettings { compilerOutputForTests = url?.let { virtualFileManager.getOrCreateFromUri(it) } }
}
override fun inheritCompilerOutputPath(inherit: Boolean) {

View File

@@ -33,4 +33,4 @@ public val VirtualFileUrl.virtualFile: VirtualFile?
*
* **Important Note:** method can return different instances of `VirtualFileUrl` for the same `VirtualFile`, e.g. if the file was moved.
*/
public fun VirtualFile.toVirtualFileUrl(virtualFileManager: VirtualFileUrlManager): VirtualFileUrl = virtualFileManager.fromUrl(this.url)
public fun VirtualFile.toVirtualFileUrl(virtualFileManager: VirtualFileUrlManager): VirtualFileUrl = virtualFileManager.getOrCreateFromUri(this.url)

View File

@@ -206,7 +206,7 @@ public final class ContentRootDataService extends AbstractProjectDataService<Con
if (modelsProvider instanceof IdeModifiableModelsProviderImpl impl) {
MutableEntityStorage diff = impl.getActualStorageBuilder();
VirtualFileUrl vfu = project.getService(VirtualFileUrlManager.class).fromUrl(contentEntry.getUrl());
VirtualFileUrl vfu = project.getService(VirtualFileUrlManager.class).getOrCreateFromUri(contentEntry.getUrl());
Pair<WorkspaceEntity, String> result = ContainerUtil.find(diff.getVirtualFileUrlIndex().findEntitiesByUrl(vfu).iterator(), pair -> {
return "url".equals(pair.component2()) && pair.component1() instanceof ContentRootEntity;
});

View File

@@ -14,7 +14,7 @@ internal fun createScratchRootsEntityForProject(project: Project): ScratchRootsE
val urlManager = VirtualFileUrlManager.getInstance(project)
val urls = RootType.getAllRootTypes().filter { !it.isHidden }.map {
scratchFileService.getRootPath(it)
}.sorted().map { urlManager.fromUrl(VfsUtilCore.pathToUrl(it)) }.toList()
}.sorted().map { urlManager.getOrCreateFromUri(VfsUtilCore.pathToUrl(it)) }.toList()
return ScratchRootsEntity(urls, ScratchRootsEntitySource)
}

View File

@@ -62,12 +62,12 @@ class SdkTableBridgeImpl: SdkTableImplementationDelegate {
val sdkEntitySource = SdkBridgeImpl.createEntitySourceForSdk()
val virtualFileUrlManager = VirtualFileUrlManager.getGlobalInstance()
val homePathVfu = delegateSdk.homePath?.let { virtualFileUrlManager.fromUrl(it) }
val homePathVfu = delegateSdk.homePath?.let { virtualFileUrlManager.getOrCreateFromUri(it) }
val roots = mutableListOf<SdkRoot>()
for (type in OrderRootType.getAllPersistentTypes()) {
sdk.rootProvider.getUrls(type).forEach { url ->
roots.add(SdkRoot(virtualFileUrlManager.fromUrl(url), rootTypes[type.customName]!!))
roots.add(SdkRoot(virtualFileUrlManager.getOrCreateFromUri(url), rootTypes[type.customName]!!))
}
}

View File

@@ -92,7 +92,7 @@ open class VirtualFileUrlWatcher(val project: Project) {
isInsideFilePointersUpdate = true
val entityWithVirtualFileUrl = mutableListOf<EntityWithVirtualFileUrl>()
WorkspaceModel.getInstance(project).updateProjectModel("On VFS change") { diff ->
val oldFileUrl = virtualFileManager.fromUrl(oldUrl)
val oldFileUrl = virtualFileManager.getOrCreateFromUri(oldUrl)
calculateAffectedEntities(diff, oldFileUrl, entityWithVirtualFileUrl)
oldFileUrl.subTreeFileUrls.map { fileUrl -> calculateAffectedEntities(diff, fileUrl, entityWithVirtualFileUrl) }
val result = entityWithVirtualFileUrl.filter { shouldUpdateThisEntity(it.entity) }.toList()
@@ -151,7 +151,7 @@ private class EntitySourceFileWatcher<T : EntitySource>(
val urlFromContainer = containerToUrl(entitySource as T)
if (!FileUtil.startsWith(urlFromContainer, oldUrl)) continue
val newVfsUrl = virtualFileManager.fromUrl(newUrl + urlFromContainer.substring(oldUrl.length))
val newVfsUrl = virtualFileManager.getOrCreateFromUri(newUrl + urlFromContainer.substring(oldUrl.length))
val newEntitySource = createNewSource(entitySource, newVfsUrl)
entities.forEach { entity ->
@@ -185,7 +185,7 @@ private class EntityVirtualFileUrlWatcher<E : WorkspaceEntity, M : WorkspaceEnti
val savedUrl = existingVirtualFileUrl.url
val newTrackedUrl = newUrl + savedUrl.substring(oldUrl.length)
val newContainer = virtualFileManager.fromUrl(newTrackedUrl)
val newContainer = virtualFileManager.getOrCreateFromUri(newTrackedUrl)
@Suppress("UNCHECKED_CAST")
entityWithVFU.entity as E
diff.modifyEntity(modifiableEntityClass.java, entityWithVFU.entity) {
@@ -209,7 +209,7 @@ private class LibraryRootFileWatcher : LegacyFileWatcher {
diff: MutableEntityStorage) {
entitiesWithVFU.filter { LibraryEntity::class.isInstance(it.entity) && it.propertyName == propertyName }.forEach { entityWithVFU ->
val oldVFU = entityWithVFU.virtualFileUrl
val newVFU = virtualFileManager.fromUrl(newUrl + oldVFU.url.substring(oldUrl.length))
val newVFU = virtualFileManager.getOrCreateFromUri(newUrl + oldVFU.url.substring(oldUrl.length))
entityWithVFU.entity as LibraryEntity
val oldLibraryRoots = diff.resolve(entityWithVFU.entity.symbolicId)?.roots?.filter { it.url == oldVFU }
@@ -239,7 +239,7 @@ private class SdkRootFileWatcher : LegacyFileWatcher {
diff: MutableEntityStorage) {
entitiesWithVFU.filter { SdkEntity::class.isInstance(it.entity) && it.propertyName == propertyName }.forEach { entityWithVFU ->
val oldVFU = entityWithVFU.virtualFileUrl
val newVFU = virtualFileManager.fromUrl(newUrl + oldVFU.url.substring(oldUrl.length))
val newVFU = virtualFileManager.getOrCreateFromUri(newUrl + oldVFU.url.substring(oldUrl.length))
entityWithVFU.entity as SdkEntity
val oldSdkRoots = diff.resolve(entityWithVFU.entity.symbolicId)?.roots?.filter { it.url == oldVFU }

View File

@@ -40,7 +40,7 @@ public abstract class EntityIndexingServiceTestBase extends HeavyPlatformTestCas
@NotNull
protected VirtualFileUrl getUrl(@NotNull VirtualFile file) {
return fileUrlManager.fromUrl(file.getUrl());
return fileUrlManager.getOrCreateFromUri(file.getUrl());
}
@NotNull

View File

@@ -399,10 +399,10 @@ class ModuleRootsInProjectFileIndexTest {
runWriteActionAndWait {
WorkspaceModel.getInstance(projectModel.project).updateProjectModel {
val module = it.resolve(ModuleId(module.name))!!
it addEntity ContentRootEntity(urlManager.fromUrl(rootUrl),
it addEntity ContentRootEntity(urlManager.getOrCreateFromUri(rootUrl),
emptyList<@NlsSafe String>(),
module.entitySource) {
excludedUrls = listOf(urlManager.fromUrl(excludedUrl)).map {
excludedUrls = listOf(urlManager.getOrCreateFromUri(excludedUrl)).map {
ExcludeUrlEntity(it, module.entitySource)
}
this.module = module

View File

@@ -73,7 +73,7 @@ internal class NonExistingWorkspaceRootsRegistry(private val project: Project, p
for (event in events) {
when (event) {
is VFileDeleteEvent ->
calculateEntityChangesIfNeeded(virtualFileManager.fromUrl(event.file.url), event.file, entityChanges, entityStorage, true)
calculateEntityChangesIfNeeded(virtualFileManager.getOrCreateFromUri(event.file.url), event.file, entityChanges, entityStorage, true)
is VFileCreateEvent -> {
val parentUrl = event.parent.url
val protocolEnd = parentUrl.indexOf(URLUtil.SCHEME_SEPARATOR)
@@ -83,23 +83,23 @@ internal class NonExistingWorkspaceRootsRegistry(private val project: Project, p
else {
VfsUtilCore.pathToUrl(event.path)
}
val virtualFileUrl = virtualFileManager.fromUrl(url)
val virtualFileUrl = virtualFileManager.getOrCreateFromUri(url)
calculateEntityChangesIfNeeded(virtualFileUrl, null, entityChanges, entityStorage, false)
if (url.startsWith(URLUtil.FILE_PROTOCOL) && (event.isDirectory || event.childName.endsWith(".jar"))) {
//if a new directory or a new jar file is created, we may have roots pointing to files under it with jar protocol
val suffix = if (event.isDirectory) "" else URLUtil.JAR_SEPARATOR
val jarFileUrl = URLUtil.JAR_PROTOCOL + URLUtil.SCHEME_SEPARATOR + URLUtil.urlToPath(url) + suffix
val jarVirtualFileUrl = virtualFileManager.fromUrl(jarFileUrl)
val jarVirtualFileUrl = virtualFileManager.getOrCreateFromUri(jarFileUrl)
calculateEntityChangesIfNeeded(jarVirtualFileUrl, null, entityChanges, entityStorage, false)
}
}
is VFileCopyEvent -> calculateEntityChangesIfNeeded(virtualFileManager.fromUrl(VfsUtilCore.pathToUrl(event.path)), null, entityChanges,
is VFileCopyEvent -> calculateEntityChangesIfNeeded(virtualFileManager.getOrCreateFromUri(VfsUtilCore.pathToUrl(event.path)), null, entityChanges,
entityStorage, false)
is VFilePropertyChangeEvent, is VFileMoveEvent -> {
val (oldUrl, newUrl) = getOldAndNewUrls(event)
if (oldUrl != newUrl) {
calculateEntityChangesIfNeeded(virtualFileManager.fromUrl(oldUrl), event.file, entityChanges, entityStorage, true)
calculateEntityChangesIfNeeded(virtualFileManager.fromUrl(newUrl), null, entityChanges, entityStorage, false)
calculateEntityChangesIfNeeded(virtualFileManager.getOrCreateFromUri(oldUrl), event.file, entityChanges, entityStorage, true)
calculateEntityChangesIfNeeded(virtualFileManager.getOrCreateFromUri(newUrl), null, entityChanges, entityStorage, false)
}
}
}

View File

@@ -104,7 +104,7 @@ internal class NonIncrementalContributors(private val project: Project,
}
}
else {
excludedUrls.add(virtualFileUrlManager.fromUrl(url))
excludedUrls.add(virtualFileUrlManager.getOrCreateFromUri(url))
}
}
policy.excludeSdkRootsStrategy?.let { strategy ->
@@ -131,7 +131,7 @@ internal class NonIncrementalContributors(private val project: Project,
}
}
else {
excludedUrls.add(virtualFileUrlManager.fromUrl(pointer.url))
excludedUrls.add(virtualFileUrlManager.getOrCreateFromUri(pointer.url))
}
}
}

View File

@@ -18,14 +18,14 @@ fun getJpsProjectConfigLocation(project: Project): JpsProjectConfigLocation? {
val virtualFileUrlManager = VirtualFileUrlManager.getInstance(project)
val ideaFolder = project.stateStore.directoryStorePath!!.toVirtualFileUrl(virtualFileUrlManager)
val baseUrl = VfsUtilCore.pathToUrl(it)
JpsProjectConfigLocation.DirectoryBased(virtualFileUrlManager.fromUrl(baseUrl), ideaFolder)
JpsProjectConfigLocation.DirectoryBased(virtualFileUrlManager.getOrCreateFromUri(baseUrl), ideaFolder)
}
}
else {
project.projectFilePath?.let {
val virtualFileUrlManager = VirtualFileUrlManager.getInstance(project)
val projectFileUrl = VfsUtilCore.pathToUrl(it)
val iprFile = virtualFileUrlManager.fromUrl(projectFileUrl)
val iprFile = virtualFileUrlManager.getOrCreateFromUri(projectFileUrl)
JpsProjectConfigLocation.FileBased(iprFile, iprFile.parent!!)
}
}

View File

@@ -329,7 +329,7 @@ class GlobalWorkspaceModel : Disposable {
}
}
private fun VirtualFileUrl.createCopyAtManager(manager: VirtualFileUrlManager): VirtualFileUrl = manager.fromUrl(url)
private fun VirtualFileUrl.createCopyAtManager(manager: VirtualFileUrlManager): VirtualFileUrl = manager.getOrCreateFromUri(url)
private fun ExcludeUrlEntity.copy(entitySource: EntitySource, manager: VirtualFileUrlManager): ExcludeUrlEntity =
ExcludeUrlEntity(url.createCopyAtManager(manager), entitySource)

View File

@@ -60,7 +60,7 @@ object LegacyBridgeJpsEntitySourceFactory {
fun createEntitySourceForGlobalLibrary(): EntitySource {
val virtualFileUrlManager = VirtualFileUrlManager.getGlobalInstance()
val globalLibrariesFile = virtualFileUrlManager.fromUrl(PathManager.getOptionsFile(JpsGlobalEntitiesSerializers.GLOBAL_LIBRARIES_FILE_NAME).absolutePath)
val globalLibrariesFile = virtualFileUrlManager.getOrCreateFromUri(PathManager.getOptionsFile(JpsGlobalEntitiesSerializers.GLOBAL_LIBRARIES_FILE_NAME).absolutePath)
return JpsGlobalFileEntitySource(globalLibrariesFile)
}

View File

@@ -188,7 +188,7 @@ internal class LibraryModifiableModelBridgeImpl(
assertModelIsLive()
val rootTypeId = rootType.toLibraryRootType()
val virtualFileUrl = virtualFileManager.fromUrl(url)
val virtualFileUrl = virtualFileManager.getOrCreateFromUri(url)
val inclusionOptions = if (recursive) LibraryRoot.InclusionOptions.ARCHIVES_UNDER_ROOT_RECURSIVELY else LibraryRoot.InclusionOptions.ARCHIVES_UNDER_ROOT
update {
@@ -208,7 +208,7 @@ internal class LibraryModifiableModelBridgeImpl(
override fun moveRootUp(url: String, rootType: OrderRootType) {
assertModelIsLive()
val virtualFileUrl = virtualFileManager.fromUrl(url)
val virtualFileUrl = virtualFileManager.getOrCreateFromUri(url)
update {
val index = roots.indexOfFirst { it.url == virtualFileUrl }
@@ -225,7 +225,7 @@ internal class LibraryModifiableModelBridgeImpl(
override fun moveRootDown(url: String, rootType: OrderRootType) {
assertModelIsLive()
val virtualFileUrl = virtualFileManager.fromUrl(url)
val virtualFileUrl = virtualFileManager.getOrCreateFromUri(url)
update {
val index = roots.indexOfFirst { it.url == virtualFileUrl }
@@ -256,7 +256,7 @@ internal class LibraryModifiableModelBridgeImpl(
override fun addExcludedRoot(url: String) {
assertModelIsLive()
val virtualFileUrl = virtualFileManager.fromUrl(url)
val virtualFileUrl = virtualFileManager.getOrCreateFromUri(url)
update {
if (!excludedRoots.map { it.url }.contains(virtualFileUrl)) {
@@ -272,7 +272,7 @@ internal class LibraryModifiableModelBridgeImpl(
override fun addRoot(url: String, rootType: OrderRootType) {
assertModelIsLive()
val virtualFileUrl = virtualFileManager.fromUrl(url)
val virtualFileUrl = virtualFileManager.getOrCreateFromUri(url)
val root = LibraryRoot(
url = virtualFileUrl,
@@ -337,7 +337,7 @@ internal class LibraryModifiableModelBridgeImpl(
override fun removeRoot(url: String, rootType: OrderRootType): Boolean {
assertModelIsLive()
val virtualFileUrl = virtualFileManager.fromUrl(url)
val virtualFileUrl = virtualFileManager.getOrCreateFromUri(url)
if (!currentLibrary.getUrls(rootType).contains(virtualFileUrl.url)) return false
@@ -359,7 +359,7 @@ internal class LibraryModifiableModelBridgeImpl(
override fun removeExcludedRoot(url: String): Boolean {
assertModelIsLive()
val virtualFileUrl = virtualFileManager.fromUrl(url)
val virtualFileUrl = virtualFileManager.getOrCreateFromUri(url)
val excludeUrlEntity = currentLibrary.libraryEntity.excludedRoots.find { it.url == virtualFileUrl }
if (excludeUrlEntity == null) return false

View File

@@ -91,7 +91,7 @@ internal class ModifiableModuleModelBridgeImpl(
}
val parentPath = PathUtil.getParentPath(canonicalPath)
val baseModuleDir = VirtualFileUrlManager.getInstance(project).fromUrl(VfsUtilCore.pathToUrl(parentPath))
val baseModuleDir = VirtualFileUrlManager.getInstance(project).getOrCreateFromUri(VfsUtilCore.pathToUrl(parentPath))
val entitySource = LegacyBridgeJpsEntitySourceFactory.createEntitySourceForModule(
project = project,
baseModuleDir = baseModuleDir,

View File

@@ -137,10 +137,10 @@ internal class ModifiableContentEntryBridge(
}
override fun addExcludeFolder(file: VirtualFile): ExcludeFolder = addExcludeFolder(file.toVirtualFileUrl(virtualFileManager), false)
override fun addExcludeFolder(url: String): ExcludeFolder = addExcludeFolder(virtualFileManager.fromUrl(url), false)
override fun addExcludeFolder(url: String): ExcludeFolder = addExcludeFolder(virtualFileManager.getOrCreateFromUri(url), false)
override fun addExcludeFolder(url: String, isAutomaticallyImported: Boolean): ExcludeFolder {
return addExcludeFolder(virtualFileManager.fromUrl(url), isAutomaticallyImported)
return addExcludeFolder(virtualFileManager.getOrCreateFromUri(url), isAutomaticallyImported)
}
override fun removeExcludeFolder(excludeFolder: ExcludeFolder) {
@@ -164,7 +164,7 @@ internal class ModifiableContentEntryBridge(
override fun removeExcludeFolder(url: String): Boolean {
LOG.debugWithTrace { "Remove exclude folder for url: $url." }
val virtualFileUrl = virtualFileManager.fromUrl(url)
val virtualFileUrl = virtualFileManager.getOrCreateFromUri(url)
val excludedUrls = currentContentEntry.value.entity.excludedUrls.map { it.url }
if (!excludedUrls.contains(virtualFileUrl)) return false
@@ -246,7 +246,7 @@ internal class ModifiableContentEntryBridge(
isAutomaticallyImported: Boolean): SourceFolder {
val contentRootSource = currentContentEntry.value.entity.entitySource
val source = if (isAutomaticallyImported) contentRootSource else getInternalFileSource(contentRootSource) ?: contentRootSource
return addSourceFolder(virtualFileManager.fromUrl(url), type, type.createDefaultProperties(), source)
return addSourceFolder(virtualFileManager.getOrCreateFromUri(url), type, type.createDefaultProperties(), source)
}
override fun <P : JpsElement> addSourceFolder(file: VirtualFile, type: JpsModuleSourceRootType<P>, properties: P): SourceFolder {
@@ -258,7 +258,7 @@ internal class ModifiableContentEntryBridge(
override fun <P : JpsElement> addSourceFolder(url: String, type: JpsModuleSourceRootType<P>, properties: P): SourceFolder {
val contentRootSource = currentContentEntry.value.entity.entitySource
val source: EntitySource = getInternalFileSource(contentRootSource) ?: contentRootSource
return addSourceFolder(virtualFileManager.fromUrl(url), type, properties, source)
return addSourceFolder(virtualFileManager.getOrCreateFromUri(url), type, properties, source)
}
override fun <P : JpsElement> addSourceFolder(url: String,
@@ -267,7 +267,7 @@ internal class ModifiableContentEntryBridge(
isAutomaticallyImported: Boolean): SourceFolder {
val contentRootSource = currentContentEntry.value.entity.entitySource
val source = if (isAutomaticallyImported) contentRootSource else getInternalFileSource(contentRootSource) ?: contentRootSource
return addSourceFolder(virtualFileManager.fromUrl(url), type, properties, source)
return addSourceFolder(virtualFileManager.getOrCreateFromUri(url), type, properties, source)
}
override fun <P : JpsElement> addSourceFolder(url: String,
@@ -276,7 +276,7 @@ internal class ModifiableContentEntryBridge(
externalSource: ProjectModelExternalSource?): SourceFolder {
val contentRootSource = currentContentEntry.value.entity.entitySource
val source = if (externalSource != null) contentRootSource else getInternalFileSource(contentRootSource) ?: contentRootSource
return addSourceFolder(virtualFileManager.fromUrl(url), type, properties, source)
return addSourceFolder(virtualFileManager.getOrCreateFromUri(url), type, properties, source)
}
override fun getFile(): VirtualFile? = currentContentEntry.value.file

View File

@@ -215,7 +215,7 @@ class ModifiableRootModelBridgeImpl(
}
private fun addEntityAndContentEntry(url: String, entitySource: EntitySource): ContentEntry {
val virtualFileUrl = virtualFileManager.fromUrl(url)
val virtualFileUrl = virtualFileManager.getOrCreateFromUri(url)
val existingEntry = contentEntries.firstOrNull { it.contentEntryUrl == virtualFileUrl }
if (existingEntry != null) {
return existingEntry

View File

@@ -43,12 +43,12 @@ class OrderRootsCacheBridge(val project: Project, parentDisposable: Disposable)
val key = CacheKey(rootType, flags)
var virtualFileUrls: List<VirtualFileUrlBridge>? = null
if (myRootUrls.get()?.get(key) == null) {
virtualFileUrls = rootUrlsComputer.get().map { virtualFileUrlManager.fromUrl(it) as VirtualFileUrlBridge }
virtualFileUrls = rootUrlsComputer.get().map { virtualFileUrlManager.getOrCreateFromUri(it) as VirtualFileUrlBridge }
ConcurrencyUtil.cacheOrGet(myRootUrls, ConcurrentHashMap()).computeIfAbsent(key) { ArrayUtil.toStringArray(virtualFileUrls!!.map { it.url }) }
}
if (myRootVirtualFiles.get()?.get(key) == null) {
if (virtualFileUrls == null) {
virtualFileUrls = rootUrlsComputer.get().map { virtualFileUrlManager.fromUrl(it) as VirtualFileUrlBridge }
virtualFileUrls = rootUrlsComputer.get().map { virtualFileUrlManager.getOrCreateFromUri(it) as VirtualFileUrlBridge }
}
ConcurrencyUtil.cacheOrGet(myRootVirtualFiles, ConcurrentHashMap()).computeIfAbsent(key) {
VfsUtilCore.toVirtualFileArray(virtualFileUrls.mapNotNull { it.file })

View File

@@ -183,7 +183,7 @@ class SdkBridgeImpl(private var sdkEntityBuilder: SdkEntity.Builder) : UserDataH
fun createEmptySdkEntity(name: String, type: String, homePath: String = "", version: String? = null): SdkEntity.Builder {
val sdkEntitySource = createEntitySourceForSdk()
val virtualFileUrlManager = VirtualFileUrlManager.getGlobalInstance()
val homePathVfu = virtualFileUrlManager.fromUrl(homePath)
val homePathVfu = virtualFileUrlManager.getOrCreateFromUri(homePath)
return SdkEntity(name, type, emptyList(), "", sdkEntitySource) {
this.homePath = homePathVfu
this.version = version
@@ -192,7 +192,7 @@ class SdkBridgeImpl(private var sdkEntityBuilder: SdkEntity.Builder) : UserDataH
fun createEntitySourceForSdk(): EntitySource {
val virtualFileUrlManager = VirtualFileUrlManager.getGlobalInstance()
val globalLibrariesFile = virtualFileUrlManager.fromUrl(
val globalLibrariesFile = virtualFileUrlManager.getOrCreateFromUri(
PathManager.getOptionsFile(JpsGlobalEntitiesSerializers.SDK_FILE_NAME).absolutePath)
return JpsGlobalFileEntitySource(globalLibrariesFile)
}

View File

@@ -55,7 +55,7 @@ class SdkModificatorBridgeImpl(private val originalEntity: SdkEntity.Builder,
override fun setHomePath(path: String?) {
modifiedSdkEntity.homePath = if (path != null) {
val globalInstance = VirtualFileUrlManager.getGlobalInstance()
globalInstance.fromUrl(path)
globalInstance.getOrCreateFromUri(path)
} else {
null
}
@@ -86,7 +86,7 @@ class SdkModificatorBridgeImpl(private val originalEntity: SdkEntity.Builder,
override fun addRoot(root: VirtualFile, rootType: OrderRootType) {
val virtualFileUrlManager = VirtualFileUrlManager.getGlobalInstance()
modifiedSdkEntity.roots.add(
SdkRoot(virtualFileUrlManager.fromUrl(root.url), rootTypes[rootType.customName]!!)
SdkRoot(virtualFileUrlManager.getOrCreateFromUri(root.url), rootTypes[rootType.customName]!!)
)
}

View File

@@ -55,8 +55,8 @@ internal object JavaSettingsSerializer {
excludeOutput = excludeOutput != null,
entitySource = contentRotEntitySource
) {
this.compilerOutput = compilerOutput?.let { context.virtualFileUrlManager.fromUrl(it) }
this.compilerOutputForTests = compilerOutputForTests?.let { context.virtualFileUrlManager.fromUrl(it) }
this.compilerOutput = compilerOutput?.let { context.virtualFileUrlManager.getOrCreateFromUri(it) }
this.compilerOutputForTests = compilerOutputForTests?.let { context.virtualFileUrlManager.getOrCreateFromUri(it) }
this.languageLevelId = languageLevel
}
}

View File

@@ -5,7 +5,6 @@ import com.intellij.java.workspace.entities.*
import com.intellij.openapi.diagnostic.debug
import com.intellij.openapi.diagnostic.logger
import com.intellij.openapi.util.JDOMUtil
import com.intellij.platform.diagnostic.telemetry.helpers.addElapsedTimeMillis
import com.intellij.platform.diagnostic.telemetry.helpers.addMeasuredTimeMillis
import com.intellij.platform.workspace.jps.*
import com.intellij.platform.workspace.jps.entities.LibraryId
@@ -38,7 +37,7 @@ internal class JpsArtifactsDirectorySerializerFactory(override val directoryUrl:
override fun createSerializer(fileUrl: String,
entitySource: JpsProjectFileEntitySource.FileInDirectory,
virtualFileManager: VirtualFileUrlManager): JpsArtifactEntitiesSerializer {
return JpsArtifactEntitiesSerializer(virtualFileManager.fromUrl(fileUrl), entitySource, false, virtualFileManager)
return JpsArtifactEntitiesSerializer(virtualFileManager.getOrCreateFromUri(fileUrl), entitySource, false, virtualFileManager)
}
override fun getDefaultFileName(entity: ArtifactEntity): String {

View File

@@ -20,7 +20,7 @@ object JpsGlobalEntitiesSerializers {
serializers.add(createSdkSerializer(virtualFileUrlManager, sortedRootTypes) as JpsFileEntityTypeSerializer<WorkspaceEntity>)
}
val globalLibrariesFile = virtualFileUrlManager.fromUrl(PathManager.getOptionsFile(GLOBAL_LIBRARIES_FILE_NAME).absolutePath)
val globalLibrariesFile = virtualFileUrlManager.getOrCreateFromUri(PathManager.getOptionsFile(GLOBAL_LIBRARIES_FILE_NAME).absolutePath)
val globalLibrariesEntitySource = JpsGlobalFileEntitySource(globalLibrariesFile)
serializers.add(JpsGlobalLibrariesFileSerializer(globalLibrariesEntitySource) as JpsFileEntityTypeSerializer<WorkspaceEntity>)
@@ -28,7 +28,7 @@ object JpsGlobalEntitiesSerializers {
}
fun createSdkSerializer(virtualFileUrlManager: VirtualFileUrlManager, sortedRootTypes: List<String>): JpsSdkEntitySerializer {
val globalSdkFile = virtualFileUrlManager.fromUrl(PathManager.getOptionsFile(SDK_FILE_NAME).absolutePath)
val globalSdkFile = virtualFileUrlManager.getOrCreateFromUri(PathManager.getOptionsFile(SDK_FILE_NAME).absolutePath)
val globalSdkEntitySource = JpsGlobalFileEntitySource(globalSdkFile)
return JpsSdkEntitySerializer(globalSdkEntitySource, sortedRootTypes)
}

View File

@@ -5,7 +5,6 @@ import com.intellij.openapi.diagnostic.debug
import com.intellij.openapi.diagnostic.logger
import com.intellij.openapi.diagnostic.thisLogger
import com.intellij.openapi.util.JDOMUtil
import com.intellij.platform.diagnostic.telemetry.helpers.addElapsedTimeMillis
import com.intellij.platform.diagnostic.telemetry.helpers.addMeasuredTimeMillis
import com.intellij.platform.workspace.jps.*
import com.intellij.platform.workspace.jps.entities.*
@@ -42,7 +41,7 @@ internal class JpsLibrariesDirectorySerializerFactory(override val directoryUrl:
override fun createSerializer(fileUrl: String,
entitySource: JpsProjectFileEntitySource.FileInDirectory,
virtualFileManager: VirtualFileUrlManager): JpsFileEntitiesSerializer<LibraryEntity> {
return JpsLibraryEntitiesSerializer(virtualFileManager.fromUrl(fileUrl), entitySource, LibraryTableId.ProjectLibraryTableId)
return JpsLibraryEntitiesSerializer(virtualFileManager.getOrCreateFromUri(fileUrl), entitySource, LibraryTableId.ProjectLibraryTableId)
}
override fun changeEntitySourcesToDirectoryBasedFormat(builder: MutableEntityStorage, configLocation: JpsProjectConfigLocation) {
@@ -280,7 +279,7 @@ open class JpsLibraryEntitiesSerializer(override val fileUrl: VirtualFileUrl,
"excluded" -> excludedRoots.addAll(
childElement.getChildren(JpsJavaModelSerializerExtension.ROOT_TAG)
.map { it.getAttributeValueStrict(JpsModuleRootModelSerializer.URL_ATTRIBUTE) }
.map { virtualFileManager.fromUrl(it) }
.map { virtualFileManager.getOrCreateFromUri(it) }
)
PROPERTIES_TAG -> {
properties = JDOMUtil.write(childElement)
@@ -292,7 +291,7 @@ open class JpsLibraryEntitiesSerializer(override val fileUrl: VirtualFileUrl,
for (rootTag in childElement.getChildren(JpsJavaModelSerializerExtension.ROOT_TAG)) {
val url = rootTag.getAttributeValueStrict(JpsModuleRootModelSerializer.URL_ATTRIBUTE)
val inclusionOptions = jarDirectories[Pair(rootType, url)] ?: LibraryRoot.InclusionOptions.ROOT_ITSELF
roots.add(LibraryRoot(virtualFileManager.fromUrl(url), libraryRootTypes[rootType]!!, inclusionOptions))
roots.add(LibraryRoot(virtualFileManager.getOrCreateFromUri(url), libraryRootTypes[rootType]!!, inclusionOptions))
}
}
}

View File

@@ -81,13 +81,13 @@ object JpsProjectEntitiesLoader {
val externalModuleListSerializer = ExternalModuleListSerializer(externalStorageRoot, context)
val entityTypeSerializers: MutableList<JpsFileEntityTypeSerializer<*>> = mutableListOf(
JpsLibrariesExternalFileSerializer(librariesExternalStorageFile, virtualFileManager.fromUrl(librariesDirectoryUrl),
JpsLibrariesExternalFileSerializer(librariesExternalStorageFile, virtualFileManager.getOrCreateFromUri(librariesDirectoryUrl),
context.fileInDirectorySourceNames))
val artifactsExternalStorageFile = JpsProjectFileEntitySource.ExactFile(externalStorageRoot.append("project/artifacts.xml"),
configLocation)
val artifactsExternalFileSerializer = JpsArtifactsExternalFileSerializer(artifactsExternalStorageFile,
virtualFileManager.fromUrl(artifactsDirectoryUrl),
virtualFileManager.getOrCreateFromUri(artifactsDirectoryUrl),
context.fileInDirectorySourceNames,
virtualFileManager)
entityTypeSerializers += artifactsExternalFileSerializer

View File

@@ -111,7 +111,7 @@ class JpsProjectSerializersImpl(directorySerializersFactories: List<JpsDirectory
}
return files.map {
val fileName = it.fileName.toString()
val directoryUrl = virtualFileManager.fromUrl(factory.directoryUrl)
val directoryUrl = virtualFileManager.getOrCreateFromUri(factory.directoryUrl)
val entitySource =
bindExistingSource(fileInDirectorySourceNames, factory.entityClass, fileName, directoryUrl) ?: createFileInDirectorySource(
directoryUrl, fileName)
@@ -154,7 +154,7 @@ class JpsProjectSerializersImpl(directorySerializersFactories: List<JpsDirectory
val factory = directorySerializerFactoriesByUrl[PathUtilRt.getParentPath(addedFileUrl)]
val newFileSerializer = factory?.createSerializer(addedFileUrl, createFileInDirectorySource(
virtualFileManager.fromUrl(factory.directoryUrl), PathUtilRt.getFileName(addedFileUrl)), virtualFileManager)
virtualFileManager.getOrCreateFromUri(factory.directoryUrl), PathUtilRt.getFileName(addedFileUrl)), virtualFileManager)
if (newFileSerializer != null) {
newFileSerializers.add(newFileSerializer)
serializerToDirectoryFactory[newFileSerializer] = factory
@@ -752,7 +752,7 @@ class JpsProjectSerializersImpl(directorySerializersFactories: List<JpsDirectory
}
}
}
val newSerializer = moduleListSerializer.createSerializer(internalSource, virtualFileManager.fromUrl(url), moduleGroup)
val newSerializer = moduleListSerializer.createSerializer(internalSource, virtualFileManager.getOrCreateFromUri(url), moduleGroup)
fileSerializersByUrl.put(url, newSerializer)
moduleSerializers[newSerializer] = moduleListSerializer
affectedModuleListSerializers.add(moduleListSerializer)
@@ -897,7 +897,7 @@ class JpsProjectSerializersImpl(directorySerializersFactories: List<JpsDirectory
val source =
if (currentSource != null && fileIdToFileName.get(currentSource.fileNameId) == fileName) currentSource
else createFileInDirectorySource(virtualFileManager.fromUrl(factory.directoryUrl), fileName)
else createFileInDirectorySource(virtualFileManager.getOrCreateFromUri(factory.directoryUrl), fileName)
factory.createSerializer("${factory.directoryUrl}/$fileName", source, virtualFileManager) to entityMap
}
}

View File

@@ -82,7 +82,7 @@ class JpsSdkEntitySerializer(val entitySource: JpsGlobalFileEntitySource, privat
}
val sdkVersion = sdkElement.getChild(ELEMENT_VERSION)?.getAttributeValue(ATTRIBUTE_VALUE)
val homePath = sdkElement.getChild(ELEMENT_HOMEPATH).getAttributeValueStrict(ATTRIBUTE_VALUE)
val homePathVfu = virtualFileManager.fromUrl(homePath)
val homePathVfu = virtualFileManager.getOrCreateFromUri(homePath)
val roots = readRoots(sdkElement.getChildTagStrict(ELEMENT_ROOTS), virtualFileManager)
@@ -115,7 +115,7 @@ class JpsSdkEntitySerializer(val entitySource: JpsGlobalFileEntitySource, privat
val composite = composites[0]
for (rootTag in composite.getChildren(JpsJavaModelSerializerExtension.ROOT_TAG)) {
val url = rootTag.getAttributeValueStrict(JpsModuleRootModelSerializer.URL_ATTRIBUTE)
result.add(SdkRoot(virtualFileManager.fromUrl(url), rootTypes[rootType]!!))
result.add(SdkRoot(virtualFileManager.getOrCreateFromUri(url), rootTypes[rootType]!!))
}
}
return result

View File

@@ -4,7 +4,6 @@ package com.intellij.platform.workspace.jps.serialization.impl
import com.intellij.java.workspace.entities.*
import com.intellij.openapi.diagnostic.logger
import com.intellij.openapi.util.JDOMUtil
import com.intellij.platform.diagnostic.telemetry.helpers.addElapsedTimeMillis
import com.intellij.platform.diagnostic.telemetry.helpers.addMeasuredTimeMillis
import com.intellij.platform.workspace.jps.*
import com.intellij.platform.workspace.jps.entities.*
@@ -485,7 +484,7 @@ internal open class ModuleImlFileEntitiesSerializer(internal val modulePath: Mod
val isDumb = contentElement.getAttributeValue(DUMB_ATTRIBUTE).toBoolean()
val contentRoot = alreadyLoadedContentRoots[contentRootUrlString]
if (contentRoot == null) {
val contentRootUrl = contentRootUrlString.let { virtualFileManager.fromUrl(it) }
val contentRootUrl = contentRootUrlString.let { virtualFileManager.getOrCreateFromUri(it) }
val excludePatterns = contentElement.getChildren(EXCLUDE_PATTERN_TAG).map { it.getAttributeValue(EXCLUDE_PATTERN_ATTRIBUTE) }
val source = if (isDumb) OrphanageWorkerEntitySource else contentRootEntitySource
ContentRootEntity(contentRootUrl, excludePatterns, source) {
@@ -534,7 +533,7 @@ internal open class ModuleImlFileEntitiesSerializer(internal val modulePath: Mod
): List<ExcludeUrlEntity> {
return contentElement
.getChildren(EXCLUDE_FOLDER_TAG)
.map { virtualFileManager.fromUrl(it.getAttributeValueStrict(URL_ATTRIBUTE)) }
.map { virtualFileManager.getOrCreateFromUri(it.getAttributeValueStrict(URL_ATTRIBUTE)) }
.map { exclude ->
ExcludeUrlEntity(exclude, entitySource)
}
@@ -552,7 +551,7 @@ internal open class ModuleImlFileEntitiesSerializer(internal val modulePath: Mod
?: (if (isTestSource) JAVA_TEST_ROOT_TYPE_ID else JAVA_SOURCE_ROOT_TYPE_ID)
val sourceRoot = SourceRootEntity(
url = virtualFileManager.fromUrl(sourceRootElement.getAttributeValueStrict(URL_ATTRIBUTE)),
url = virtualFileManager.getOrCreateFromUri(sourceRootElement.getAttributeValueStrict(URL_ATTRIBUTE)),
rootType = type,
entitySource = sourceRootSource
)
@@ -1020,7 +1019,7 @@ internal open class ModuleListSerializerImpl(override val fileUrl: String,
override fun loadFileList(reader: JpsFileContentReader, virtualFileManager: VirtualFileUrlManager): List<Pair<VirtualFileUrl, String?>> {
val moduleManagerTag = reader.loadComponent(fileUrl, componentName) ?: return emptyList()
return ModulePath.getPathsToModuleFiles(moduleManagerTag).map {
virtualFileManager.fromUrl("file://${it.path}") to it.group
virtualFileManager.getOrCreateFromUri("file://${it.path}") to it.group
}
}

View File

@@ -28,9 +28,9 @@ class ContentRootEqualityTest {
val builder1 = MutableEntityStorage.create()
builder1.addEntity(ModuleEntity("MyName", emptyList(), MySource) {
contentRoots = listOf(
ContentRootEntity(virtualFileManager.fromUrl("/123"), emptyList(), MySource) {
ContentRootEntity(virtualFileManager.getOrCreateFromUri("/123"), emptyList(), MySource) {
sourceRoots = listOf(
SourceRootEntity(virtualFileManager.fromUrl("/data"), "Type", AnotherSource),
SourceRootEntity(virtualFileManager.getOrCreateFromUri("/data"), "Type", AnotherSource),
)
},
)
@@ -39,8 +39,8 @@ class ContentRootEqualityTest {
val builder2 = MutableEntityStorage.create()
builder2.addEntity(ModuleEntity("MyName", emptyList(), MySource) {
contentRoots = listOf(
ContentRootEntity(virtualFileManager.fromUrl("/123"), emptyList(), MySource) {
this.excludedUrls = listOf(ExcludeUrlEntity(virtualFileManager.fromUrl("/myRoot"), this.entitySource))
ContentRootEntity(virtualFileManager.getOrCreateFromUri("/123"), emptyList(), MySource) {
this.excludedUrls = listOf(ExcludeUrlEntity(virtualFileManager.getOrCreateFromUri("/myRoot"), this.entitySource))
},
)
})

View File

@@ -9,7 +9,6 @@ import com.intellij.platform.workspace.jps.entities.ContentRootEntity
import com.intellij.platform.workspace.jps.entities.ExcludeUrlEntity
import com.intellij.platform.workspace.jps.entities.ModuleEntity
import com.intellij.platform.workspace.jps.entities.SourceRootEntity
import com.intellij.platform.workspace.storage.EntityStorage
import com.intellij.platform.workspace.storage.entities
import com.intellij.platform.workspace.storage.testEntities.entities.MySource
import com.intellij.platform.workspace.storage.url.VirtualFileUrlManager
@@ -46,7 +45,7 @@ class EntitiesOrphanageTest {
@ParameterizedTest
@ValueSource(booleans = [true, false])
fun `adding content root`(orphanBeforeUpdate: Boolean) = timeoutRunBlocking {
val url = virtualFileManager.fromUrl("/123")
val url = virtualFileManager.getOrCreateFromUri("/123")
writeAction {
// List of operations as functions to support parametrized test. We call them in different order
val operations = listOf(
@@ -89,7 +88,7 @@ class EntitiesOrphanageTest {
@ParameterizedTest
@ValueSource(booleans = [true, false])
fun `adding content root to existing one duplicate`(orphanBeforeUpdate: Boolean) = timeoutRunBlocking {
val url = virtualFileManager.fromUrl("/123")
val url = virtualFileManager.getOrCreateFromUri("/123")
writeAction {
// List of operations as functions to support parametrized test. We call them in different order
val operations = listOf(
@@ -135,8 +134,8 @@ class EntitiesOrphanageTest {
@ParameterizedTest
@ValueSource(booleans = [true, false])
fun `adding content root to existing one`(orphanBeforeUpdate: Boolean) = timeoutRunBlocking {
val url = virtualFileManager.fromUrl("/123")
val url2 = virtualFileManager.fromUrl("/1234")
val url = virtualFileManager.getOrCreateFromUri("/123")
val url2 = virtualFileManager.getOrCreateFromUri("/1234")
writeAction {
// List of operations as functions to support parametrized test. We call them in different order
val operations = listOf(
@@ -180,7 +179,7 @@ class EntitiesOrphanageTest {
@Test
fun `adding content root to removed module`() = timeoutRunBlocking {
val url = virtualFileManager.fromUrl("/123")
val url = virtualFileManager.getOrCreateFromUri("/123")
writeAction {
EntitiesOrphanage.getInstance(projectModel.project).update { builder ->
builder addEntity ModuleEntity("MyName", emptyList(), OrphanageWorkerEntitySource) {
@@ -213,7 +212,7 @@ class EntitiesOrphanageTest {
@ParameterizedTest
@ValueSource(booleans = [true, false])
fun `do not add orphan content root`(orphanBeforeUpdate: Boolean) = timeoutRunBlocking {
val url = virtualFileManager.fromUrl("/123")
val url = virtualFileManager.getOrCreateFromUri("/123")
writeAction {
// List of operations as functions to support parametrized test. We call them in different order
val operations = listOf(
@@ -258,7 +257,7 @@ class EntitiesOrphanageTest {
@ParameterizedTest
@ValueSource(booleans = [true, false])
fun `add content root to existing module`(orphanBeforeUpdate: Boolean) = timeoutRunBlocking {
val url = virtualFileManager.fromUrl("/123")
val url = virtualFileManager.getOrCreateFromUri("/123")
writeAction {
// List of operations as functions to support parametrized test. We call them in different order
val operations = listOf(
@@ -302,8 +301,8 @@ class EntitiesOrphanageTest {
@ParameterizedTest
@ValueSource(booleans = [true, false])
fun `add content root to existing module and module remain in orphanage`(orphanBeforeUpdate: Boolean) = timeoutRunBlocking {
val url = virtualFileManager.fromUrl("/123")
val url2 = virtualFileManager.fromUrl("/1233")
val url = virtualFileManager.getOrCreateFromUri("/123")
val url2 = virtualFileManager.getOrCreateFromUri("/1233")
writeAction {
// List of operations as functions to support parametrized test. We call them in different order
val operations = listOf(
@@ -351,8 +350,8 @@ class EntitiesOrphanageTest {
@ParameterizedTest
@ValueSource(booleans = [true, false])
fun `adding source root`(orphanBeforeUpdate: Boolean) = timeoutRunBlocking {
val url = virtualFileManager.fromUrl("/123")
val sourceUrl = virtualFileManager.fromUrl("/123/source")
val url = virtualFileManager.getOrCreateFromUri("/123")
val sourceUrl = virtualFileManager.getOrCreateFromUri("/123/source")
writeAction {
// List of operations as functions to support parametrized test. We call them in different order
val operations = listOf(
@@ -399,8 +398,8 @@ class EntitiesOrphanageTest {
@ParameterizedTest
@ValueSource(booleans = [true, false])
fun `adding source root to existing one duplicate`(orphanBeforeUpdate: Boolean) = timeoutRunBlocking {
val url = virtualFileManager.fromUrl("/123")
val sourceUrl = virtualFileManager.fromUrl("/123/source")
val url = virtualFileManager.getOrCreateFromUri("/123")
val sourceUrl = virtualFileManager.getOrCreateFromUri("/123/source")
writeAction {
// List of operations as functions to support parametrized test. We call them in different order
val operations = listOf(
@@ -449,9 +448,9 @@ class EntitiesOrphanageTest {
@ParameterizedTest
@ValueSource(booleans = [true, false])
fun `adding source root to existing one`(orphanBeforeUpdate: Boolean) = timeoutRunBlocking {
val url = virtualFileManager.fromUrl("/123")
val sourceUrl1 = virtualFileManager.fromUrl("/123/source1")
val sourceUrl2 = virtualFileManager.fromUrl("/123/source2")
val url = virtualFileManager.getOrCreateFromUri("/123")
val sourceUrl1 = virtualFileManager.getOrCreateFromUri("/123/source1")
val sourceUrl2 = virtualFileManager.getOrCreateFromUri("/123/source2")
writeAction {
// List of operations as functions to support parametrized test. We call them in different order
val operations = listOf(
@@ -500,8 +499,8 @@ class EntitiesOrphanageTest {
@ParameterizedTest
@ValueSource(booleans = [true, false])
fun `adding source root to removed module`(orphanBeforeUpdate: Boolean) = timeoutRunBlocking {
val url = virtualFileManager.fromUrl("/123")
val sourceUrl = virtualFileManager.fromUrl("/123/source1")
val url = virtualFileManager.getOrCreateFromUri("/123")
val sourceUrl = virtualFileManager.getOrCreateFromUri("/123/source1")
writeAction {
EntitiesOrphanage.getInstance(projectModel.project).update { builder ->
builder addEntity ModuleEntity("MyName", emptyList(), OrphanageWorkerEntitySource) {
@@ -538,8 +537,8 @@ class EntitiesOrphanageTest {
@ParameterizedTest
@ValueSource(booleans = [true, false])
fun `adding exclude root`(orphanBeforeUpdate: Boolean) = timeoutRunBlocking {
val url = virtualFileManager.fromUrl("/123")
val excludeUrl = virtualFileManager.fromUrl("/123/source")
val url = virtualFileManager.getOrCreateFromUri("/123")
val excludeUrl = virtualFileManager.getOrCreateFromUri("/123/source")
writeAction {
// List of operations as functions to support parametrized test. We call them in different order
val operations = listOf(
@@ -586,8 +585,8 @@ class EntitiesOrphanageTest {
@ParameterizedTest
@ValueSource(booleans = [true, false])
fun `adding exclude root to existing one duplicate`(orphanBeforeUpdate: Boolean) = timeoutRunBlocking {
val url = virtualFileManager.fromUrl("/123")
val excludeUrl = virtualFileManager.fromUrl("/123/source")
val url = virtualFileManager.getOrCreateFromUri("/123")
val excludeUrl = virtualFileManager.getOrCreateFromUri("/123/source")
writeAction {
// List of operations as functions to support parametrized test. We call them in different order
val operations = listOf(
@@ -636,9 +635,9 @@ class EntitiesOrphanageTest {
@ParameterizedTest
@ValueSource(booleans = [true, false])
fun `adding exclude root to existing one`(orphanBeforeUpdate: Boolean) = timeoutRunBlocking {
val url = virtualFileManager.fromUrl("/123")
val excludeUrl1 = virtualFileManager.fromUrl("/123/exclude1")
val excludeUrl2 = virtualFileManager.fromUrl("/123/exclude2")
val url = virtualFileManager.getOrCreateFromUri("/123")
val excludeUrl1 = virtualFileManager.getOrCreateFromUri("/123/exclude1")
val excludeUrl2 = virtualFileManager.getOrCreateFromUri("/123/exclude2")
writeAction {
// List of operations as functions to support parametrized test. We call them in different order
val operations = listOf(
@@ -687,8 +686,8 @@ class EntitiesOrphanageTest {
@ParameterizedTest
@ValueSource(booleans = [true, false])
fun `adding exclude root to removed module`(orphanBeforeUpdate: Boolean) = timeoutRunBlocking {
val url = virtualFileManager.fromUrl("/123")
val excludeUrl = virtualFileManager.fromUrl("/123/source1")
val url = virtualFileManager.getOrCreateFromUri("/123")
val excludeUrl = virtualFileManager.getOrCreateFromUri("/123/source1")
writeAction {
EntitiesOrphanage.getInstance(projectModel.project).update { builder ->
builder addEntity ModuleEntity("MyName", emptyList(), OrphanageWorkerEntitySource) {
@@ -725,9 +724,9 @@ class EntitiesOrphanageTest {
@ParameterizedTest
@ValueSource(booleans = [true, false])
fun `move both source and exclude root`(orphanBeforeUpdate: Boolean) = timeoutRunBlocking {
val url = virtualFileManager.fromUrl("/123")
val excludeUrl = virtualFileManager.fromUrl("/123/source1")
val sourceUrl = virtualFileManager.fromUrl("/123/source2")
val url = virtualFileManager.getOrCreateFromUri("/123")
val excludeUrl = virtualFileManager.getOrCreateFromUri("/123/source1")
val sourceUrl = virtualFileManager.getOrCreateFromUri("/123/source2")
writeAction {
// List of operations as functions to support parametrized test. We call them in different order
val operations = listOf(

View File

@@ -258,7 +258,7 @@ class ModuleBridgesTest {
moduleManager.disposeModule(module)
}
val moduleDirUrl = virtualFileManager.fromUrl(VfsUtilCore.pathToUrl(project.basePath!!))
val moduleDirUrl = virtualFileManager.getOrCreateFromUri(VfsUtilCore.pathToUrl(project.basePath!!))
val projectModel = WorkspaceModel.getInstance(project)
projectModel.updateProjectModel {
@@ -289,7 +289,7 @@ class ModuleBridgesTest {
moduleManager.disposeModule(module)
}
val moduleDirUrl = virtualFileManager.fromUrl(VfsUtilCore.pathToUrl(project.basePath!!))
val moduleDirUrl = virtualFileManager.getOrCreateFromUri(VfsUtilCore.pathToUrl(project.basePath!!))
val projectModel = WorkspaceModel.getInstance(project)
project.messageBus.connect(disposableRule.disposable).subscribe(WorkspaceModelTopics.CHANGED,
@@ -377,7 +377,7 @@ class ModuleBridgesTest {
val moduleManager = ModuleManager.getInstance(project)
val dir = File(project.basePath, "dir")
val moduleDirUrl = virtualFileManager.fromUrl(VfsUtilCore.pathToUrl(project.basePath!!))
val moduleDirUrl = virtualFileManager.getOrCreateFromUri(VfsUtilCore.pathToUrl(project.basePath!!))
val projectModel = WorkspaceModel.getInstance(project)
val projectLocation = getJpsProjectConfigLocation(project)!!

View File

@@ -59,20 +59,20 @@ class ReplaceBySourceTest {
val moduleEntity = builder addEntity ModuleEntity("name", emptyList(), source)
val contentRootEntity = builder addEntity ContentRootEntity(virtualFileManager.fromUrl(fileUrl), emptyList<@NlsSafe String>(),
val contentRootEntity = builder addEntity ContentRootEntity(virtualFileManager.getOrCreateFromUri(fileUrl), emptyList<@NlsSafe String>(),
moduleEntity.entitySource) {
module = moduleEntity
}
builder addEntity SourceRootEntity(virtualFileManager.fromUrl(fileUrl2), "", source) {
builder addEntity SourceRootEntity(virtualFileManager.getOrCreateFromUri(fileUrl2), "", source) {
contentRoot = contentRootEntity
}
builder addEntity SourceRootEntity(virtualFileManager.fromUrl(fileUrl3), "", source) {
builder addEntity SourceRootEntity(virtualFileManager.getOrCreateFromUri(fileUrl3), "", source) {
contentRoot = contentRootEntity
}
builder addEntity SourceRootEntity(virtualFileManager.fromUrl(fileUrl4), "", source) {
builder addEntity SourceRootEntity(virtualFileManager.getOrCreateFromUri(fileUrl4), "", source) {
contentRoot = contentRootEntity
}
builder addEntity SourceRootEntity(virtualFileManager.fromUrl(fileUrl5), "", source) {
builder addEntity SourceRootEntity(virtualFileManager.getOrCreateFromUri(fileUrl5), "", source) {
contentRoot = contentRootEntity
}
return builder

View File

@@ -33,8 +33,8 @@ class VirtualFileUrlManagerTest {
}
private fun assertIsEqualOrParentOf(expectedResult: Boolean, parentString: String, childString: String) {
val parent = virtualFileManager.fromUrl(parentString)
val child = virtualFileManager.fromUrl(childString)
val parent = virtualFileManager.getOrCreateFromUri(parentString)
val child = virtualFileManager.getOrCreateFromUri(childString)
Assert.assertTrue("'$parent'.isEqualOrParentOf('$parent')", parent.isEqualOrParentOf(parent))
Assert.assertTrue("'$child'.isEqualOrParentOf('$child')", child.isEqualOrParentOf(child))
Assert.assertEquals(

View File

@@ -264,7 +264,7 @@ class WorkspaceModelBenchmarksPerformanceTest {
val module = ModuleEntity("data", emptyList(), MySource)
storageBuilder.addEntity(module)
repeat(1_000) {
storageBuilder.addEntity(ContentRootEntity(manager.fromUrl(VfsUtilCore.pathToUrl("$newFolder/url${it}")), emptyList(), MySource) {
storageBuilder.addEntity(ContentRootEntity(manager.getOrCreateFromUri(VfsUtilCore.pathToUrl("$newFolder/url${it}")), emptyList(), MySource) {
this.module = module
})
}
@@ -273,7 +273,7 @@ class WorkspaceModelBenchmarksPerformanceTest {
val replaceModule = ModuleEntity("data", emptyList(), MySource)
replaceStorage.addEntity(replaceModule)
repeat(1_000) {
replaceStorage.addEntity(ContentRootEntity(manager.fromUrl(VfsUtilCore.pathToUrl("$newFolder/url${it}")), emptyList(), MySource) {
replaceStorage.addEntity(ContentRootEntity(manager.getOrCreateFromUri(VfsUtilCore.pathToUrl("$newFolder/url${it}")), emptyList(), MySource) {
this.module = replaceModule
})
}
@@ -313,7 +313,7 @@ class WorkspaceModelBenchmarksPerformanceTest {
EntitiesOrphanage.getInstance(projectModel.project).update {
repeat(10_000) { counter ->
it addEntity ModuleEntity("Module$counter", emptyList(), OrphanageWorkerEntitySource) {
contentRoots = listOf(ContentRootEntity(manager.fromUrl(VfsUtilCore.pathToUrl("$newFolder/data$counter")), emptyList(), MySource))
contentRoots = listOf(ContentRootEntity(manager.getOrCreateFromUri(VfsUtilCore.pathToUrl("$newFolder/data$counter")), emptyList(), MySource))
}
}
}
@@ -350,13 +350,13 @@ class WorkspaceModelBenchmarksPerformanceTest {
repeat(10_000) { counter ->
it addEntity ModuleEntity("Module$counter", emptyList(), OrphanageWorkerEntitySource) {
contentRoots = listOf(
ContentRootEntity(manager.fromUrl("$newFolder/data$counter"), emptyList(), OrphanageWorkerEntitySource) {
ContentRootEntity(manager.getOrCreateFromUri("$newFolder/data$counter"), emptyList(), OrphanageWorkerEntitySource) {
this.sourceRoots = listOf(
SourceRootEntity(manager.fromUrl("$newFolder/one$counter"), "", MySource),
SourceRootEntity(manager.fromUrl("$newFolder/two$counter"), "", MySource),
SourceRootEntity(manager.fromUrl("$newFolder/three$counter"), "", MySource),
SourceRootEntity(manager.fromUrl("$newFolder/four$counter"), "", MySource),
SourceRootEntity(manager.fromUrl("$newFolder/five$counter"), "", MySource),
SourceRootEntity(manager.getOrCreateFromUri("$newFolder/one$counter"), "", MySource),
SourceRootEntity(manager.getOrCreateFromUri("$newFolder/two$counter"), "", MySource),
SourceRootEntity(manager.getOrCreateFromUri("$newFolder/three$counter"), "", MySource),
SourceRootEntity(manager.getOrCreateFromUri("$newFolder/four$counter"), "", MySource),
SourceRootEntity(manager.getOrCreateFromUri("$newFolder/five$counter"), "", MySource),
)
})
}
@@ -366,7 +366,7 @@ class WorkspaceModelBenchmarksPerformanceTest {
WorkspaceModel.getInstance(projectModel.project).updateProjectModel {
repeat(10_000) { counter ->
it addEntity ModuleEntity("Module$counter", emptyList(), MySource) {
contentRoots = listOf(ContentRootEntity(manager.fromUrl("$newFolder/data$counter"), emptyList(), MySource))
contentRoots = listOf(ContentRootEntity(manager.getOrCreateFromUri("$newFolder/data$counter"), emptyList(), MySource))
}
}
}
@@ -397,9 +397,9 @@ class WorkspaceModelBenchmarksPerformanceTest {
repeat(10_000) { counter ->
it addEntity ModuleEntity("Module$counter", emptyList(), OrphanageWorkerEntitySource) {
contentRoots = List(10) { contentCounter ->
ContentRootEntity(manager.fromUrl(VfsUtilCore.pathToUrl("$newFolder/data$contentCounter$counter")), emptyList(), OrphanageWorkerEntitySource) {
ContentRootEntity(manager.getOrCreateFromUri(VfsUtilCore.pathToUrl("$newFolder/data$contentCounter$counter")), emptyList(), OrphanageWorkerEntitySource) {
sourceRoots = List(10) { sourceCounter ->
SourceRootEntity(manager.fromUrl(VfsUtilCore.pathToUrl("$newFolder/one$sourceCounter$contentCounter$counter")), "", MySource)
SourceRootEntity(manager.getOrCreateFromUri(VfsUtilCore.pathToUrl("$newFolder/one$sourceCounter$contentCounter$counter")), "", MySource)
}
}
}
@@ -411,7 +411,7 @@ class WorkspaceModelBenchmarksPerformanceTest {
repeat(10_000) { counter ->
it addEntity ModuleEntity("Module$counter", emptyList(), MySource) {
contentRoots = List(10) { contentCounter ->
ContentRootEntity(manager.fromUrl(VfsUtilCore.pathToUrl("$newFolder/data$contentCounter$counter")), emptyList(), OrphanageWorkerEntitySource)
ContentRootEntity(manager.getOrCreateFromUri(VfsUtilCore.pathToUrl("$newFolder/data$contentCounter$counter")), emptyList(), OrphanageWorkerEntitySource)
}
}
}

View File

@@ -54,11 +54,11 @@ class JpsGlobalEntitiesSavingTest {
ApplicationManager.getApplication().invokeAndWait {
runWriteAction {
workspaceModel.updateModel("Test update") { builder ->
var libraryRoot = LibraryRoot(virtualFileManager.fromUrl("/a/b/one.txt"), LibraryRootTypeId.COMPILED)
var libraryRoot = LibraryRoot(virtualFileManager.getOrCreateFromUri("/a/b/one.txt"), LibraryRootTypeId.COMPILED)
val gradleLibraryEntity = LibraryEntity(librariesNames.get(0), globalLibraryTableId, listOf(libraryRoot), entitySource)
builder.addEntity(gradleLibraryEntity)
libraryRoot = LibraryRoot(virtualFileManager.fromUrl("/a/c/test.jar"), LibraryRootTypeId.SOURCES)
libraryRoot = LibraryRoot(virtualFileManager.getOrCreateFromUri("/a/c/test.jar"), LibraryRootTypeId.SOURCES)
val mavenLibraryEntity = LibraryEntity(librariesNames.get(1), globalLibraryTableId, listOf(libraryRoot), entitySource)
builder.addEntity(mavenLibraryEntity)
}
@@ -90,16 +90,16 @@ class JpsGlobalEntitiesSavingTest {
ApplicationManager.getApplication().invokeAndWait {
runWriteAction {
workspaceModel.updateModel("Test update") { builder ->
var sdkRoots = listOf(SdkRoot(virtualFileManager.fromUrl("/Contents/Home!/java.compiler"), SdkRootTypeId(OrderRootType.CLASSES.customName)),
SdkRoot(virtualFileManager.fromUrl("/lib/src.zip!/java.se"), SdkRootTypeId(OrderRootType.SOURCES.customName)))
var sdkRoots = listOf(SdkRoot(virtualFileManager.getOrCreateFromUri("/Contents/Home!/java.compiler"), SdkRootTypeId(OrderRootType.CLASSES.customName)),
SdkRoot(virtualFileManager.getOrCreateFromUri("/lib/src.zip!/java.se"), SdkRootTypeId(OrderRootType.SOURCES.customName)))
val jbrSdkEntity = SdkEntity(sdkNames[0], "JavaSDK", sdkRoots, "", entitySource) {
this.homePath = virtualFileManager.fromUrl("/Library/Java/JavaVirtualMachines/jbr-2048/Contents/Home")
this.homePath = virtualFileManager.getOrCreateFromUri("/Library/Java/JavaVirtualMachines/jbr-2048/Contents/Home")
}
builder.addEntity(jbrSdkEntity)
sdkRoots = listOf(SdkRoot(virtualFileManager.fromUrl("/Contents/plugins/java/lib/resources/jdkAnnotations.jar"), SdkRootTypeId(AnnotationOrderRootType.getInstance().customName)))
sdkRoots = listOf(SdkRoot(virtualFileManager.getOrCreateFromUri("/Contents/plugins/java/lib/resources/jdkAnnotations.jar"), SdkRootTypeId(AnnotationOrderRootType.getInstance().customName)))
val amazonSdkEntity = SdkEntity(sdkNames[1], "JavaSDK", sdkRoots, "", entitySource) {
this.homePath = virtualFileManager.fromUrl("/Library/Java/JavaVirtualMachines/amazon.crevetto/Contents/Home")
this.homePath = virtualFileManager.getOrCreateFromUri("/Library/Java/JavaVirtualMachines/amazon.crevetto/Contents/Home")
}
builder.addEntity(amazonSdkEntity)
}

View File

@@ -95,9 +95,9 @@ class JpsGlobalEntitiesSyncTest {
val virtualFileManager = VirtualFileUrlManager.getInstance(project)
WorkspaceModel.getInstance(project).updateProjectModel("Test update") { builder ->
val projectSdkEntity = SdkEntity("oracle-1.8", "JavaSDK",
listOf(SdkRoot(virtualFileManager.fromUrl("/Library/Java/JavaVirtualMachines/oracle-1.8/Contents/Home!/java.base"), SdkRootTypeId("sourcePath"))),
listOf(SdkRoot(virtualFileManager.getOrCreateFromUri("/Library/Java/JavaVirtualMachines/oracle-1.8/Contents/Home!/java.base"), SdkRootTypeId("sourcePath"))),
"", entitySource) {
homePath = virtualFileManager.fromUrl("/Library/Java/JavaVirtualMachines/oracle-1.8/Contents/Home")
homePath = virtualFileManager.getOrCreateFromUri("/Library/Java/JavaVirtualMachines/oracle-1.8/Contents/Home")
version = "1.8"
}
builder.addEntity(projectSdkEntity)
@@ -135,8 +135,8 @@ class JpsGlobalEntitiesSyncTest {
val globalVfu = sdkEntities.find { it.name == projectSdk.name }!!.roots[0].url
assertEquals(globalVfu.url, projectVfu.url)
assertSame(projectVfu, projectVirtualFileUrlManager.fromUrl(projectVfu.url))
assertSame(globalVfu, globalVirtualFileUrlManager.fromUrl(globalVfu.url))
assertSame(projectVfu, projectVirtualFileUrlManager.getOrCreateFromUri(projectVfu.url))
assertSame(globalVfu, globalVirtualFileUrlManager.getOrCreateFromUri(globalVfu.url))
assertNotSame(globalVfu, projectVfu)
}
}
@@ -183,7 +183,7 @@ class JpsGlobalEntitiesSyncTest {
val gradleLibraryEntity = LibraryEntity("com.gradle",
LibraryTableId.GlobalLibraryTableId(LibraryTablesRegistrar.APPLICATION_LEVEL),
listOf(
LibraryRoot(virtualFileManager.fromUrl("/a/b/one.txt"), LibraryRootTypeId.SOURCES)),
LibraryRoot(virtualFileManager.getOrCreateFromUri("/a/b/one.txt"), LibraryRootTypeId.SOURCES)),
entitySource)
builder.addEntity(gradleLibraryEntity)
globalLibrariesNames.add(gradleLibraryEntity.name)
@@ -225,8 +225,8 @@ class JpsGlobalEntitiesSyncTest {
val globalVfu = globalLibraryEntities[projectLibrary.name]!!.roots[0].url
assertEquals(globalVfu.url, projectVfu.url)
assertSame(projectVfu, projectVirtualFileUrlManager.fromUrl(projectVfu.url))
assertSame(globalVfu, globalVirtualFileUrlManager.fromUrl(globalVfu.url))
assertSame(projectVfu, projectVirtualFileUrlManager.getOrCreateFromUri(projectVfu.url))
assertSame(globalVfu, globalVirtualFileUrlManager.getOrCreateFromUri(globalVfu.url))
assertNotSame(globalVfu, projectVfu)
}
}

View File

@@ -87,7 +87,7 @@ class JpsProjectSaveAfterChangesTest {
fun `add library and check vfu index not empty`() {
checkSaveProjectAfterChange("directoryBased/addLibrary", "fileBased/addLibrary") { builder, _, _, configLocation ->
val root = LibraryRoot(
virtualFileManager.fromUrl("jar://${JpsPathUtil.urlToPath(configLocation.baseDirectoryUrlString)}/lib/junit2.jar!/"),
virtualFileManager.getOrCreateFromUri("jar://${JpsPathUtil.urlToPath(configLocation.baseDirectoryUrlString)}/lib/junit2.jar!/"),
LibraryRootTypeId.COMPILED)
val source = JpsEntitySourceFactory.createJpsEntitySourceForProjectLibrary(configLocation)
builder addEntity LibraryEntity("junit2", LibraryTableId.ProjectLibraryTableId, listOf(root), source)
@@ -151,7 +151,7 @@ class JpsProjectSaveAfterChangesTest {
checkSaveProjectAfterChange("directoryBased/modifyLibrary", "fileBased/modifyLibrary") { builder, _, _, configLocation ->
val junitLibrary = builder.entities(LibraryEntity::class.java).first { it.name == "junit" }
val root = LibraryRoot(
virtualFileManager.fromUrl("jar://${JpsPathUtil.urlToPath(configLocation.baseDirectoryUrlString)}/lib/junit2.jar!/"),
virtualFileManager.getOrCreateFromUri("jar://${JpsPathUtil.urlToPath(configLocation.baseDirectoryUrlString)}/lib/junit2.jar!/"),
LibraryRootTypeId.COMPILED)
builder.modifyEntity(junitLibrary) {
roots = mutableListOf(root)

View File

@@ -62,7 +62,7 @@ class JpsProjectSaveAllEntitiesTest {
val projectDir = FileUtil.createTempDirectory("jpsSaveTest", null)
val (serializers, configLocation) = createProjectSerializers(projectDir, virtualFileManager)
val builder = MutableEntityStorage.create()
val jarUrl = virtualFileManager.fromUrl("jar://${projectDir.systemIndependentPath}/lib/foo.jar!/")
val jarUrl = virtualFileManager.getOrCreateFromUri("jar://${projectDir.systemIndependentPath}/lib/foo.jar!/")
val libraryRoot = LibraryRoot(jarUrl, LibraryRootTypeId.COMPILED)
val source = JpsEntitySourceFactory.createJpsEntitySourceForProjectLibrary(projectDir.asConfigLocation(virtualFileManager))
builder addEntity LibraryEntity("foo", LibraryTableId.ProjectLibraryTableId, listOf(libraryRoot), source)

View File

@@ -49,7 +49,7 @@ class JpsSplitModuleAndContentRootTest {
val moduleEntity = builder.entities(ModuleEntity::class.java).single()
val url = configLocation.baseDirectoryUrlString + "/myContentRoot"
val source = (moduleEntity.entitySource as JpsImportedEntitySource).internalFile
builder addEntity ContentRootEntity(virtualFileManager.fromUrl(url), emptyList<@NlsSafe String>(), source) {
builder addEntity ContentRootEntity(virtualFileManager.getOrCreateFromUri(url), emptyList<@NlsSafe String>(), source) {
module = moduleEntity
}
}
@@ -117,7 +117,7 @@ class JpsSplitModuleAndContentRootTest {
val moduleEntity = builder.entities(ModuleEntity::class.java).single()
val url = configLocation.baseDirectoryUrlString + "/myContentRoot"
val source = (moduleEntity.entitySource as JpsImportedEntitySource).internalFile
builder addEntity ContentRootEntity(virtualFileManager.fromUrl(url), emptyList<@NlsSafe String>(), source) {
builder addEntity ContentRootEntity(virtualFileManager.getOrCreateFromUri(url), emptyList<@NlsSafe String>(), source) {
module = moduleEntity
}
}
@@ -130,11 +130,11 @@ class JpsSplitModuleAndContentRootTest {
val url = configLocation.baseDirectoryUrlString + "/myContentRoot"
val url2 = configLocation.baseDirectoryUrlString + "/myContentRoot2"
val source = (moduleEntity.entitySource as JpsImportedEntitySource).internalFile
builder addEntity ContentRootEntity(virtualFileManager.fromUrl(url), emptyList<@NlsSafe String>(), source) {
builder addEntity ContentRootEntity(virtualFileManager.getOrCreateFromUri(url), emptyList<@NlsSafe String>(), source) {
module = moduleEntity
}
val source1 = (moduleEntity.entitySource as JpsImportedEntitySource).internalFile
builder addEntity ContentRootEntity(virtualFileManager.fromUrl(url2), emptyList<@NlsSafe String>(), source1) {
builder addEntity ContentRootEntity(virtualFileManager.getOrCreateFromUri(url2), emptyList<@NlsSafe String>(), source1) {
module = moduleEntity
}
}
@@ -145,7 +145,7 @@ class JpsSplitModuleAndContentRootTest {
checkSaveProjectAfterChange("before/addContentRoot", "after/addExternalContentRoot") { builder, _, configLocation ->
val moduleEntity = builder.entities(ModuleEntity::class.java).single()
val url = configLocation.baseDirectoryUrlString + "/myContentRoot"
builder addEntity ContentRootEntity(virtualFileManager.fromUrl(url), emptyList<@NlsSafe String>(), moduleEntity.entitySource) {
builder addEntity ContentRootEntity(virtualFileManager.getOrCreateFromUri(url), emptyList<@NlsSafe String>(), moduleEntity.entitySource) {
module = moduleEntity
}
}
@@ -157,11 +157,11 @@ class JpsSplitModuleAndContentRootTest {
val moduleEntity = builder.entities(ModuleEntity::class.java).single()
val url = configLocation.baseDirectoryUrlString + "/myContentRoot"
val url2 = configLocation.baseDirectoryUrlString + "/myContentRoot2"
builder addEntity ContentRootEntity(virtualFileManager.fromUrl(url), emptyList<@NlsSafe String>(), moduleEntity.entitySource) {
builder addEntity ContentRootEntity(virtualFileManager.getOrCreateFromUri(url), emptyList<@NlsSafe String>(), moduleEntity.entitySource) {
module = moduleEntity
}
val source = (moduleEntity.entitySource as JpsImportedEntitySource).internalFile
builder addEntity ContentRootEntity(virtualFileManager.fromUrl(url2), emptyList<@NlsSafe String>(), source) {
builder addEntity ContentRootEntity(virtualFileManager.getOrCreateFromUri(url2), emptyList<@NlsSafe String>(), source) {
module = moduleEntity
}
}
@@ -174,7 +174,7 @@ class JpsSplitModuleAndContentRootTest {
val moduleEntity = builder.entities(ModuleEntity::class.java).single()
val url = configLocation.baseDirectoryUrlString + "/myContentRoot"
val source = (moduleEntity.entitySource as JpsImportedEntitySource).internalFile
builder addEntity ContentRootEntity(virtualFileManager.fromUrl(url), emptyList<@NlsSafe String>(), source) {
builder addEntity ContentRootEntity(virtualFileManager.getOrCreateFromUri(url), emptyList<@NlsSafe String>(), source) {
module = moduleEntity
}
}
@@ -186,10 +186,10 @@ class JpsSplitModuleAndContentRootTest {
val moduleEntity = builder.entities(ModuleEntity::class.java).single()
val url = configLocation.baseDirectoryUrlString + "/myContentRoot"
val source = (moduleEntity.entitySource as JpsImportedEntitySource).internalFile
val contentRootEntity = builder addEntity ContentRootEntity(virtualFileManager.fromUrl(url), emptyList<@NlsSafe String>(), source) {
val contentRootEntity = builder addEntity ContentRootEntity(virtualFileManager.getOrCreateFromUri(url), emptyList<@NlsSafe String>(), source) {
module = moduleEntity
}
builder addEntity SourceRootEntity(virtualFileManager.fromUrl(url), "mock",
builder addEntity SourceRootEntity(virtualFileManager.getOrCreateFromUri(url), "mock",
(moduleEntity.entitySource as JpsImportedEntitySource).internalFile) {
contentRoot = contentRootEntity
}
@@ -202,7 +202,7 @@ class JpsSplitModuleAndContentRootTest {
val moduleEntity = builder.entities(ModuleEntity::class.java).single()
val contentRootEntity = moduleEntity.contentRoots.single()
val url = configLocation.baseDirectoryUrlString + "/myContentRoot"
builder addEntity SourceRootEntity(virtualFileManager.fromUrl(url), "mock",
builder addEntity SourceRootEntity(virtualFileManager.getOrCreateFromUri(url), "mock",
(moduleEntity.entitySource as JpsImportedEntitySource).internalFile) {
contentRoot = contentRootEntity
}
@@ -216,11 +216,11 @@ class JpsSplitModuleAndContentRootTest {
val contentRootEntity = moduleEntity.contentRoots.single()
val url = configLocation.baseDirectoryUrlString + "/myContentRoot"
val url2 = configLocation.baseDirectoryUrlString + "/myContentRoot2"
builder addEntity SourceRootEntity(virtualFileManager.fromUrl(url), "mock",
builder addEntity SourceRootEntity(virtualFileManager.getOrCreateFromUri(url), "mock",
(moduleEntity.entitySource as JpsImportedEntitySource).internalFile) {
contentRoot = contentRootEntity
}
builder addEntity SourceRootEntity(virtualFileManager.fromUrl(url2), "mock",
builder addEntity SourceRootEntity(virtualFileManager.getOrCreateFromUri(url2), "mock",
(moduleEntity.entitySource as JpsImportedEntitySource).internalFile) {
contentRoot = contentRootEntity
}
@@ -233,7 +233,7 @@ class JpsSplitModuleAndContentRootTest {
val moduleEntity = builder.entities(ModuleEntity::class.java).single()
val contentRootEntity = moduleEntity.contentRoots.single()
val url = configLocation.baseDirectoryUrlString + "/myContentRoot"
builder addEntity SourceRootEntity(virtualFileManager.fromUrl(url), "mock", moduleEntity.entitySource) {
builder addEntity SourceRootEntity(virtualFileManager.getOrCreateFromUri(url), "mock", moduleEntity.entitySource) {
contentRoot = contentRootEntity
}
}
@@ -246,10 +246,10 @@ class JpsSplitModuleAndContentRootTest {
val contentRootEntity = moduleEntity.contentRoots.single()
val url = configLocation.baseDirectoryUrlString + "/myContentRoot"
val url2 = configLocation.baseDirectoryUrlString + "/myContentRoot2"
builder addEntity SourceRootEntity(virtualFileManager.fromUrl(url), "mock", moduleEntity.entitySource) {
builder addEntity SourceRootEntity(virtualFileManager.getOrCreateFromUri(url), "mock", moduleEntity.entitySource) {
contentRoot = contentRootEntity
}
builder addEntity SourceRootEntity(virtualFileManager.fromUrl(url2), "mock",
builder addEntity SourceRootEntity(virtualFileManager.getOrCreateFromUri(url2), "mock",
(moduleEntity.entitySource as JpsImportedEntitySource).internalFile) {
contentRoot = contentRootEntity
}
@@ -263,10 +263,10 @@ class JpsSplitModuleAndContentRootTest {
val url = configLocation.baseDirectoryUrlString + "/myContentRoot"
val url2 = configLocation.baseDirectoryUrlString + "/myContentRoot2"
val source = (moduleEntity.entitySource as JpsImportedEntitySource).internalFile
val contentRootEntity = builder addEntity ContentRootEntity(virtualFileManager.fromUrl(url), emptyList<@NlsSafe String>(), source) {
val contentRootEntity = builder addEntity ContentRootEntity(virtualFileManager.getOrCreateFromUri(url), emptyList<@NlsSafe String>(), source) {
module = moduleEntity
}
builder addEntity SourceRootEntity(virtualFileManager.fromUrl(url2), "mock",
builder addEntity SourceRootEntity(virtualFileManager.getOrCreateFromUri(url2), "mock",
(moduleEntity.entitySource as JpsImportedEntitySource).internalFile) {
contentRoot = contentRootEntity
}
@@ -279,7 +279,7 @@ class JpsSplitModuleAndContentRootTest {
val moduleEntity = builder.entities(ModuleEntity::class.java).single()
val contentRootEntity = moduleEntity.contentRoots.single()
val url = configLocation.baseDirectoryUrlString + "/myContentRoot"
builder addEntity ExcludeUrlEntity(virtualFileManager.fromUrl(url),
builder addEntity ExcludeUrlEntity(virtualFileManager.getOrCreateFromUri(url),
(moduleEntity.entitySource as JpsImportedEntitySource).internalFile) {
this.contentRoot = contentRootEntity
}
@@ -293,11 +293,11 @@ class JpsSplitModuleAndContentRootTest {
val contentRootEntity = moduleEntity.contentRoots.single()
val url = configLocation.baseDirectoryUrlString + "/myContentRoot"
val url2 = configLocation.baseDirectoryUrlString + "/myContentRoot2"
builder addEntity ExcludeUrlEntity(virtualFileManager.fromUrl(url),
builder addEntity ExcludeUrlEntity(virtualFileManager.getOrCreateFromUri(url),
(moduleEntity.entitySource as JpsImportedEntitySource).internalFile) {
this.contentRoot = contentRootEntity
}
builder addEntity ExcludeUrlEntity(virtualFileManager.fromUrl(url2),
builder addEntity ExcludeUrlEntity(virtualFileManager.getOrCreateFromUri(url2),
(moduleEntity.entitySource as JpsImportedEntitySource).internalFile) {
this.contentRoot = contentRootEntity
}
@@ -313,11 +313,11 @@ class JpsSplitModuleAndContentRootTest {
val contentRootEntity2 = moduleEntity.contentRoots.single { it.url.url.endsWith("myContentRoot2") }
val url = configLocation.baseDirectoryUrlString + "/myContentRoot/x"
val url2 = configLocation.baseDirectoryUrlString + "/myContentRoot2/y"
builder addEntity ExcludeUrlEntity(virtualFileManager.fromUrl(url),
builder addEntity ExcludeUrlEntity(virtualFileManager.getOrCreateFromUri(url),
(moduleEntity.entitySource as JpsImportedEntitySource).internalFile) {
this.contentRoot = contentRootEntity
}
builder addEntity ExcludeUrlEntity(virtualFileManager.fromUrl(url2),
builder addEntity ExcludeUrlEntity(virtualFileManager.getOrCreateFromUri(url2),
(moduleEntity.entitySource as JpsImportedEntitySource).internalFile) {
this.contentRoot = contentRootEntity2
}
@@ -330,7 +330,7 @@ class JpsSplitModuleAndContentRootTest {
val moduleEntity = builder.entities(ModuleEntity::class.java).single()
val contentRootEntity = moduleEntity.contentRoots.single()
val url = configLocation.baseDirectoryUrlString + "/myContentRoot"
builder addEntity ExcludeUrlEntity(virtualFileManager.fromUrl(url), moduleEntity.entitySource) {
builder addEntity ExcludeUrlEntity(virtualFileManager.getOrCreateFromUri(url), moduleEntity.entitySource) {
this.contentRoot = contentRootEntity
}
}
@@ -343,11 +343,11 @@ class JpsSplitModuleAndContentRootTest {
val contentRootEntity = moduleEntity.contentRoots.single()
val url = configLocation.baseDirectoryUrlString + "/myContentRoot"
val url2 = configLocation.baseDirectoryUrlString + "/myContentRoot2"
builder addEntity ExcludeUrlEntity(virtualFileManager.fromUrl(url),
builder addEntity ExcludeUrlEntity(virtualFileManager.getOrCreateFromUri(url),
(moduleEntity.entitySource as JpsImportedEntitySource).internalFile) {
this.contentRoot = contentRootEntity
}
builder addEntity ExcludeUrlEntity(virtualFileManager.fromUrl(url2), moduleEntity.entitySource) {
builder addEntity ExcludeUrlEntity(virtualFileManager.getOrCreateFromUri(url2), moduleEntity.entitySource) {
this.contentRoot = contentRootEntity
}
}

View File

@@ -443,10 +443,10 @@ internal fun copyAndLoadGlobalEntities(originalFile: String? = null,
// Entity source for global entities
val virtualFileManager = VirtualFileUrlManager.getGlobalInstance()
val globalLibrariesFile = virtualFileManager.fromUrl("$testDir/options/applicationLibraries.xml")
val globalLibrariesFile = virtualFileManager.getOrCreateFromUri("$testDir/options/applicationLibraries.xml")
val libraryEntitySource = JpsGlobalFileEntitySource(globalLibrariesFile)
val globalSdkFile = virtualFileManager.fromUrl("$testDir/options/jdk.table.xml")
val globalSdkFile = virtualFileManager.getOrCreateFromUri("$testDir/options/jdk.table.xml")
val sdkEntitySource = JpsGlobalFileEntitySource(globalSdkFile)
action(libraryEntitySource, sdkEntitySource)

View File

@@ -194,7 +194,7 @@ class ImlCreationPropertyTest {
val path = configLocation.baseDirectoryUrl.toPath().resolve(contentRootPath).createDirectories()
storage addEntity ContentRootEntity(virtualFileManager.fromUrl(VfsUtilCore.pathToUrl(path.toString())), emptyList(), moduleEntity.entitySource) {
storage addEntity ContentRootEntity(virtualFileManager.getOrCreateFromUri(VfsUtilCore.pathToUrl(path.toString())), emptyList(), moduleEntity.entitySource) {
this.module = moduleEntity
}
}

View File

@@ -165,7 +165,7 @@ internal class StorageSerializerUtil(
else {
val serializedUrl = kryo.readObject(input, String::class.java) as String
val convertedUrl = urlRelativizer.toAbsoluteUrl(serializedUrl)
return virtualFileManager.fromUrl(convertedUrl)
return virtualFileManager.getOrCreateFromUri(convertedUrl)
}
}
}

View File

@@ -72,5 +72,5 @@ public fun Path.toVirtualFileUrl(virtualFileManager: VirtualFileUrlManager): Vir
public fun String.toVirtualFileUrl(virtualFileManager: VirtualFileUrlManager): VirtualFileUrl {
val url = URLUtil.FILE_PROTOCOL + URLUtil.SCHEME_SEPARATOR + FileUtil.toSystemIndependentName(this)
return virtualFileManager.fromUrl(url)
return virtualFileManager.getOrCreateFromUri(url)
}

View File

@@ -19,9 +19,9 @@ public open class VirtualFileUrlManagerImpl : VirtualFileUrlManager {
private val rootNode = FilePathNode(0, 0)
@Synchronized
override fun fromUrl(url: String): VirtualFileUrl {
if (url.isEmpty()) return getEmptyUrl()
return add(url)
override fun getOrCreateFromUri(uri: String): VirtualFileUrl {
if (uri.isEmpty()) return getEmptyUrl()
return add(uri)
}
override fun findByUrl(url: String): VirtualFileUrl? {

View File

@@ -11,7 +11,7 @@ import java.util.List;
* Workspace model entities must use properties of this type to store references to files instead of storing their paths or URLs as
* {@link String} properties, because it consumes less memory and provide efficient way to locate a {@link com.intellij.openapi.vfs.VirtualFile VirtualFile}.
* <p>
* Use {@link VirtualFileUrlManager#fromUrl} or {@link com.intellij.platform.backend.workspace.VirtualFileUrls#toVirtualFileUrl toVirtualFileUrl}
* Use {@link VirtualFileUrlManager#getOrCreateFromUri} or {@link com.intellij.platform.backend.workspace.VirtualFileUrls#toVirtualFileUrl toVirtualFileUrl}
* extension function to get an instance of this interface.
* Use {@link com.intellij.platform.backend.workspace.VirtualFileUrls#getVirtualFile virtualFile} extension property to locate a
* {@link com.intellij.openapi.vfs.VirtualFile VirtualFile} instance by an instance of this interface.

View File

@@ -1,7 +1,6 @@
// Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
package com.intellij.platform.workspace.storage.url
import com.intellij.util.containers.TreeNodeProcessingResult
import org.jetbrains.annotations.ApiStatus
/**
@@ -19,7 +18,7 @@ public interface VirtualFileUrlManager {
* It must not be used for other purposes (e.g., to convert between different URL formats or to find [VirtualFile][com.intellij.openapi.vfs.VirtualFile],
* because all created URLs are stored in the shared data structures until the project is closed.
*/
public fun fromUrl(url: String): VirtualFileUrl
public fun getOrCreateFromUri(uri: String): VirtualFileUrl
/**
* Returns an existing instance of [VirtualFileUrl] for the given URL or `null` if no instance was registered.

View File

@@ -200,7 +200,7 @@ fun MutableEntityStorage.addVFUEntity(
virtualFileManager: VirtualFileUrlManager,
source: EntitySource = SampleEntitySource("test")
): VFUEntity {
val vfuEntity = VFUEntity(data, virtualFileManager.fromUrl(fileUrl), source)
val vfuEntity = VFUEntity(data, virtualFileManager.getOrCreateFromUri(fileUrl), source)
this.addEntity(vfuEntity)
return vfuEntity
}
@@ -212,7 +212,7 @@ fun MutableEntityStorage.addVFU2Entity(
virtualFileManager: VirtualFileUrlManager,
source: EntitySource = SampleEntitySource("test")
): VFUWithTwoPropertiesEntity {
val vfuWithTwoPropertiesEntity = VFUWithTwoPropertiesEntity(data, virtualFileManager.fromUrl(fileUrl), virtualFileManager.fromUrl(secondFileUrl), source)
val vfuWithTwoPropertiesEntity = VFUWithTwoPropertiesEntity(data, virtualFileManager.getOrCreateFromUri(fileUrl), virtualFileManager.getOrCreateFromUri(secondFileUrl), source)
this.addEntity(vfuWithTwoPropertiesEntity)
return vfuWithTwoPropertiesEntity
}
@@ -224,7 +224,7 @@ fun MutableEntityStorage.addNullableVFUEntity(
source: EntitySource = SampleEntitySource("test")
): NullableVFUEntity {
val nullableVFUEntity = NullableVFUEntity(data, source) {
this.fileProperty = fileUrl?.let { virtualFileManager.fromUrl(it) }
this.fileProperty = fileUrl?.let { virtualFileManager.getOrCreateFromUri(it) }
}
this.addEntity(nullableVFUEntity)
return nullableVFUEntity
@@ -236,7 +236,7 @@ fun MutableEntityStorage.addListVFUEntity(
virtualFileManager: VirtualFileUrlManager,
source: EntitySource = SampleEntitySource("test")
): ListVFUEntity {
val listVFUEntity = ListVFUEntity(data, fileUrl.map { virtualFileManager.fromUrl(it) }, source)
val listVFUEntity = ListVFUEntity(data, fileUrl.map { virtualFileManager.getOrCreateFromUri(it) }, source)
this.addEntity(listVFUEntity)
return listVFUEntity
}

View File

@@ -49,9 +49,9 @@ class ApplyChangesFromTest {
@RepeatedTest(10)
fun `add entity`() {
val source = createEmptyBuilder()
source addEntity SampleEntity(false, "first", ArrayList(), HashMap(), virtualFileUrlManager.fromUrl("file:///tmp"),
source addEntity SampleEntity(false, "first", ArrayList(), HashMap(), virtualFileUrlManager.getOrCreateFromUri("file:///tmp"),
SampleEntitySource("test"))
target addEntity SampleEntity(false, "second", ArrayList(), HashMap(), virtualFileUrlManager.fromUrl("file:///tmp"),
target addEntity SampleEntity(false, "second", ArrayList(), HashMap(), virtualFileUrlManager.getOrCreateFromUri("file:///tmp"),
SampleEntitySource("test"))
val storage = target.applyChanges(source)
assertEquals(setOf("first", "second"), storage.entities(SampleEntity::class.java).mapTo(HashSet()) { it.stringProperty })
@@ -59,9 +59,9 @@ class ApplyChangesFromTest {
@RepeatedTest(10)
fun `remove entity`() {
val entity = target addEntity SampleEntity(false, "hello", ArrayList(), HashMap(), virtualFileUrlManager.fromUrl("file:///tmp"),
val entity = target addEntity SampleEntity(false, "hello", ArrayList(), HashMap(), virtualFileUrlManager.getOrCreateFromUri("file:///tmp"),
SampleEntitySource("test"))
val entity2 = target addEntity SampleEntity(false, "hello", ArrayList(), HashMap(), virtualFileUrlManager.fromUrl("file:///tmp"),
val entity2 = target addEntity SampleEntity(false, "hello", ArrayList(), HashMap(), virtualFileUrlManager.getOrCreateFromUri("file:///tmp"),
SampleEntitySource("test"))
val source = createBuilderFrom(target.toSnapshot())
source.removeEntity(entity.from(source))
@@ -71,7 +71,7 @@ class ApplyChangesFromTest {
@RepeatedTest(10)
fun `modify entity`() {
val entity = target addEntity SampleEntity(false, "hello", ArrayList(), HashMap(), virtualFileUrlManager.fromUrl("file:///tmp"),
val entity = target addEntity SampleEntity(false, "hello", ArrayList(), HashMap(), virtualFileUrlManager.getOrCreateFromUri("file:///tmp"),
SampleEntitySource("test"))
val source = createBuilderFrom(target.toSnapshot())
source.modifyEntity(entity.from(source)) {
@@ -83,9 +83,9 @@ class ApplyChangesFromTest {
@RepeatedTest(10)
fun `remove removed entity`() {
val entity = target addEntity SampleEntity(false, "hello", ArrayList(), HashMap(), virtualFileUrlManager.fromUrl("file:///tmp"),
val entity = target addEntity SampleEntity(false, "hello", ArrayList(), HashMap(), virtualFileUrlManager.getOrCreateFromUri("file:///tmp"),
SampleEntitySource("test"))
val entity2 = target addEntity SampleEntity(false, "hello", ArrayList(), HashMap(), virtualFileUrlManager.fromUrl("file:///tmp"),
val entity2 = target addEntity SampleEntity(false, "hello", ArrayList(), HashMap(), virtualFileUrlManager.getOrCreateFromUri("file:///tmp"),
SampleEntitySource("test"))
val source = createBuilderFrom(target.toSnapshot())
target.removeEntity(entity)
@@ -98,7 +98,7 @@ class ApplyChangesFromTest {
@RepeatedTest(10)
fun `modify removed entity`() {
val entity = target addEntity SampleEntity(false, "hello", ArrayList(), HashMap(), virtualFileUrlManager.fromUrl("file:///tmp"),
val entity = target addEntity SampleEntity(false, "hello", ArrayList(), HashMap(), virtualFileUrlManager.getOrCreateFromUri("file:///tmp"),
SampleEntitySource("test"))
val source = createBuilderFrom(target.toSnapshot())
target.removeEntity(entity)
@@ -134,7 +134,7 @@ class ApplyChangesFromTest {
@RepeatedTest(10)
fun `remove modified entity`() {
val entity = target addEntity SampleEntity(false, "hello", ArrayList(), HashMap(), virtualFileUrlManager.fromUrl("file:///tmp"),
val entity = target addEntity SampleEntity(false, "hello", ArrayList(), HashMap(), virtualFileUrlManager.getOrCreateFromUri("file:///tmp"),
SampleEntitySource("test"))
val source = createBuilderFrom(target.toSnapshot())
target.modifyEntity(entity) {
@@ -149,10 +149,10 @@ class ApplyChangesFromTest {
@RepeatedTest(10)
fun `add entity with refs at the same slot`() {
val source = createEmptyBuilder()
source addEntity SampleEntity(false, "Another entity", ArrayList(), HashMap(), virtualFileUrlManager.fromUrl("file:///tmp"),
source addEntity SampleEntity(false, "Another entity", ArrayList(), HashMap(), virtualFileUrlManager.getOrCreateFromUri("file:///tmp"),
SampleEntitySource("test"))
val parentEntity = target addEntity SampleEntity(false, "hello", ArrayList(), HashMap(),
virtualFileUrlManager.fromUrl("file:///tmp"), SampleEntitySource("test"))
virtualFileUrlManager.getOrCreateFromUri("file:///tmp"), SampleEntitySource("test"))
target addEntity ChildSampleEntity("data", SampleEntitySource("test")) {
this@ChildSampleEntity.parentEntity = parentEntity
}
@@ -172,13 +172,13 @@ class ApplyChangesFromTest {
fun `add remove and add with refs`() {
val source = createEmptyBuilder()
val parent = source addEntity SampleEntity(false, "Another entity", ArrayList(), HashMap(),
virtualFileUrlManager.fromUrl("file:///tmp"), SampleEntitySource("test"))
virtualFileUrlManager.getOrCreateFromUri("file:///tmp"), SampleEntitySource("test"))
source addEntity ChildSampleEntity("String", SampleEntitySource("test")) {
parentEntity = parent
}
val parentEntity = target addEntity SampleEntity(false, "hello", ArrayList(), HashMap(),
virtualFileUrlManager.fromUrl("file:///tmp"), SampleEntitySource("test"))
virtualFileUrlManager.getOrCreateFromUri("file:///tmp"), SampleEntitySource("test"))
target addEntity ChildSampleEntity("data", SampleEntitySource("test")) {
this@ChildSampleEntity.parentEntity = parentEntity
}
@@ -202,7 +202,7 @@ class ApplyChangesFromTest {
@RepeatedTest(10)
fun `add dependency without changing entities`() {
val source = createEmptyBuilder()
source addEntity SampleEntity(false, "Another entity", ArrayList(), HashMap(), virtualFileUrlManager.fromUrl("file:///tmp"),
source addEntity SampleEntity(false, "Another entity", ArrayList(), HashMap(), virtualFileUrlManager.getOrCreateFromUri("file:///tmp"),
SampleEntitySource("test"))
source addEntity ChildSampleEntity("String", SampleEntitySource("test"))
@@ -321,12 +321,12 @@ class ApplyChangesFromTest {
fun `checking external mapping`() {
val target = createEmptyBuilder()
target addEntity SampleEntity(false, "Entity at index 0", ArrayList(), HashMap(), virtualFileUrlManager.fromUrl("file:///tmp"),
target addEntity SampleEntity(false, "Entity at index 0", ArrayList(), HashMap(), virtualFileUrlManager.getOrCreateFromUri("file:///tmp"),
SampleEntitySource("test"))
val source = createEmptyBuilder()
val sourceSample = source addEntity SampleEntity(false, "Entity at index 1", ArrayList(), HashMap(),
virtualFileUrlManager.fromUrl("file:///tmp"), SampleEntitySource("test"))
virtualFileUrlManager.getOrCreateFromUri("file:///tmp"), SampleEntitySource("test"))
val mutableExternalMapping = source.getMutableExternalMapping(externalMappingName)
val anyObj = Any()
mutableExternalMapping.addMapping(sourceSample, anyObj)
@@ -365,7 +365,7 @@ class ApplyChangesFromTest {
@RepeatedTest(10)
fun `change source in diff`() {
val sampleEntity = target addEntity SampleEntity(false, "Prop", ArrayList(), HashMap(),
virtualFileUrlManager.fromUrl("file:///tmp"), MySource)
virtualFileUrlManager.getOrCreateFromUri("file:///tmp"), MySource)
val source = createBuilderFrom(target)
source.modifyEntity(sampleEntity.from(source)) {
@@ -384,7 +384,7 @@ class ApplyChangesFromTest {
@RepeatedTest(10)
fun `change source and data in diff`() {
val sampleEntity = target addEntity SampleEntity(false, "Prop", ArrayList(), HashMap(),
virtualFileUrlManager.fromUrl("file:///tmp"), MySource)
virtualFileUrlManager.getOrCreateFromUri("file:///tmp"), MySource)
val source = createBuilderFrom(target)
source.modifyEntity(sampleEntity.from(source)) {
@@ -410,7 +410,7 @@ class ApplyChangesFromTest {
@RepeatedTest(10)
fun `change source in target`() {
val sampleEntity = target addEntity SampleEntity(false, "Prop", ArrayList(), HashMap(),
virtualFileUrlManager.fromUrl("file:///tmp"), MySource)
virtualFileUrlManager.getOrCreateFromUri("file:///tmp"), MySource)
val source = createBuilderFrom(target)
target.modifyEntity(sampleEntity) {
@@ -490,7 +490,7 @@ class ApplyChangesFromTest {
fun `removing non-existing entity while adding the new one`() {
val initial = createEmptyBuilder()
val toBeRemoved = initial addEntity SampleEntity(false, "En1", ArrayList(), HashMap(),
virtualFileUrlManager.fromUrl("file:///tmp"), SampleEntitySource("test"))
virtualFileUrlManager.getOrCreateFromUri("file:///tmp"), SampleEntitySource("test"))
val source = createBuilderFrom(initial)
@@ -498,7 +498,7 @@ class ApplyChangesFromTest {
val target = createBuilderFrom(initial.toSnapshot())
// In the incorrect implementation remove event will remove added entity
source addEntity SampleEntity(false, "En2", ArrayList(), HashMap(), virtualFileUrlManager.fromUrl("file:///tmp"),
source addEntity SampleEntity(false, "En2", ArrayList(), HashMap(), virtualFileUrlManager.getOrCreateFromUri("file:///tmp"),
SampleEntitySource("test"))
source.removeEntity(toBeRemoved.from(source))
@@ -648,7 +648,7 @@ class ApplyChangesFromTest {
@RepeatedTest(10)
fun `change source and data`() {
val sampleEntity = target addEntity SampleEntity(false, "Prop", ArrayList(), HashMap(),
virtualFileUrlManager.fromUrl("file:///tmp"), MySource)
virtualFileUrlManager.getOrCreateFromUri("file:///tmp"), MySource)
val source = createBuilderFrom(target)
source.modifyEntity(sampleEntity.from(source)) {

View File

@@ -25,7 +25,7 @@ class CollectChangesInBuilderTest {
"initial",
ArrayList(),
HashMap(),
VirtualFileUrlManagerImpl().fromUrl("file:///tmp"),
VirtualFileUrlManagerImpl().getOrCreateFromUri("file:///tmp"),
SampleEntitySource("test"))
addEntity(SecondSampleEntity(1, SampleEntitySource("test")))
}.toSnapshot()
@@ -38,7 +38,7 @@ class CollectChangesInBuilderTest {
"added",
ArrayList(),
HashMap(),
VirtualFileUrlManagerImpl().fromUrl("file:///tmp"),
VirtualFileUrlManagerImpl().getOrCreateFromUri("file:///tmp"),
SampleEntitySource("test"))
builder.addEntity(SecondSampleEntity(2, SampleEntitySource("test")))
builder.removeEntity(initialStorage.singleSampleEntity())
@@ -94,7 +94,7 @@ class CollectChangesInBuilderTest {
"added",
ArrayList(),
HashMap(),
VirtualFileUrlManagerImpl().fromUrl("file:///tmp"),
VirtualFileUrlManagerImpl().getOrCreateFromUri("file:///tmp"),
SampleEntitySource("test"))
builder.removeEntity(added)
assertChangelogSize(0)
@@ -107,7 +107,7 @@ class CollectChangesInBuilderTest {
"added",
ArrayList(),
HashMap(),
VirtualFileUrlManagerImpl().fromUrl("file:///tmp"),
VirtualFileUrlManagerImpl().getOrCreateFromUri("file:///tmp"),
SampleEntitySource("test"))
builder.modifyEntity(added) {
stringProperty = "changed"
@@ -122,7 +122,7 @@ class CollectChangesInBuilderTest {
"added",
ArrayList(),
HashMap(),
VirtualFileUrlManagerImpl().fromUrl("file:///tmp"),
VirtualFileUrlManagerImpl().getOrCreateFromUri("file:///tmp"),
SampleEntitySource("test"))
val modified = builder.modifyEntity(added) {
stringProperty = "changed"

View File

@@ -25,7 +25,7 @@ class EntityPointerTest {
@Test
fun basic() {
val builder = createEmptyBuilder()
val entity = builder addEntity SampleEntity(false, "data", ArrayList(), HashMap(), virtualFileUrlManager.fromUrl("file:///tmp"),
val entity = builder addEntity SampleEntity(false, "data", ArrayList(), HashMap(), virtualFileUrlManager.getOrCreateFromUri("file:///tmp"),
SampleEntitySource("test"))
val reference = entity.createPointer<SampleEntity>()
assertEquals(entity, reference.resolve(builder))
@@ -41,9 +41,9 @@ class EntityPointerTest {
@Test
fun equality() {
val builder = createEmptyBuilder()
val entity = builder addEntity SampleEntity(false, "data", ArrayList(), HashMap(), virtualFileUrlManager.fromUrl("file:///tmp"),
val entity = builder addEntity SampleEntity(false, "data", ArrayList(), HashMap(), virtualFileUrlManager.getOrCreateFromUri("file:///tmp"),
SampleEntitySource("test"))
val entity2 = builder addEntity SampleEntity(false, "data", ArrayList(), HashMap(), virtualFileUrlManager.fromUrl("file:///tmp"),
val entity2 = builder addEntity SampleEntity(false, "data", ArrayList(), HashMap(), virtualFileUrlManager.getOrCreateFromUri("file:///tmp"),
SampleEntitySource("test"))
val reference1 = entity.createPointer<SampleEntity>()
val reference2 = entity.createPointer<SampleEntity>()
@@ -55,14 +55,14 @@ class EntityPointerTest {
@Test
fun `replace entity by equal`() {
val builder = createEmptyBuilder()
builder addEntity SampleEntity(false, "foo", ArrayList(), HashMap(), virtualFileUrlManager.fromUrl("file:///tmp"),
builder addEntity SampleEntity(false, "foo", ArrayList(), HashMap(), virtualFileUrlManager.getOrCreateFromUri("file:///tmp"),
SampleEntitySource("test"))
val snapshot = builder.toSnapshot()
val entity = snapshot.singleSampleEntity()
val reference = entity.createPointer<SampleEntity>()
val newBuilder = createBuilderFrom(snapshot)
newBuilder.removeEntity(entity)
newBuilder addEntity SampleEntity(false, "foo", ArrayList(), HashMap(), virtualFileUrlManager.fromUrl("file:///tmp"),
newBuilder addEntity SampleEntity(false, "foo", ArrayList(), HashMap(), virtualFileUrlManager.getOrCreateFromUri("file:///tmp"),
SampleEntitySource("test"))
val changes = newBuilder.collectChanges()
//if there is an event about the change, the code which stores EntityReference is supposed to update it
@@ -77,12 +77,12 @@ class EntityPointerTest {
fun `wrong entity ref resolve in different storage`() {
val mutableStorage = MutableEntityStorage.create()
val sampleEntity = mutableStorage addEntity SampleEntity(false, "hello", ArrayList(), HashMap(),
virtualFileUrlManager.fromUrl("file:///tmp"),
virtualFileUrlManager.getOrCreateFromUri("file:///tmp"),
SampleEntitySource("test"))
val reference = sampleEntity.createPointer<SampleEntity>()
val mutableStorage1 = MutableEntityStorage.create()
mutableStorage1 addEntity SampleEntity(false, "buy", ArrayList(), HashMap(), virtualFileUrlManager.fromUrl("file:///tmp"),
mutableStorage1 addEntity SampleEntity(false, "buy", ArrayList(), HashMap(), virtualFileUrlManager.getOrCreateFromUri("file:///tmp"),
SampleEntitySource("test"))
assertNull(reference.resolve(mutableStorage1))
}
@@ -92,17 +92,17 @@ class EntityPointerTest {
fun `wrong entity ref resolve in same storage`() {
val mutableStorage = MutableEntityStorage.create()
val sampleEntity = mutableStorage addEntity SampleEntity(false, "hello", ArrayList(), HashMap(),
virtualFileUrlManager.fromUrl("file:///tmp"),
virtualFileUrlManager.getOrCreateFromUri("file:///tmp"),
SampleEntitySource("test"))
val reference = sampleEntity.createPointer<SampleEntity>()
mutableStorage addEntity SampleEntity(false, "buy", ArrayList(), HashMap(), virtualFileUrlManager.fromUrl("file:///tmp"),
mutableStorage addEntity SampleEntity(false, "buy", ArrayList(), HashMap(), virtualFileUrlManager.getOrCreateFromUri("file:///tmp"),
SampleEntitySource("test"))
val toBuilder = mutableStorage.toSnapshot().toBuilder()
val sampleEntity2 = toBuilder.entities(SampleEntity::class.java).first()
toBuilder.removeEntity(sampleEntity2)
val toBuilder1 = toBuilder.toSnapshot().toBuilder()
val sampleEntity1 = toBuilder1 addEntity SampleEntity(false, "own", ArrayList(), HashMap(),
virtualFileUrlManager.fromUrl("file:///tmp"), SampleEntitySource("test"))
virtualFileUrlManager.getOrCreateFromUri("file:///tmp"), SampleEntitySource("test"))
val resolve = reference.resolve(toBuilder1)
assertEquals(sampleEntity.stringProperty, resolve!!.stringProperty)
}

View File

@@ -30,7 +30,7 @@ class EntityStorageSerializationTest {
@Test
fun `simple model serialization`() {
val builder = createEmptyBuilder()
builder addEntity SampleEntity(false, "MyEntity", ArrayList(), HashMap(), virtualFileManager.fromUrl("file:///tmp"),
builder addEntity SampleEntity(false, "MyEntity", ArrayList(), HashMap(), virtualFileManager.getOrCreateFromUri("file:///tmp"),
SampleEntitySource("test"))
SerializationRoundTripChecker.verifyPSerializationRoundTrip(builder.toSnapshot(), VirtualFileUrlManagerImpl())
@@ -43,7 +43,7 @@ class EntityStorageSerializationTest {
VirtualFileUrlManagerImpl()
builder addEntity SampleEntity(false, stringProperty = "MyEntity",
stringListProperty = mutableListOf("a", "b"),
stringMapProperty = HashMap(), fileProperty = virtualFileManager.fromUrl("file:///tmp"),
stringMapProperty = HashMap(), fileProperty = virtualFileManager.getOrCreateFromUri("file:///tmp"),
entitySource = SampleEntitySource("test"))
SerializationRoundTripChecker.verifyPSerializationRoundTrip(builder.toSnapshot(), VirtualFileUrlManagerImpl())
@@ -62,7 +62,7 @@ class EntityStorageSerializationTest {
put("bc", "ce")
}
val entity = SampleEntity(false, "MyEntity", stringListProperty,
stringMapProperty, virtualFileManager.fromUrl("file:///tmp"), SampleEntitySource("test"))
stringMapProperty, virtualFileManager.getOrCreateFromUri("file:///tmp"), SampleEntitySource("test"))
builder.addEntity(entity)
val setProperty = buildSet {
@@ -86,7 +86,7 @@ class EntityStorageSerializationTest {
val virtualFileManager: VirtualFileUrlManager = VirtualFileUrlManagerImpl()
val builder = createEmptyBuilder()
val entity = SampleEntity(false, "MyEntity", emptyList(),
emptyMap(), virtualFileManager.fromUrl("file:///tmp"), SampleEntitySource("test")) {
emptyMap(), virtualFileManager.getOrCreateFromUri("file:///tmp"), SampleEntitySource("test")) {
randomUUID = UUID.fromString("58e0a7d7-eebc-11d8-9669-0800200c9a66")
}
builder.addEntity(entity)
@@ -97,7 +97,7 @@ class EntityStorageSerializationTest {
@Test
fun `serialization with version changing`() {
val builder = createEmptyBuilder()
builder addEntity SampleEntity(false, "MyEntity", ArrayList(), HashMap(), VirtualFileUrlManagerImpl().fromUrl("file:///tmp"),
builder addEntity SampleEntity(false, "MyEntity", ArrayList(), HashMap(), VirtualFileUrlManagerImpl().getOrCreateFromUri("file:///tmp"),
SampleEntitySource("test"))
val serializer = EntityStorageSerializerImpl(PluginAwareEntityTypesResolver, VirtualFileUrlManagerImpl())
@@ -175,7 +175,7 @@ class EntityStorageSerializationTest {
val builder = createEmptyBuilder()
builder addEntity SampleEntity(false, "myString", ArrayList(), HashMap(), VirtualFileUrlManagerImpl().fromUrl("file:///tmp"),
builder addEntity SampleEntity(false, "myString", ArrayList(), HashMap(), VirtualFileUrlManagerImpl().getOrCreateFromUri("file:///tmp"),
SampleEntitySource("test"))
withTempFile { file ->
@@ -206,7 +206,7 @@ class EntityStorageSerializationTest {
val builder = createEmptyBuilder()
builder addEntity SampleEntity(false, "myString", ArrayList(), HashMap(), VirtualFileUrlManagerImpl().fromUrl("file:///tmp"),
builder addEntity SampleEntity(false, "myString", ArrayList(), HashMap(), VirtualFileUrlManagerImpl().getOrCreateFromUri("file:///tmp"),
SampleEntitySource("test"))
withTempFile { file ->
@@ -226,7 +226,7 @@ class EntityStorageSerializationTest {
val entity = SampleEntity(
false, stringProperty = "MyEntity",
stringListProperty = mutableListOf("a", "b"),
stringMapProperty = HashMap(), fileProperty = virtualFileManager.fromUrl("file:///tmp"),
stringMapProperty = HashMap(), fileProperty = virtualFileManager.getOrCreateFromUri("file:///tmp"),
entitySource = SampleEntitySource("test")
)

View File

@@ -197,17 +197,17 @@ class ExternalEntityMappingTest {
fun `remove mapping if entity is removed`() {
val initialBuilder = createEmptyBuilder()
val entity1 = initialBuilder addEntity SampleEntity(false, "1", ArrayList(), HashMap(),
VirtualFileUrlManagerImpl().fromUrl("file:///tmp"), SampleEntitySource("test"))
VirtualFileUrlManagerImpl().getOrCreateFromUri("file:///tmp"), SampleEntitySource("test"))
initialBuilder.getMutableExternalMapping(INDEX_ID).addMapping(entity1, 1)
val entity2 = initialBuilder addEntity SampleEntity(false, "2", ArrayList(), HashMap(),
VirtualFileUrlManagerImpl().fromUrl("file:///tmp"), SampleEntitySource("test"))
VirtualFileUrlManagerImpl().getOrCreateFromUri("file:///tmp"), SampleEntitySource("test"))
initialBuilder.getMutableExternalMapping(INDEX_ID).addMapping(entity2, 2)
val storage = initialBuilder.toSnapshot()
assertEquals(1, storage.getExternalMapping(INDEX_ID).getDataByEntity(entity1))
assertEquals(2, storage.getExternalMapping(INDEX_ID).getDataByEntity(entity2))
val builder = createBuilderFrom(storage)
val entity3 = builder addEntity SampleEntity(false, "3", ArrayList(), HashMap(), VirtualFileUrlManagerImpl().fromUrl("file:///tmp"),
val entity3 = builder addEntity SampleEntity(false, "3", ArrayList(), HashMap(), VirtualFileUrlManagerImpl().getOrCreateFromUri("file:///tmp"),
SampleEntitySource("test"))
builder.getMutableExternalMapping(INDEX_ID).addMapping(entity3, 3)
builder.removeEntity(entity1.from(builder))
@@ -233,17 +233,17 @@ class ExternalEntityMappingTest {
fun `keep mapping if entity is modified`() {
val initialBuilder = createEmptyBuilder()
val entity1 = initialBuilder addEntity SampleEntity(false, "1", ArrayList(), HashMap(),
VirtualFileUrlManagerImpl().fromUrl("file:///tmp"), SampleEntitySource("test"))
VirtualFileUrlManagerImpl().getOrCreateFromUri("file:///tmp"), SampleEntitySource("test"))
initialBuilder.getMutableExternalMapping(INDEX_ID).addMapping(entity1, 1)
val entity2 = initialBuilder addEntity SampleEntity(false, "2", ArrayList(), HashMap(),
VirtualFileUrlManagerImpl().fromUrl("file:///tmp"), SampleEntitySource("test"))
VirtualFileUrlManagerImpl().getOrCreateFromUri("file:///tmp"), SampleEntitySource("test"))
initialBuilder.getMutableExternalMapping(INDEX_ID).addMapping(entity2, 2)
val storage = initialBuilder.toSnapshot()
assertEquals(1, storage.getExternalMapping(INDEX_ID).getDataByEntity(entity1))
assertEquals(2, storage.getExternalMapping(INDEX_ID).getDataByEntity(entity2))
val builder = createBuilderFrom(storage)
val entity3 = builder addEntity SampleEntity(false, "3", ArrayList(), HashMap(), VirtualFileUrlManagerImpl().fromUrl("file:///tmp"),
val entity3 = builder addEntity SampleEntity(false, "3", ArrayList(), HashMap(), VirtualFileUrlManagerImpl().getOrCreateFromUri("file:///tmp"),
SampleEntitySource("test"))
builder.getMutableExternalMapping(INDEX_ID).addMapping(entity3, 3)
val entity1a = builder.modifyEntity(entity1.from(builder)) {
@@ -276,10 +276,10 @@ class ExternalEntityMappingTest {
fun `update mapping when id changes on adding via diff`() {
val builder = createEmptyBuilder()
val diff = MutableEntityStorage.from(builder.toSnapshot())
val entity1 = builder addEntity SampleEntity(false, "1", ArrayList(), HashMap(), VirtualFileUrlManagerImpl().fromUrl("file:///tmp"),
val entity1 = builder addEntity SampleEntity(false, "1", ArrayList(), HashMap(), VirtualFileUrlManagerImpl().getOrCreateFromUri("file:///tmp"),
SampleEntitySource("test"))
builder.getMutableExternalMapping(INDEX_ID).addMapping(entity1, 1)
val entity2 = diff addEntity SampleEntity(false, "2", ArrayList(), HashMap(), VirtualFileUrlManagerImpl().fromUrl("file:///tmp"),
val entity2 = diff addEntity SampleEntity(false, "2", ArrayList(), HashMap(), VirtualFileUrlManagerImpl().getOrCreateFromUri("file:///tmp"),
SampleEntitySource("test"))
diff.getMutableExternalMapping(INDEX_ID).addMapping(entity2, 2)
builder.applyChangesFrom(diff)
@@ -298,11 +298,11 @@ class ExternalEntityMappingTest {
@Test
fun `merge mapping added after builder was created`() {
val initialBuilder = createEmptyBuilder()
initialBuilder addEntity SampleEntity(false, "foo", ArrayList(), HashMap(), VirtualFileUrlManagerImpl().fromUrl("file:///tmp"),
initialBuilder addEntity SampleEntity(false, "foo", ArrayList(), HashMap(), VirtualFileUrlManagerImpl().getOrCreateFromUri("file:///tmp"),
SampleEntitySource("test"))
val initialStorage = initialBuilder.toSnapshot()
val diff1 = MutableEntityStorage.from(initialStorage)
diff1 addEntity SampleEntity(false, "bar", ArrayList(), HashMap(), VirtualFileUrlManagerImpl().fromUrl("file:///tmp"),
diff1 addEntity SampleEntity(false, "bar", ArrayList(), HashMap(), VirtualFileUrlManagerImpl().getOrCreateFromUri("file:///tmp"),
SampleEntitySource("test"))
val diff2 = MutableEntityStorage.from(initialStorage)
@@ -325,7 +325,7 @@ class ExternalEntityMappingTest {
@Test
fun `replace by source add new mapping`() {
val initialBuilder = createEmptyBuilder()
initialBuilder addEntity SampleEntity(false, "foo", ArrayList(), HashMap(), VirtualFileUrlManagerImpl().fromUrl("file:///tmp"),
initialBuilder addEntity SampleEntity(false, "foo", ArrayList(), HashMap(), VirtualFileUrlManagerImpl().getOrCreateFromUri("file:///tmp"),
SampleEntitySource("test"))
val replacement = createBuilderFrom(initialBuilder)
@@ -339,11 +339,11 @@ class ExternalEntityMappingTest {
fun `replace by source add new mapping with new entity`() {
val initialBuilder = createEmptyBuilder()
val fooEntity = initialBuilder addEntity SampleEntity(false, "foo", ArrayList(), HashMap(),
VirtualFileUrlManagerImpl().fromUrl("file:///tmp"), SampleEntitySource("test"))
VirtualFileUrlManagerImpl().getOrCreateFromUri("file:///tmp"), SampleEntitySource("test"))
val replacement = createBuilderFrom(initialBuilder)
val barEntity = replacement addEntity SampleEntity(false, "bar", ArrayList(), HashMap(),
VirtualFileUrlManagerImpl().fromUrl("file:///tmp"), SampleEntitySource("test"))
VirtualFileUrlManagerImpl().getOrCreateFromUri("file:///tmp"), SampleEntitySource("test"))
var externalMapping = replacement.getMutableExternalMapping(INDEX_ID)
externalMapping.addMapping(fooEntity, 1)
externalMapping = replacement.getMutableExternalMapping(ANOTHER_INDEX_ID)
@@ -359,7 +359,7 @@ class ExternalEntityMappingTest {
fun `replace by source update mapping for old entity`() {
val initialBuilder = createEmptyBuilder()
val fooEntity = initialBuilder addEntity SampleEntity(false, "foo", ArrayList(), HashMap(),
VirtualFileUrlManagerImpl().fromUrl("file:///tmp"), SampleEntitySource("test"))
VirtualFileUrlManagerImpl().getOrCreateFromUri("file:///tmp"), SampleEntitySource("test"))
var externalMapping = initialBuilder.getMutableExternalMapping(INDEX_ID)
externalMapping.addMapping(fooEntity, 1)
@@ -375,13 +375,13 @@ class ExternalEntityMappingTest {
fun `replace by source update mapping for new entity`() {
val initialBuilder = createEmptyBuilder()
val fooEntity = initialBuilder addEntity SampleEntity(false, "foo", ArrayList(), HashMap(),
VirtualFileUrlManagerImpl().fromUrl("file:///tmp"), SampleEntitySource("test"))
VirtualFileUrlManagerImpl().getOrCreateFromUri("file:///tmp"), SampleEntitySource("test"))
var externalMapping = initialBuilder.getMutableExternalMapping(INDEX_ID)
externalMapping.addMapping(fooEntity, 1)
val replacement = createBuilderFrom(initialBuilder)
val barEntity = replacement addEntity SampleEntity(false, "bar", ArrayList(), HashMap(),
VirtualFileUrlManagerImpl().fromUrl("file:///tmp"), SampleEntitySource("test"))
VirtualFileUrlManagerImpl().getOrCreateFromUri("file:///tmp"), SampleEntitySource("test"))
externalMapping = replacement.getMutableExternalMapping(INDEX_ID)
externalMapping.addMapping(barEntity, 2)
initialBuilder.replaceBySource({ it is SampleEntitySource }, replacement)
@@ -394,13 +394,13 @@ class ExternalEntityMappingTest {
fun `replace by source remove from mapping`() {
val initialBuilder = createEmptyBuilder()
val fooEntity = initialBuilder addEntity SampleEntity(false, "foo", ArrayList(), HashMap(),
VirtualFileUrlManagerImpl().fromUrl("file:///tmp"), SampleEntitySource("test"))
VirtualFileUrlManagerImpl().getOrCreateFromUri("file:///tmp"), SampleEntitySource("test"))
var externalMapping = initialBuilder.getMutableExternalMapping(INDEX_ID)
externalMapping.addMapping(fooEntity, 1)
val replacement = createBuilderFrom(initialBuilder)
val barEntity = replacement addEntity SampleEntity(false, "bar", ArrayList(), HashMap(),
VirtualFileUrlManagerImpl().fromUrl("file:///tmp"), SampleEntitySource("test"))
VirtualFileUrlManagerImpl().getOrCreateFromUri("file:///tmp"), SampleEntitySource("test"))
externalMapping = replacement.getMutableExternalMapping(INDEX_ID)
externalMapping.addMapping(barEntity, 2)
externalMapping.removeMapping(barEntity)
@@ -415,7 +415,7 @@ class ExternalEntityMappingTest {
fun `replace by source cleanup mapping by entity remove`() {
val initialBuilder = createEmptyBuilder()
val fooEntity = initialBuilder addEntity SampleEntity(false, "foo", ArrayList(), HashMap(),
VirtualFileUrlManagerImpl().fromUrl("file:///tmp"), SampleEntitySource("test"))
VirtualFileUrlManagerImpl().getOrCreateFromUri("file:///tmp"), SampleEntitySource("test"))
val externalMapping = initialBuilder.getMutableExternalMapping(INDEX_ID)
externalMapping.addMapping(fooEntity, 1)
@@ -431,13 +431,13 @@ class ExternalEntityMappingTest {
fun `replace by source replace one mapping to another`() {
val initialBuilder = createEmptyBuilder()
val fooEntity = initialBuilder addEntity SampleEntity(false, "foo", ArrayList(), HashMap(),
VirtualFileUrlManagerImpl().fromUrl("file:///tmp"), SampleEntitySource("test"))
VirtualFileUrlManagerImpl().getOrCreateFromUri("file:///tmp"), SampleEntitySource("test"))
var externalMapping = initialBuilder.getMutableExternalMapping(INDEX_ID)
externalMapping.addMapping(fooEntity, 1)
val replacement = createEmptyBuilder()
var barEntity = replacement addEntity SampleEntity(false, "bar", ArrayList(), HashMap(),
VirtualFileUrlManagerImpl().fromUrl("file:///tmp"), SampleEntitySource("test"))
VirtualFileUrlManagerImpl().getOrCreateFromUri("file:///tmp"), SampleEntitySource("test"))
externalMapping = replacement.getMutableExternalMapping(ANOTHER_INDEX_ID)
externalMapping.addMapping(barEntity, 2)
initialBuilder.replaceBySource({ it is SampleEntitySource }, replacement)
@@ -452,13 +452,13 @@ class ExternalEntityMappingTest {
fun `replace by source replace mappings`() {
val initialBuilder = createEmptyBuilder()
val fooEntity = initialBuilder addEntity SampleEntity(false, "foo", ArrayList(), HashMap(),
VirtualFileUrlManagerImpl().fromUrl("file:///tmp"), SampleEntitySource("test"))
VirtualFileUrlManagerImpl().getOrCreateFromUri("file:///tmp"), SampleEntitySource("test"))
var externalMapping = initialBuilder.getMutableExternalMapping(INDEX_ID)
externalMapping.addMapping(fooEntity, 1)
val replacement = createEmptyBuilder()
var barEntity = replacement addEntity SampleEntity(false, "bar", ArrayList(), HashMap(),
VirtualFileUrlManagerImpl().fromUrl("file:///tmp"), SampleEntitySource("test"))
VirtualFileUrlManagerImpl().getOrCreateFromUri("file:///tmp"), SampleEntitySource("test"))
externalMapping = replacement.getMutableExternalMapping(INDEX_ID)
externalMapping.addMapping(barEntity, 2)
initialBuilder.replaceBySource({ it is SampleEntitySource }, replacement)
@@ -474,13 +474,13 @@ class ExternalEntityMappingTest {
fun `replace by source update mapping content and type`() {
val initialBuilder = createEmptyBuilder()
var fooEntity = initialBuilder addEntity SampleEntity(false, "foo", ArrayList(), HashMap(),
VirtualFileUrlManagerImpl().fromUrl("file:///tmp"), SampleEntitySource("test"))
VirtualFileUrlManagerImpl().getOrCreateFromUri("file:///tmp"), SampleEntitySource("test"))
val externalMapping = initialBuilder.getMutableExternalMapping(INDEX_ID)
externalMapping.addMapping(fooEntity, 1)
val replacement = createEmptyBuilder()
val secondFooEntity = replacement addEntity SampleEntity(false, "foo", ArrayList(), HashMap(),
VirtualFileUrlManagerImpl().fromUrl("file:///tmp"),
VirtualFileUrlManagerImpl().getOrCreateFromUri("file:///tmp"),
SampleEntitySource("test"))
val newExternalMapping = replacement.getMutableExternalMapping(INDEX_ID)
newExternalMapping.addMapping(secondFooEntity, "test")
@@ -496,7 +496,7 @@ class ExternalEntityMappingTest {
fun `replace by source empty mapping`() {
val initialBuilder = createEmptyBuilder()
val fooEntity = initialBuilder addEntity SampleEntity(false, "foo", ArrayList(), HashMap(),
VirtualFileUrlManagerImpl().fromUrl("file:///tmp"), SampleEntitySource("test"))
VirtualFileUrlManagerImpl().getOrCreateFromUri("file:///tmp"), SampleEntitySource("test"))
val externalMapping = initialBuilder.getMutableExternalMapping(INDEX_ID)
externalMapping.addMapping(fooEntity, 1)
@@ -511,18 +511,18 @@ class ExternalEntityMappingTest {
fun `replace by source update id in the mapping`() {
val initialBuilder = createEmptyBuilder()
val fooEntity = initialBuilder addEntity SampleEntity(false, "foo", ArrayList(), HashMap(),
VirtualFileUrlManagerImpl().fromUrl("file:///tmp"), SampleEntitySource("test"))
initialBuilder addEntity SampleEntity(false, "baz", ArrayList(), HashMap(), VirtualFileUrlManagerImpl().fromUrl("file:///tmp"),
VirtualFileUrlManagerImpl().getOrCreateFromUri("file:///tmp"), SampleEntitySource("test"))
initialBuilder addEntity SampleEntity(false, "baz", ArrayList(), HashMap(), VirtualFileUrlManagerImpl().getOrCreateFromUri("file:///tmp"),
SampleEntitySource("test"))
val barEntity = initialBuilder addEntity SampleEntity(false, "bar", ArrayList(), HashMap(),
VirtualFileUrlManagerImpl().fromUrl("file:///tmp"), SampleEntitySource("test"))
VirtualFileUrlManagerImpl().getOrCreateFromUri("file:///tmp"), SampleEntitySource("test"))
val replacement = createEmptyBuilder()
val externalMapping = replacement.getMutableExternalMapping(INDEX_ID)
val fooEntity1 = replacement addEntity SampleEntity(false, "foo", ArrayList(), HashMap(),
VirtualFileUrlManagerImpl().fromUrl("file:///tmp"), SampleEntitySource("test"))
VirtualFileUrlManagerImpl().getOrCreateFromUri("file:///tmp"), SampleEntitySource("test"))
val barEntity1 = replacement addEntity SampleEntity(false, "bar", ArrayList(), HashMap(),
VirtualFileUrlManagerImpl().fromUrl("file:///tmp"), SampleEntitySource("test"))
VirtualFileUrlManagerImpl().getOrCreateFromUri("file:///tmp"), SampleEntitySource("test"))
externalMapping.addMapping(fooEntity1, 1)
externalMapping.addMapping(barEntity1, 2)
initialBuilder.replaceBySource({ it is SampleEntitySource }, replacement)
@@ -538,13 +538,13 @@ class ExternalEntityMappingTest {
val commonBuilder = createEmptyBuilder()
val diff1 = createEmptyBuilder()
val foo1 = diff1 addEntity SampleEntity(false, "foo1", ArrayList(), HashMap(), VirtualFileUrlManagerImpl().fromUrl("file:///tmp"),
val foo1 = diff1 addEntity SampleEntity(false, "foo1", ArrayList(), HashMap(), VirtualFileUrlManagerImpl().getOrCreateFromUri("file:///tmp"),
SampleEntitySource("test"))
diff1.getMutableExternalMapping(INDEX_ID).addMapping(foo1, 1)
commonBuilder.applyChangesFrom(diff1)
val diff2 = createEmptyBuilder()
val foo2 = diff2 addEntity SampleEntity(false, "foo2", ArrayList(), HashMap(), VirtualFileUrlManagerImpl().fromUrl("file:///tmp"),
val foo2 = diff2 addEntity SampleEntity(false, "foo2", ArrayList(), HashMap(), VirtualFileUrlManagerImpl().getOrCreateFromUri("file:///tmp"),
SampleEntitySource("test"))
diff2.getMutableExternalMapping(INDEX_ID).addMapping(foo2, 2)
diff2.removeEntity(foo2)
@@ -560,7 +560,7 @@ class ExternalEntityMappingTest {
fun `remove mapping for removed entity after merge`() {
val initialBuilder = createEmptyBuilder()
val foo = initialBuilder addEntity SampleEntity(false, "foo", ArrayList(), HashMap(),
VirtualFileUrlManagerImpl().fromUrl("file:///tmp"), SampleEntitySource("test"))
VirtualFileUrlManagerImpl().getOrCreateFromUri("file:///tmp"), SampleEntitySource("test"))
initialBuilder.getMutableExternalMapping(INDEX_ID).addMapping(foo, 1)
val initialStorage = initialBuilder.toSnapshot()
@@ -579,7 +579,7 @@ class ExternalEntityMappingTest {
fun `check double mapping adding`() {
val initialBuilder = createEmptyBuilder()
val foo = initialBuilder addEntity SampleEntity(false, "foo", ArrayList(), HashMap(),
VirtualFileUrlManagerImpl().fromUrl("file:///tmp"), SampleEntitySource("test"))
VirtualFileUrlManagerImpl().getOrCreateFromUri("file:///tmp"), SampleEntitySource("test"))
initialBuilder.getMutableExternalMapping(INDEX_ID).addMapping(foo, 1)
initialBuilder.getMutableExternalMapping(INDEX_ID).addMapping(foo, 2)
assertEquals(2, ((initialBuilder.getMutableExternalMapping(INDEX_ID) as MutableExternalEntityMappingImpl)
@@ -592,7 +592,7 @@ class ExternalEntityMappingTest {
fun `mapping replacement generates remove plus add events`() {
val initialBuilder = createEmptyBuilder()
val foo = initialBuilder addEntity SampleEntity(false, "foo", ArrayList(), HashMap(),
VirtualFileUrlManagerImpl().fromUrl("file:///tmp"), SampleEntitySource("test"))
VirtualFileUrlManagerImpl().getOrCreateFromUri("file:///tmp"), SampleEntitySource("test"))
initialBuilder.getMutableExternalMapping(INDEX_ID).addMapping(foo, 1)
val newBuilder = initialBuilder.toSnapshot().toBuilder()
@@ -611,12 +611,12 @@ class ExternalEntityMappingTest {
fun `index log don't have removed entity that was not commited`() {
val initialBuilder = createEmptyBuilder()
val foo = initialBuilder addEntity SampleEntity(false, "foo", ArrayList(), HashMap(),
VirtualFileUrlManagerImpl().fromUrl("file:///tmp"), SampleEntitySource("test"))
VirtualFileUrlManagerImpl().getOrCreateFromUri("file:///tmp"), SampleEntitySource("test"))
initialBuilder.getMutableExternalMapping(INDEX_ID).addMapping(foo, 1)
val newBuilder = initialBuilder.toSnapshot().toBuilder()
val addedEntity = newBuilder addEntity SampleEntity(false, "foo", ArrayList(), HashMap(),
VirtualFileUrlManagerImpl().fromUrl("file:///tmp"), SampleEntitySource("test"))
VirtualFileUrlManagerImpl().getOrCreateFromUri("file:///tmp"), SampleEntitySource("test"))
newBuilder.removeEntity(addedEntity)
assertEquals(0, (newBuilder.getMutableExternalMapping(INDEX_ID) as MutableExternalEntityMappingImpl)

View File

@@ -13,7 +13,7 @@ class MoveEntitiesBetweenStoragesTest {
@Test
fun `move entity`() {
val snapshot = createEmptyBuilder().also {
it addEntity SampleEntity(false, "to copy", ArrayList(), HashMap(), VirtualFileUrlManagerImpl().fromUrl("file:///tmp"),
it addEntity SampleEntity(false, "to copy", ArrayList(), HashMap(), VirtualFileUrlManagerImpl().getOrCreateFromUri("file:///tmp"),
SampleEntitySource("test"))
}.toSnapshot()

View File

@@ -72,12 +72,12 @@ class MutableEntityCollectionTest {
}
makeReplaceOnListOperationAndCheck(builder, listOf("/user/a.txt", "/user/f.txt"), listOf("/user/c.txt")) { entity, vfu ->
entity.fileProperty.retainAll(listOf(virtualFileManager.fromUrl("/user/c.txt")))
entity.fileProperty.retainAll(listOf(virtualFileManager.getOrCreateFromUri("/user/c.txt")))
}
makeReplaceOnListOperationAndCheck(builder, listOf("/user/c.txt"), listOf("/user/e.txt")) { entity, vfu ->
entity.fileProperty.replaceAll {
if (it == vfu.single()) virtualFileManager.fromUrl("/user/e.txt") else it
if (it == vfu.single()) virtualFileManager.getOrCreateFromUri("/user/e.txt") else it
}
}
@@ -90,7 +90,7 @@ class MutableEntityCollectionTest {
val listIterator = entity.fileProperty.listIterator()
while (listIterator.hasNext()) {
val element = listIterator.next()
if (element == vfu.single()) listIterator.set(virtualFileManager.fromUrl("/user/k.txt"))
if (element == vfu.single()) listIterator.set(virtualFileManager.getOrCreateFromUri("/user/k.txt"))
}
}
@@ -117,7 +117,7 @@ class MutableEntityCollectionTest {
@Test
fun `check vfu set basic operations`() {
val vfuSet = listOf("/user/a.txt", "/user/b.txt", "/user/c.txt", "/user/opt/app/a.txt").map { virtualFileManager.fromUrl(it) }.toSet()
val vfuSet = listOf("/user/a.txt", "/user/b.txt", "/user/c.txt", "/user/opt/app/a.txt").map { virtualFileManager.getOrCreateFromUri(it) }.toSet()
val builder = createEmptyBuilder()
builder.addEntity(SetVFUEntity("hello", vfuSet, SampleEntitySource("test")))
@@ -147,7 +147,7 @@ class MutableEntityCollectionTest {
//}
makeReplaceOnSetOperationAndCheck(builder, listOf("/user/b.txt", "/user/opt/app/a.txt"), listOf("/user/c.txt")) { entity, vfu ->
entity.fileProperty.retainAll(listOf(virtualFileManager.fromUrl("/user/c.txt")))
entity.fileProperty.retainAll(listOf(virtualFileManager.getOrCreateFromUri("/user/c.txt")))
}
// TODO:: Not supported
@@ -171,7 +171,7 @@ class MutableEntityCollectionTest {
private fun makeOperationOnSetAndCheck(builder: MutableEntityStorageImpl, vararg urls: String, removeOperation: Boolean = false,
operation: (SetVFUEntity.Builder, Set<VirtualFileUrl>) -> Unit) {
val entity = builder.entities(SetVFUEntity::class.java).single()
val vfuForAction = urls.map { virtualFileManager.fromUrl(it) }.toSet()
val vfuForAction = urls.map { virtualFileManager.getOrCreateFromUri(it) }.toSet()
var virtualFiles = builder.indexes.virtualFileIndex.getVirtualFiles((entity as WorkspaceEntityBase).id)
if (removeOperation) vfuForAction.forEach { assertTrue(virtualFiles.contains(it)) }
@@ -193,7 +193,7 @@ class MutableEntityCollectionTest {
@Test
fun `collection modification allowed only in modifyEntity block`() {
val vfuSet = listOf("/user/a.txt", "/user/b.txt", "/user/c.txt", "/user/opt/app/a.txt").map { virtualFileManager.fromUrl(it) }.toSet()
val vfuSet = listOf("/user/a.txt", "/user/b.txt", "/user/c.txt", "/user/opt/app/a.txt").map { virtualFileManager.getOrCreateFromUri(it) }.toSet()
val builder = createEmptyBuilder()
builder.addEntity(SetVFUEntity("hello", vfuSet, SampleEntitySource("test")))
val entity = builder.entities(SetVFUEntity::class.java).first()
@@ -205,7 +205,7 @@ class MutableEntityCollectionTest {
@Test
fun `check lambda is available only in certain places`() {
val vfuSet = listOf("/user/a.txt", "/user/b.txt", "/user/c.txt", "/user/opt/app/a.txt").map { virtualFileManager.fromUrl(it) }.toSet()
val vfuSet = listOf("/user/a.txt", "/user/b.txt", "/user/c.txt", "/user/opt/app/a.txt").map { virtualFileManager.getOrCreateFromUri(it) }.toSet()
val builder = createEmptyBuilder()
val entity = SetVFUEntity("hello", vfuSet, SampleEntitySource("test"))
assertNotNull((entity.fileProperty as MutableWorkspaceSet).getModificationUpdateAction())
@@ -224,7 +224,7 @@ class MutableEntityCollectionTest {
private fun makeReplaceOnSetOperationAndCheck(builder: MutableEntityStorageImpl, oldUrls: List<String>, newUrls: List<String>,
operation: (SetVFUEntity.Builder, Set<VirtualFileUrl>) -> Unit) {
val entity = builder.entities(SetVFUEntity::class.java).single()
val vfuForAction = oldUrls.map { virtualFileManager.fromUrl(it) }.toSet()
val vfuForAction = oldUrls.map { virtualFileManager.getOrCreateFromUri(it) }.toSet()
var virtualFiles = builder.indexes.virtualFileIndex.getVirtualFiles((entity as WorkspaceEntityBase).id)
vfuForAction.forEach { assertTrue(virtualFiles.contains(it)) }
@@ -235,13 +235,13 @@ class MutableEntityCollectionTest {
virtualFiles = builder.indexes.virtualFileIndex.getVirtualFiles((entity as WorkspaceEntityBase).id)
vfuForAction.forEach { assertFalse(virtualFiles.contains(it)) }
newUrls.map { virtualFileManager.fromUrl(it) }.forEach { assertTrue(virtualFiles.contains(it)) }
newUrls.map { virtualFileManager.getOrCreateFromUri(it) }.forEach { assertTrue(virtualFiles.contains(it)) }
}
private fun makeOperationOnListAndCheck(builder: MutableEntityStorageImpl, vararg urls: String, removeOperation: Boolean = false,
operation: (ListVFUEntity.Builder, List<VirtualFileUrl>) -> Unit) {
val entity = builder.entities(ListVFUEntity::class.java).single()
val vfuForAction = urls.map { virtualFileManager.fromUrl(it) }
val vfuForAction = urls.map { virtualFileManager.getOrCreateFromUri(it) }
var virtualFiles = builder.indexes.virtualFileIndex.getVirtualFiles((entity as WorkspaceEntityBase).id)
if (removeOperation) vfuForAction.forEach { assertTrue(virtualFiles.contains(it)) }
@@ -264,7 +264,7 @@ class MutableEntityCollectionTest {
private fun makeReplaceOnListOperationAndCheck(builder: MutableEntityStorageImpl, oldUrls: List<String>, newUrls: List<String>,
operation: (ListVFUEntity.Builder, List<VirtualFileUrl>) -> Unit) {
val entity = builder.entities(ListVFUEntity::class.java).single()
val vfuForAction = oldUrls.map { virtualFileManager.fromUrl(it) }
val vfuForAction = oldUrls.map { virtualFileManager.getOrCreateFromUri(it) }
var virtualFiles = builder.indexes.virtualFileIndex.getVirtualFiles((entity as WorkspaceEntityBase).id)
vfuForAction.forEach { assertTrue(virtualFiles.contains(it)) }
@@ -275,6 +275,6 @@ class MutableEntityCollectionTest {
virtualFiles = builder.indexes.virtualFileIndex.getVirtualFiles((entity as WorkspaceEntityBase).id)
vfuForAction.forEach { assertFalse(virtualFiles.contains(it)) }
newUrls.map { virtualFileManager.fromUrl(it) }.forEach { assertTrue(virtualFiles.contains(it)) }
newUrls.map { virtualFileManager.getOrCreateFromUri(it) }.forEach { assertTrue(virtualFiles.contains(it)) }
}
}

View File

@@ -1030,9 +1030,9 @@ class ReplaceBySourceTest {
@RepeatedTest(10)
fun `non persistent id root`() {
val targetEntity = builder addEntity SampleEntity(false, "data", ArrayList(), HashMap(),
VirtualFileUrlManagerImpl().fromUrl("file:///tmp"), MySource)
VirtualFileUrlManagerImpl().getOrCreateFromUri("file:///tmp"), MySource)
val replaceWithEntity = replacement addEntity SampleEntity(false, "data", ArrayList(), HashMap(),
VirtualFileUrlManagerImpl().fromUrl("file:///tmp"), MySource)
VirtualFileUrlManagerImpl().getOrCreateFromUri("file:///tmp"), MySource)
rbsMySources()

View File

@@ -27,7 +27,7 @@ class SimplePropertiesInStorageTest {
val builder = createEmptyBuilder()
val source = SampleEntitySource("test")
val entity = builder addEntity SampleEntity(true, "hello", mutableListOf("one", "two"), HashMap(),
virtualFileManager.fromUrl("file:///tmp"), source)
virtualFileManager.getOrCreateFromUri("file:///tmp"), source)
assertTrue(entity.booleanProperty)
assertEquals("hello", entity.stringProperty)
assertEquals(listOf("one", "two"), entity.stringListProperty)
@@ -38,7 +38,7 @@ class SimplePropertiesInStorageTest {
@Test
fun `remove entity`() {
val builder = createEmptyBuilder()
val entity = builder addEntity SampleEntity(false, "hello", ArrayList(), HashMap(), VirtualFileUrlManagerImpl().fromUrl("file:///tmp"),
val entity = builder addEntity SampleEntity(false, "hello", ArrayList(), HashMap(), VirtualFileUrlManagerImpl().getOrCreateFromUri("file:///tmp"),
SampleEntitySource("test"))
builder.removeEntity(entity)
assertTrue(builder.entities(SampleEntity::class.java).toList().isEmpty())
@@ -49,12 +49,12 @@ class SimplePropertiesInStorageTest {
fun `modify entity`() {
val builder = createEmptyBuilder()
val original = builder addEntity SampleEntity(false, "hello", ArrayList(), HashMap(),
VirtualFileUrlManagerImpl().fromUrl("file:///tmp"), SampleEntitySource("test"))
VirtualFileUrlManagerImpl().getOrCreateFromUri("file:///tmp"), SampleEntitySource("test"))
val modified = builder.modifyEntity(original) {
stringProperty = "foo"
stringListProperty.add("first")
booleanProperty = true
fileProperty = virtualFileManager.fromUrl("file:///xxx")
fileProperty = virtualFileManager.getOrCreateFromUri("file:///xxx")
}
assertEquals("hello", original.stringProperty)
assertEquals(emptyList<String>(), original.stringListProperty)
@@ -67,7 +67,7 @@ class SimplePropertiesInStorageTest {
@Test
fun `builder from storage`() {
val storage = createEmptyBuilder().apply {
this addEntity SampleEntity(false, "hello", ArrayList(), HashMap(), VirtualFileUrlManagerImpl().fromUrl("file:///tmp"),
this addEntity SampleEntity(false, "hello", ArrayList(), HashMap(), VirtualFileUrlManagerImpl().getOrCreateFromUri("file:///tmp"),
SampleEntitySource("test"))
}.toSnapshot()
@@ -87,7 +87,7 @@ class SimplePropertiesInStorageTest {
@Test
fun `snapshot from builder`() {
val builder = createEmptyBuilder()
builder addEntity SampleEntity(false, "hello", ArrayList(), HashMap(), VirtualFileUrlManagerImpl().fromUrl("file:///tmp"),
builder addEntity SampleEntity(false, "hello", ArrayList(), HashMap(), VirtualFileUrlManagerImpl().getOrCreateFromUri("file:///tmp"),
SampleEntitySource("test"))
val snapshot = builder.toSnapshot()
@@ -137,7 +137,7 @@ class SimplePropertiesInStorageTest {
val builder = createEmptyBuilder()
val source1 = SampleEntitySource("1")
val source2 = SampleEntitySource("2")
val foo = builder addEntity SampleEntity(false, "foo", ArrayList(), HashMap(), VirtualFileUrlManagerImpl().fromUrl("file:///tmp"),
val foo = builder addEntity SampleEntity(false, "foo", ArrayList(), HashMap(), VirtualFileUrlManagerImpl().getOrCreateFromUri("file:///tmp"),
source1)
val foo2 = builder.modifyEntity(foo) { this.entitySource = source2 }
assertEquals(source1, foo.entitySource)
@@ -151,7 +151,7 @@ class SimplePropertiesInStorageTest {
fun `test trying to modify non-existing entity`() {
val builder = createEmptyBuilder()
val sampleEntity = builder addEntity SampleEntity(false, "Prop", ArrayList(), HashMap(),
VirtualFileUrlManagerImpl().fromUrl("file:///tmp"), SampleEntitySource("test"))
VirtualFileUrlManagerImpl().getOrCreateFromUri("file:///tmp"), SampleEntitySource("test"))
val anotherBuilder = createEmptyBuilder()
assertThrows<IllegalStateException> {
anotherBuilder.modifyEntity(sampleEntity) {

View File

@@ -41,8 +41,8 @@ class VirtualFileIndexTest {
assertEquals(fileUrl, entity.fileProperty.url)
val modifiedEntity = builder.modifyEntity(entity) {
this.fileProperty = virtualFileManager.fromUrl(fileUrl2)
this.fileProperty = virtualFileManager.fromUrl(fileUrl3)
this.fileProperty = virtualFileManager.getOrCreateFromUri(fileUrl2)
this.fileProperty = virtualFileManager.getOrCreateFromUri(fileUrl3)
} as VFUEntityImpl
assertEquals(fileUrl3, modifiedEntity.fileProperty.url)
val virtualFiles = builder.indexes.virtualFileIndex.getVirtualFiles(modifiedEntity.id)
@@ -154,7 +154,7 @@ class VirtualFileIndexTest {
assertEquals(entityB.fileProperty, virtualFile.first())
entityB = diff.modifyEntity((entityB as VFUEntity).from(diff)) {
fileProperty = virtualFileManager.fromUrl(fileUrlC)
fileProperty = virtualFileManager.getOrCreateFromUri(fileUrlC)
} as VFUEntityImpl
assertEquals(entityA.fileProperty, diff.indexes.virtualFileIndex.getVirtualFiles(entityA.id).first())
virtualFile = diff.indexes.virtualFileIndex.getVirtualFiles(entityB.id)

View File

@@ -180,10 +180,10 @@ class VirtualFileUrlManagerTest {
@Test
fun `check from path`() {
assertEquals("file://", virtualFileManager.fromUrl(VfsUtilCore.pathToUrl("")).url)
assertEquals("file://", virtualFileManager.getOrCreateFromUri(VfsUtilCore.pathToUrl("")).url)
fun assertUrlFromPath(path: String) {
assertEquals(VfsUtil.pathToUrl(path), virtualFileManager.fromUrl(VfsUtilCore.pathToUrl(path)).url)
assertEquals(VfsUtil.pathToUrl(path), virtualFileManager.getOrCreateFromUri(VfsUtilCore.pathToUrl(path)).url)
}
assertUrlFromPath("/main/a.jar")
@@ -194,14 +194,14 @@ class VirtualFileUrlManagerTest {
@Test
fun `check normalize slashes`() {
assertEquals("jar://C:/Users/X/a.txt", virtualFileManager.fromUrl("jar://C:/Users\\X\\a.txt").url)
assertEquals("jar://C:/Users/X/a.txt", virtualFileManager.getOrCreateFromUri("jar://C:/Users\\X\\a.txt").url)
}
private fun assertFilePath(expectedResult: String?, url: String) {
assertEquals(expectedResult, virtualFileManager.fromUrl(url).presentableUrl)
assertEquals(expectedResult, virtualFileManager.getOrCreateFromUri(url).presentableUrl)
}
private fun roundTrip(url: String) {
assertEquals(url, virtualFileManager.fromUrl(url).url)
assertEquals(url, virtualFileManager.getOrCreateFromUri(url).url)
}
}

View File

@@ -29,9 +29,9 @@ class WorkspaceEntityEqualityTest {
@Test
fun `equality from different stores`() {
val entityOne = builderOne addEntity SampleEntity(false, "Data", ArrayList(), HashMap(),
VirtualFileUrlManagerImpl().fromUrl("file:///tmp"), SampleEntitySource("test"))
VirtualFileUrlManagerImpl().getOrCreateFromUri("file:///tmp"), SampleEntitySource("test"))
val entityTwo = builderTwo addEntity SampleEntity(false, "Data", ArrayList(), HashMap(),
VirtualFileUrlManagerImpl().fromUrl("file:///tmp"), SampleEntitySource("test"))
VirtualFileUrlManagerImpl().getOrCreateFromUri("file:///tmp"), SampleEntitySource("test"))
assertNotEquals(entityOne, entityTwo)
}
@@ -39,7 +39,7 @@ class WorkspaceEntityEqualityTest {
@Test
fun `equality modified entity in builder`() {
val entityOne = builderOne addEntity SampleEntity(false, "Data", ArrayList(), HashMap(),
VirtualFileUrlManagerImpl().fromUrl("file:///tmp"), SampleEntitySource("test"))
VirtualFileUrlManagerImpl().getOrCreateFromUri("file:///tmp"), SampleEntitySource("test"))
val entityTwo = builderOne.modifyEntity(entityOne) {
stringProperty = "AnotherData"
}
@@ -50,7 +50,7 @@ class WorkspaceEntityEqualityTest {
@Test
fun `equality modified entity`() {
builderOne addEntity SampleEntity(false, "Data", ArrayList(), HashMap(), VirtualFileUrlManagerImpl().fromUrl("file:///tmp"),
builderOne addEntity SampleEntity(false, "Data", ArrayList(), HashMap(), VirtualFileUrlManagerImpl().getOrCreateFromUri("file:///tmp"),
SampleEntitySource("test"))
val storage = builderOne.toSnapshot()
val entityOne = storage.entities(SampleEntity::class.java).single()
@@ -65,9 +65,9 @@ class WorkspaceEntityEqualityTest {
@Test
fun `equality modified another entity`() {
builderOne addEntity SampleEntity(false, "Data1", ArrayList(), HashMap(), VirtualFileUrlManagerImpl().fromUrl("file:///tmp"),
builderOne addEntity SampleEntity(false, "Data1", ArrayList(), HashMap(), VirtualFileUrlManagerImpl().getOrCreateFromUri("file:///tmp"),
SampleEntitySource("test"))
builderOne addEntity SampleEntity(false, "Data2", ArrayList(), HashMap(), VirtualFileUrlManagerImpl().fromUrl("file:///tmp"),
builderOne addEntity SampleEntity(false, "Data2", ArrayList(), HashMap(), VirtualFileUrlManagerImpl().getOrCreateFromUri("file:///tmp"),
SampleEntitySource("test"))
val storage = builderOne.toSnapshot()
val entityOne = storage.entities(SampleEntity::class.java).single { it.stringProperty == "Data1" }
@@ -84,9 +84,9 @@ class WorkspaceEntityEqualityTest {
@Test
fun `equality in set`() {
builderOne addEntity SampleEntity(false, "Data1", ArrayList(), HashMap(), VirtualFileUrlManagerImpl().fromUrl("file:///tmp"),
builderOne addEntity SampleEntity(false, "Data1", ArrayList(), HashMap(), VirtualFileUrlManagerImpl().getOrCreateFromUri("file:///tmp"),
SampleEntitySource("test"))
builderOne addEntity SampleEntity(false, "Data2", ArrayList(), HashMap(), VirtualFileUrlManagerImpl().fromUrl("file:///tmp"),
builderOne addEntity SampleEntity(false, "Data2", ArrayList(), HashMap(), VirtualFileUrlManagerImpl().getOrCreateFromUri("file:///tmp"),
SampleEntitySource("test"))
val checkSet = HashSet<SampleEntity>()
@@ -118,7 +118,7 @@ class WorkspaceEntityEqualityTest {
@Disabled
@Test
fun `equality for entity from event and from updated snapshot after dummy modification`() {
builderOne addEntity SampleEntity(false, "Data", ArrayList(), HashMap(), VirtualFileUrlManagerImpl().fromUrl("file:///tmp"),
builderOne addEntity SampleEntity(false, "Data", ArrayList(), HashMap(), VirtualFileUrlManagerImpl().getOrCreateFromUri("file:///tmp"),
SampleEntitySource("test"))
builderTwo.applyChangesFrom(builderOne)
val entityInEvent = builderTwo.collectChanges()[SampleEntity::class.java]!!.single().newEntity!!
@@ -140,7 +140,7 @@ class WorkspaceEntityEqualityTest {
@Test
fun `cache for requests works`() {
builderOne addEntity SampleEntity(false, "Data", ArrayList(), HashMap(), VirtualFileUrlManagerImpl().fromUrl("file:///tmp"),
builderOne addEntity SampleEntity(false, "Data", ArrayList(), HashMap(), VirtualFileUrlManagerImpl().getOrCreateFromUri("file:///tmp"),
SampleEntitySource("test"))
val snapshot = builderOne.toSnapshot()

View File

@@ -16,7 +16,7 @@ class ExternalEntityMappingImplTest {
fun `mapping mutability test`() {
val initialBuilder = createEmptyBuilder()
val sampleEntity = initialBuilder addEntity SampleEntity(false, "123", ArrayList(), HashMap(),
VirtualFileUrlManagerImpl().fromUrl("file:///tmp"),
VirtualFileUrlManagerImpl().getOrCreateFromUri("file:///tmp"),
SampleEntitySource("test"))
val mutableMapping = initialBuilder.getMutableExternalMapping(externalMappingKey)
mutableMapping.addMapping(sampleEntity, 1)
@@ -24,7 +24,7 @@ class ExternalEntityMappingImplTest {
val newBuilder = createBuilderFrom(initialBuilder)
val anotherEntity = initialBuilder addEntity SampleEntity(false, "321", ArrayList(), HashMap(),
VirtualFileUrlManagerImpl().fromUrl("file:///tmp"),
VirtualFileUrlManagerImpl().getOrCreateFromUri("file:///tmp"),
SampleEntitySource("test"))
mutableMapping.addMapping(anotherEntity, 2)

View File

@@ -784,7 +784,7 @@ class WorkspaceBuilderChangeLogTest {
fun updateParentOfOneToOneChild() {
val child = builder addEntity ChildSampleEntity("data", MySource)
val newBuilder = builder.toSnapshot().toBuilder() as MutableEntityStorageImpl
newBuilder addEntity SampleEntity(true, "", listOf(), emptyMap(), VirtualFileUrlManagerImpl().fromUrl("file:///tmp"), MySource) {
newBuilder addEntity SampleEntity(true, "", listOf(), emptyMap(), VirtualFileUrlManagerImpl().getOrCreateFromUri("file:///tmp"), MySource) {
this.children = listOf(child)
}

View File

@@ -140,7 +140,7 @@ class SimpleMetadataSerializationTest: MetadataSerializationTest() {
builder addEntity com.intellij.platform.workspace.storage.testEntities.entities.cacheVersion.KeyPropEntity(
someInt = 5,
text = "cache version",
url = virtualFileManager.fromUrl("file:///tmp"),
url = virtualFileManager.getOrCreateFromUri("file:///tmp"),
SampleEntitySource("test")
)

View File

@@ -517,7 +517,7 @@ private object SampleEntityManipulation : EntityManipulation {
someProperty: String,
env: ImperativeCommand.Environment): Pair<WorkspaceEntity?, String> {
return storage addEntity SampleEntity(false, someProperty, ArrayList(), HashMap(),
VirtualFileUrlManagerImpl().fromUrl("file:///tmp"),
VirtualFileUrlManagerImpl().getOrCreateFromUri("file:///tmp"),
source) to "property: $someProperty"
}
}
@@ -541,7 +541,7 @@ private object SampleEntityManipulation : EntityManipulation {
someProperty: String,
env: ImperativeCommand.Environment): Pair<WorkspaceEntity?, String> {
val virtualFileManager = VirtualFileUrlManagerImpl()
return SampleEntity(false, someProperty, emptyList(), emptyMap(), virtualFileManager.fromUrl("file:///tmp"), source) {
return SampleEntity(false, someProperty, emptyList(), emptyMap(), virtualFileManager.getOrCreateFromUri("file:///tmp"), source) {
this.children = emptyList()
} to "property: $someProperty"
}

View File

@@ -102,7 +102,7 @@ public final class EclipseClasspathStorageProvider implements ClasspathStoragePr
VirtualFileUrlManager virtualFileUrlManager = VirtualFileUrls.getVirtualFileUrlManager(model.getModule().getProject());
String contentRoot = getContentRoot(model);
String classpathFileUrl = VfsUtilCore.pathToUrl(contentRoot) + "/" + EclipseXml.CLASSPATH_FILE;
return new EclipseProjectFile(virtualFileUrlManager.fromUrl(classpathFileUrl), (JpsFileEntitySource)source);
return new EclipseProjectFile(virtualFileUrlManager.getOrCreateFromUri(classpathFileUrl), (JpsFileEntitySource)source);
});
}

View File

@@ -30,7 +30,7 @@ class EclipseModuleManagerSerializer : CustomModuleComponentSerializer {
}
(entity as EclipseProjectPropertiesEntity.Builder).apply {
componentTag.getChildren(LIBELEMENT).forEach {
eclipseUrls.add(virtualFileManager.fromUrl(it.getAttributeValue(VALUE_ATTR)!!))
eclipseUrls.add(virtualFileManager.getOrCreateFromUri(it.getAttributeValue(VALUE_ATTR)!!))
}
componentTag.getChildren(VARELEMENT).forEach {
variablePaths = variablePaths.toMutableMap().also { map ->

View File

@@ -215,7 +215,7 @@ class EclipseModuleRootsSerializer : CustomModuleRootsSerializer, StorageManager
val linked = expandLinkedResourcesPath(storageRootPath, expandMacroMap, path)
val outputUrl: VirtualFileUrl
if (linked != null) {
outputUrl = virtualUrlManager.fromUrl(pathToUrl(linked))
outputUrl = virtualUrlManager.getOrCreateFromUri(pathToUrl(linked))
editEclipseProperties {
it.setVariable(EclipseModuleManagerImpl.LINK_PREFIX, path, outputUrl.url)
}
@@ -333,7 +333,7 @@ class EclipseModuleRootsSerializer : CustomModuleRootsSerializer, StorageManager
else if (path.startsWith(EclipseXml.JUNIT_CONTAINER)) {
val junitName = IdeaXml.JUNIT + AbstractEclipseClasspathReader.getPresentableName(path)
val url = EclipseClasspathReader.getJunitClsUrl(junitName.contains("4"))
val roots = listOf(LibraryRoot(virtualUrlManager.fromUrl(url),
val roots = listOf(LibraryRoot(virtualUrlManager.getOrCreateFromUri(url),
LibraryRootTypeId.COMPILED))
val libraryEntity = LibraryEntity(junitName,
LibraryTableId.ModuleLibraryTableId(moduleEntity.symbolicId),

View File

@@ -86,15 +86,15 @@ internal class EmlFileLoader(
val url = rootTag.getAttributeValue("url")
val bindAttribute = rootTag.getAttributeValue(IdeaSpecificSettings.SRCROOT_BIND_ATTR)
if (bindAttribute != null && !bindAttribute.toBoolean()) {
rootsToAdd.add(LibraryRoot(virtualFileManager.fromUrl(url!!), LibraryRootTypeId.SOURCES))
rootsToAdd.add(LibraryRoot(virtualFileManager.getOrCreateFromUri(url!!), LibraryRootTypeId.SOURCES))
}
else if (eclipseSrcRoot != null && url != eclipseSrcRoot.url.url && EPathUtil.areUrlsPointTheSame(url, eclipseSrcRoot.url.url)) {
rootsToAdd.add(LibraryRoot(virtualFileManager.fromUrl(url!!), LibraryRootTypeId.SOURCES))
rootsToAdd.add(LibraryRoot(virtualFileManager.getOrCreateFromUri(url!!), LibraryRootTypeId.SOURCES))
rootsToRemove.add(eclipseSrcRoot)
}
}
libTag.getChildren(IdeaSpecificSettings.JAVADOCROOT_ATTR).mapTo(rootsToAdd) {
LibraryRoot(virtualFileManager.fromUrl(it.getAttributeValue("url")!!), EclipseModuleRootsSerializer.JAVADOC_TYPE)
LibraryRoot(virtualFileManager.getOrCreateFromUri(it.getAttributeValue("url")!!), EclipseModuleRootsSerializer.JAVADOC_TYPE)
}
fun updateRoots(tagName: String, rootType: String) {
@@ -103,7 +103,7 @@ internal class EmlFileLoader(
library.roots.forEach { libRoot ->
if (libRoot !in rootsToRemove && libRoot.type.name == rootType && EPathUtil.areUrlsPointTheSame(root, libRoot.url.url)) {
rootsToRemove.add(libRoot)
rootsToAdd.add(LibraryRoot(virtualFileManager.fromUrl(root), LibraryRootTypeId(rootType)))
rootsToAdd.add(LibraryRoot(virtualFileManager.getOrCreateFromUri(root), LibraryRootTypeId(rootType)))
}
}
}
@@ -155,7 +155,7 @@ internal class EmlFileLoader(
(javaSettings as JavaModuleSettingsEntity.Builder).apply {
val testOutputElement = emlTag.getChild(IdeaXml.OUTPUT_TEST_TAG)
if (testOutputElement != null) {
compilerOutputForTests = testOutputElement.getAttributeValue(IdeaXml.URL_ATTR)?.let { virtualFileManager.fromUrl(it) }
compilerOutputForTests = testOutputElement.getAttributeValue(IdeaXml.URL_ATTR)?.let { virtualFileManager.getOrCreateFromUri(it) }
}
val inheritedOutput = emlTag.getAttributeValue(JpsJavaModelSerializerExtension.INHERIT_COMPILER_OUTPUT_ATTRIBUTE)
@@ -173,7 +173,7 @@ internal class EmlFileLoader(
val entryElements = emlTag.getChildren(IdeaXml.CONTENT_ENTRY_TAG)
if (entryElements.isNotEmpty()) {
entryElements.forEach { entryTag ->
val url = virtualFileManager.fromUrl(entryTag.getAttributeValue(IdeaXml.URL_ATTR)!!)
val url = virtualFileManager.getOrCreateFromUri(entryTag.getAttributeValue(IdeaXml.URL_ATTR)!!)
val contentRootEntity = contentRoot.module.contentRoots.firstOrNull { it.url == url }
?: ContentRootEntity(url, emptyList(), module.entitySource) {
this.module = module
@@ -219,7 +219,7 @@ internal class EmlFileLoader(
val excludedUrls = contentEntryTag.getChildren(IdeaXml.EXCLUDE_FOLDER_TAG)
.mapNotNull { it.getAttributeValue(IdeaXml.URL_ATTR) }
.filter { FileUtil.isAncestor(entity.url.toPath().toFile(), JpsPathUtil.urlToFile(it), false) }
.map { virtualFileManager.fromUrl(it) }
.map { virtualFileManager.getOrCreateFromUri(it) }
if (excludedUrls.isNotEmpty()) {
(entity as ContentRootEntity.Builder).excludedUrls += excludedUrls.map { ExcludeUrlEntity(it, entity.entitySource) }
}

View File

@@ -44,13 +44,13 @@ internal fun convertToJavadocUrl(originalPath: String,
if (javadocPath.startsWith(EclipseXml.FILE_PROTOCOL)) {
val path = javadocPath.removePrefix(EclipseXml.FILE_PROTOCOL)
if (File(path).exists()) {
return virtualUrlManager.fromUrl(pathToUrl(path))
return virtualUrlManager.getOrCreateFromUri(pathToUrl(path))
}
}
else {
val protocol = VirtualFileManager.extractProtocol(javadocPath)
if (protocol == HttpFileSystem.getInstance().protocol) {
return virtualUrlManager.fromUrl(javadocPath)
return virtualUrlManager.getOrCreateFromUri(javadocPath)
}
else if (javadocPath.startsWith(EclipseXml.JAR_PREFIX)) {
val jarJavadocPath = javadocPath.removePrefix(EclipseXml.JAR_PREFIX)
@@ -61,7 +61,7 @@ internal fun convertToJavadocUrl(originalPath: String,
(moduleEntity.entitySource as EclipseProjectFile).projectLocation.baseDirectoryUrl.url)
val currentModulePath = basePath + relativeToPlatform
if (EJavadocUtil.isJarFileExist(currentModulePath)) {
return virtualUrlManager.fromUrl(VirtualFileManager.constructUrl(JarFileSystem.PROTOCOL, currentModulePath))
return virtualUrlManager.getOrCreateFromUri(VirtualFileManager.constructUrl(JarFileSystem.PROTOCOL, currentModulePath))
}
else {
val moduleName = EPathCommonUtil.getRelativeModuleName(relativeToPlatform)
@@ -77,19 +77,19 @@ internal fun convertToJavadocUrl(originalPath: String,
if (relativeToModulePath!!.length < relativeToModulePathWithJarSuffix!!.length) {
url += relativeToModulePathWithJarSuffix.substring(relativeToModulePath.length)
}
return virtualUrlManager.fromUrl(VirtualFileManager.constructUrl(JarFileSystem.PROTOCOL, VfsUtil.urlToPath(url)))
return virtualUrlManager.getOrCreateFromUri(VirtualFileManager.constructUrl(JarFileSystem.PROTOCOL, VfsUtil.urlToPath(url)))
}
}
}
else if (jarJavadocPath.startsWith(EclipseXml.FILE_PROTOCOL)) {
val localFile = jarJavadocPath.substring(EclipseXml.FILE_PROTOCOL.length)
if (EJavadocUtil.isJarFileExist(localFile)) {
return virtualUrlManager.fromUrl(VirtualFileManager.constructUrl(JarFileSystem.PROTOCOL, localFile))
return virtualUrlManager.getOrCreateFromUri(VirtualFileManager.constructUrl(JarFileSystem.PROTOCOL, localFile))
}
}
}
}
return virtualUrlManager.fromUrl(javadocPath)
return virtualUrlManager.getOrCreateFromUri(javadocPath)
}
internal fun convertToEclipseJavadocPath(javadocRoot: VirtualFileUrl,
@@ -141,11 +141,11 @@ internal fun convertToRootUrl(path: String, virtualUrlManager: VirtualFileUrlMan
if (localFile != null) {
val jarFile = JarFileSystem.getInstance().getJarRootForLocalFile(localFile)
if (jarFile != null) {
return virtualUrlManager.fromUrl(jarFile.url)
return virtualUrlManager.getOrCreateFromUri(jarFile.url)
}
}
return virtualUrlManager.fromUrl(url)
return virtualUrlManager.getOrCreateFromUri(url)
}
internal fun pathToUrl(path: String): String = JpsPathUtil.pathToUrl(FileUtil.toSystemIndependentName(path))
@@ -171,7 +171,7 @@ internal fun convertRelativePathToUrl(path: String,
if (moduleName != contentRootEntity.module.name) {
val url = pathResolver.resolve(moduleName, relativeToRootPath)
if (url != null) {
return virtualUrlManager.fromUrl(url)
return virtualUrlManager.getOrCreateFromUri(url)
}
}
}
@@ -207,7 +207,7 @@ internal fun getStorageRoot(imlFileUrl: VirtualFileUrl, customDir: String?, virt
val moduleRoot = imlFileUrl.parent!!
if (customDir == null) return moduleRoot
if (OSAgnosticPathUtil.isAbsolute(customDir)) {
return virtualFileManager.fromUrl(VfsUtilCore.pathToUrl(customDir))
return virtualFileManager.getOrCreateFromUri(VfsUtilCore.pathToUrl(customDir))
}
return moduleRoot.append(customDir)
}

View File

@@ -44,7 +44,7 @@ fun VirtualFile.findDependentScripts(project: Project): List<KotlinScriptEntity>
var currentFile: VirtualFile? = this
while (currentFile != null) {
val entities = index.findEntitiesByUrl(fileUrlManager.fromUrl(currentFile.url))
val entities = index.findEntitiesByUrl(fileUrlManager.getOrCreateFromUri(currentFile.url))
if (entities.none()) {
currentFile = currentFile.parent
continue

View File

@@ -76,7 +76,7 @@ internal class MavenShadePluginConfigurator : MavenWorkspaceConfigurator {
val mavenId = dependencyMavenProject.mavenId
val fileName = "${mavenId.artifactId}-${mavenId.version}.jar"
val jarPath = Path.of(dependencyMavenProject.buildDirectory, fileName).pathString
val jarUrl = VirtualFileUrlManager.getInstance(project).fromUrl("jar://$jarPath!/")
val jarUrl = VirtualFileUrlManager.getInstance(project).getOrCreateFromUri("jar://$jarPath!/")
addLibraryEntity(
builder,

View File

@@ -64,7 +64,7 @@ internal class ImporterModifiableArtifact(private val project: Project,
}
override fun setOutputPath(outputPath: String?) {
val outputUrl = outputPath?.let { VirtualFileUrlManager.getInstance(project).fromUrl(VfsUtilCore.pathToUrl(it)) }
val outputUrl = outputPath?.let { VirtualFileUrlManager.getInstance(project).getOrCreateFromUri(VfsUtilCore.pathToUrl(it)) }
this.outputUrl = outputUrl!!
}
@@ -134,7 +134,7 @@ internal class ImporterModifiableArtifactModel(private val project: Project,
val outputPath = ArtifactUtil.getDefaultArtifactOutputPath(uniqueName, project)
val fileManager = VirtualFileUrlManager.getInstance(project)
val outputUrl = outputPath?.let { fileManager.fromUrl(VfsUtilCore.pathToUrl(it)) }
val outputUrl = outputPath?.let { fileManager.getOrCreateFromUri(VfsUtilCore.pathToUrl(it)) }
val artifact = ImporterModifiableArtifact(project, uniqueName, artifactType, outputUrl!!, rootElement, externalSource)

View File

@@ -50,9 +50,9 @@ internal class WorkspaceFolderImporter(
for (root in ContentRootCollector.collect(allFolders)) {
val excludes = root.excludeFolders
.map { exclude -> virtualFileUrlManager.fromUrl(VfsUtilCore.pathToUrl(exclude.path)) }
.map { exclude -> virtualFileUrlManager.getOrCreateFromUri(VfsUtilCore.pathToUrl(exclude.path)) }
.map { builder addEntity ExcludeUrlEntity(it, module.entitySource) }
val contentRootEntity = builder addEntity ContentRootEntity(virtualFileUrlManager.fromUrl(VfsUtilCore.pathToUrl(root.path)),
val contentRootEntity = builder addEntity ContentRootEntity(virtualFileUrlManager.getOrCreateFromUri(VfsUtilCore.pathToUrl(root.path)),
emptyList(), module.entitySource) {
this.excludedUrls = excludes
this.module = module
@@ -107,7 +107,7 @@ internal class WorkspaceFolderImporter(
else -> error("${folder.type} doesn't match to maven root item")
}
val sourceRootEntity = builder addEntity SourceRootEntity(virtualFileUrlManager.fromUrl(VfsUtilCore.pathToUrl(folder.path)), rootType,
val sourceRootEntity = builder addEntity SourceRootEntity(virtualFileUrlManager.getOrCreateFromUri(VfsUtilCore.pathToUrl(folder.path)), rootType,
contentRootEntity.entitySource) {
this.contentRoot = contentRootEntity
}

View File

@@ -127,7 +127,7 @@ internal class WorkspaceModuleImporter(
null,
{
dependency.rootPaths.map { (url, type) ->
LibraryRoot(virtualFileUrlManager.fromUrl(pathToUrl(url)), type)
LibraryRoot(virtualFileUrlManager.getOrCreateFromUri(pathToUrl(url)), type)
}
},
{ reuseOrCreateProjectLibrarySource(dependency.artifact) })
@@ -166,7 +166,7 @@ internal class WorkspaceModuleImporter(
artifact,
{
val classes = MavenImportUtil.getArtifactUrlForClassifierAndExtension(artifact, null, null)
listOf(LibraryRoot(virtualFileUrlManager.fromUrl(classes), LibraryRootTypeId.COMPILED))
listOf(LibraryRoot(virtualFileUrlManager.getOrCreateFromUri(classes), LibraryRootTypeId.COMPILED))
},
sourceProvider)
return ModuleDependencyItem.Exportable.LibraryDependency(libraryId, false, artifact.dependencyScope)
@@ -180,9 +180,9 @@ internal class WorkspaceModuleImporter(
val sources = MavenImportUtil.getArtifactUrlForClassifierAndExtension(artifact, "sources", "jar")
val javadoc = MavenImportUtil.getArtifactUrlForClassifierAndExtension(artifact, "javadoc", "jar")
listOf(
LibraryRoot(virtualFileUrlManager.fromUrl(classes), LibraryRootTypeId.COMPILED),
LibraryRoot(virtualFileUrlManager.fromUrl(sources), LibraryRootTypeId.SOURCES),
LibraryRoot(virtualFileUrlManager.fromUrl(javadoc), JAVADOC_TYPE),
LibraryRoot(virtualFileUrlManager.getOrCreateFromUri(classes), LibraryRootTypeId.COMPILED),
LibraryRoot(virtualFileUrlManager.getOrCreateFromUri(sources), LibraryRootTypeId.SOURCES),
LibraryRoot(virtualFileUrlManager.getOrCreateFromUri(javadoc), JAVADOC_TYPE),
)
}
return createLibraryDependency(artifact.libraryName,
@@ -266,10 +266,10 @@ internal class WorkspaceModuleImporter(
if (!inheritCompilerOutput) {
if (moduleType.containsMain) {
compilerOutputUrl = virtualFileUrlManager.fromUrl(VfsUtilCore.pathToUrl(importFolderHolder.outputPath))
compilerOutputUrl = virtualFileUrlManager.getOrCreateFromUri(VfsUtilCore.pathToUrl(importFolderHolder.outputPath))
}
if (moduleType.containsTest) {
compilerOutputUrlForTests = virtualFileUrlManager.fromUrl(VfsUtilCore.pathToUrl(importFolderHolder.testOutputPath))
compilerOutputUrlForTests = virtualFileUrlManager.getOrCreateFromUri(VfsUtilCore.pathToUrl(importFolderHolder.testOutputPath))
}
}