fun generateSourceDescriptor()

in buildSrc/src/main/kotlin/org/fbme/gradle/ModuleFileGenerator.kt [16:59]


    fun generateSourceDescriptor(): String {
        val prefix = "\n                  "

        val libraryRoots = libraryLocations.joinToString("") {
            """$prefix<sourceRoot location="$it" />"""
        }
        val stubModelEntries = libraryLocations.joinToString("") {
            """$prefix<stubModelEntry path="$module/lib/$it" />"""
        }
        val dependencyEntries = dependencies.joinToString("") {
            """$prefix<dependency reexport="false">${it.id}(${it.name})</dependency>"""
        }
        val languageEntries = languages.joinToString("") {
            """$prefix<language slang="l:${it.id}:${it.name}" version="${it.version}" />"""
        }
        val dependencyVersionEntries = dependencies.joinToString("") {
            """$prefix<module reference="${it.id}(${it.name})" version="${it.version}" />"""
        }

        return """
            <?xml version="1.0" encoding="UTF-8"?>
            <solution name="$name" uuid="$moduleId" moduleVersion="0" pluginKind="PLUGIN_OTHER" compileInMPS="false">
              <models>
                <modelRoot contentPath="$module/lib" type="java_classes">$libraryRoots  
                </modelRoot>
              </models>
              <facets>
                <facet type="java" languageLevel="JAVA_8">
                  <classes generated="true" path="$module/classes_gen" />
                </facet>
                <facet type="ideaPlugin" pluginId="$pluginId" />
              </facets>
              <stubModelEntries>$stubModelEntries
              </stubModelEntries>
              <sourcePath />
              <dependencies>$dependencyEntries
              </dependencies>
              <languageVersions>$languageEntries
              </languageVersions>
              <dependencyVersions>$dependencyVersionEntries
              </dependencyVersions>
            </solution>
        """.trimIndent()
    }