fun declareSourceSet()

in kmp-modifier/src/main/kotlin/com/intellij/packageSearch/mppDependencyUpdater/dsl/models/KotlinDslModel.kt [28:50]


  fun declareSourceSet(sourceSetName: String): SourceSetModel? {
    val sourceSetsElement = dslElement.elements["sourceSets"] as? SourceSetsElement ?: return null

    val sourceSetElement = when (sourceSetName) {
      // create "$sourceSetName { ... "
      "commonMain" -> CommonMainSourceSetElement(sourceSetsElement).also { sourceSetsElement.setNewElement(it) }
      "commonTest" -> CommonTestSourceSetElement(sourceSetsElement).also { sourceSetsElement.setNewElement(it) }
      else -> {
        // create "val $sourceSetName by getting { ... "
        val sourceSetProperty = GradleDslDelegatedProperty(sourceSetsElement, GradleNameElement.create(sourceSetName))
        sourceSetProperty.externalSyntax = ExternalNameInfo.ExternalNameSyntax.ASSIGNMENT
        sourceSetProperty.elementType = PropertyType.DERIVED

        val getting = GettingDslElement(sourceSetProperty)
        sourceSetProperty.setNewElement(getting)
        sourceSetsElement.setNewElement(sourceSetProperty)

        getting
      }
    }

    return SourceSetModel(sourceSetElement)
  }