[jps model] support loading generic facets entities in the new implementation (IJPL-409)

GitOrigin-RevId: 6e79f0a4e191ae81254a185c16e6e092f6fc73c4
This commit is contained in:
Nikolay Chashnikov
2024-06-27 18:17:32 +02:00
committed by intellij-monorepo-bot
parent be1e0dfa61
commit e8846f629c
4 changed files with 6 additions and 5 deletions

View File

@@ -18,7 +18,7 @@ abstract class BaseIdeSerializationContext : SerializationContext {
get() = CUSTOM_MODULE_COMPONENT_SERIALIZER_EP.extensionList
override val customModuleRootsSerializers: List<CustomModuleRootsSerializer>
get() = CUSTOM_MODULE_ROOTS_SERIALIZER_EP.extensionList
override val customFacetRelatedEntitySerializers: List<CustomFacetRelatedEntitySerializer<ModuleSettingsFacetBridgeEntity>>
override val customFacetRelatedEntitySerializers: List<CustomFacetRelatedEntitySerializer<*>>
get() = CUSTOM_FACET_RELATED_ENTITY_SERIALIZER_EP.extensionList
companion object {

View File

@@ -24,6 +24,6 @@ internal class SerializationContextImpl(
get() = emptyList() //todo
override val customModuleRootsSerializers: List<CustomModuleRootsSerializer>
get() = emptyList() //todo
override val customFacetRelatedEntitySerializers: List<CustomFacetRelatedEntitySerializer<ModuleSettingsFacetBridgeEntity>>
get() = emptyList() //todo
override val customFacetRelatedEntitySerializers: List<CustomFacetRelatedEntitySerializer<*>>
get() = listOf(DefaultFacetEntitySerializer()) //todo
}

View File

@@ -26,5 +26,5 @@ interface SerializationContext {
val customModuleRootsSerializers: List<CustomModuleRootsSerializer>
val customFacetRelatedEntitySerializers: List<CustomFacetRelatedEntitySerializer<ModuleSettingsFacetBridgeEntity>>
val customFacetRelatedEntitySerializers: List<CustomFacetRelatedEntitySerializer<*>>
}

View File

@@ -69,7 +69,8 @@ internal class FacetsSerializer(private val imlFileUrl: VirtualFileUrl, private
.mapNotNull { entitySerializer ->
val entitiesToSave = affectedEntities[entitySerializer.rootEntityType]?.filter { entitySourceFilter.invoke(it.entitySource) }
?: return@mapNotNull null
entitySerializer.createFacetStateFromEntities(entitiesToSave.map { it as ModuleSettingsFacetBridgeEntity }, externalStorage)
@Suppress("UNCHECKED_CAST")
(entitySerializer as CustomFacetRelatedEntitySerializer<ModuleSettingsFacetBridgeEntity>).createFacetStateFromEntities(entitiesToSave.map { it as ModuleSettingsFacetBridgeEntity }, externalStorage)
}.flatten()
if (facetStatesFromEP.isEmpty()) {