fun transform()

in plugin-bazel/src/main/kotlin/org/jetbrains/bazel/magicmetamodel/impl/workspacemodel/impl/updaters/transformers/ModuleDetailsToJavaModuleTransformer.kt [37:81]


  fun transform(inputEntity: ModuleDetails): List<JavaModule> {
    val javaModule =
      JavaModule(
        genericModuleInfo = toGenericModuleInfo(inputEntity),
        baseDirContentRoot = toBaseDirContentRoot(inputEntity),
        sourceRoots = toJavaSourceRoots(inputEntity),
        resourceRoots = toResourceRoots(inputEntity),
        // Any java module must be assigned a jdk if there is any available.
        jvmJdkName = inputEntity.toJdkNameOrDefault(),
        jvmBinaryJars = inputEntity.jvmBinaryJars,
        kotlinAddendum = toKotlinAddendum(inputEntity),
        scalaAddendum = toScalaAddendum(inputEntity),
        javaAddendum = toJavaAddendum(inputEntity),
      )

    val dummyModulesResult = javaModuleToDummyJavaModulesTransformerHACK.transform(javaModule)
    return when (dummyModulesResult) {
      is JavaModuleToDummyJavaModulesTransformerHACK.DummyModulesToAdd -> {
        val dummyModules = dummyModulesResult.dummyModules
        val dummyModuleDependencies =
          if (BazelFeatureFlags.addDummyModuleDependencies) {
            dummyModules.map { it.genericModuleInfo.name }
          } else {
            emptyList()
          }
        val javaModuleWithDummyDependencies =
          javaModule.copy(
            genericModuleInfo =
              javaModule.genericModuleInfo.copy(
                dependencies =
                  javaModule.genericModuleInfo.dependencies + dummyModuleDependencies,
              ),
          )
        listOf(javaModuleWithDummyDependencies) + dummyModules
      }
      is JavaModuleToDummyJavaModulesTransformerHACK.MergedRoots -> {
        val javaModuleWithMergedSourceRoots =
          javaModule.copy(
            sourceRoots = dummyModulesResult.mergedSourceRoots,
            resourceRoots = dummyModulesResult.mergedResourceRoots ?: javaModule.resourceRoots,
          )
        listOf(javaModuleWithMergedSourceRoots)
      }
    }
  }