override suspend fun addEntity()

in plugin-bazel/src/main/kotlin/org/jetbrains/bazel/magicmetamodel/impl/workspacemodel/impl/updaters/JavaModuleUpdater.kt [36:82]


  override suspend fun addEntity(entityToAdd: JavaModule): ModuleEntity {
    val moduleEntityUpdater =
      ModuleEntityUpdater(workspaceModelEntityUpdaterConfig, calculateJavaModuleDependencies(entityToAdd), libraries)

    val moduleEntity = moduleEntityUpdater.addEntity(entityToAdd.genericModuleInfo)

    addJavaModuleSettingsEntity(
      builder = workspaceModelEntityUpdaterConfig.workspaceEntityStorageBuilder,
      entityToAdd = entityToAdd,
      moduleEntity = moduleEntity,
    )

    entityToAdd.scalaAddendum?.let {
      val scalaAddendumEntityUpdater = ScalaAddendumEntityUpdater(workspaceModelEntityUpdaterConfig)
      scalaAddendumEntityUpdater.addEntity(it, moduleEntity)
    }

    if (entityToAdd.genericModuleInfo.isDummy && BazelFeatureFlags.fbsrSupportedInPlatform) {
      packageMarkerEntityUpdater.addEntities(entityToAdd.sourceRoots, moduleEntity)
    } else {
      val javaSourceEntityUpdater =
        JavaSourceEntityUpdater(
          workspaceModelEntityUpdaterConfig,
          entityToAdd.workspaceModelEntitiesFolderMarker,
        )
      javaSourceEntityUpdater.addEntities(entityToAdd.sourceRoots, moduleEntity)
    }

    val javaResourceEntityUpdater = JavaResourceEntityUpdater(workspaceModelEntityUpdaterConfig)
    javaResourceEntityUpdater.addEntities(entityToAdd.resourceRoots, moduleEntity)

    if (entityToAdd.jvmBinaryJars.isNotEmpty()) {
      val jvmBinaryJarsEntityUpdater = JvmBinaryJarsEntityUpdater(workspaceModelEntityUpdaterConfig)
      jvmBinaryJarsEntityUpdater.addEntity(entityToAdd, moduleEntity)
    }

    if (entityToAdd.genericModuleInfo.kind.includesKotlin()) {
      KotlinFacetEntityUpdater.ep.extensionList.firstOrNull()?.addEntity(
        diff = workspaceModelEntityUpdaterConfig.workspaceEntityStorageBuilder,
        entityToAdd = entityToAdd,
        parentModuleEntity = moduleEntity,
        projectBasePath = projectBasePath,
      )
    }

    return moduleEntity
  }