blob: c8f93c51979be283c1b28f89ef09699ae5ecb079 [file] [log] [blame]
package org.jetbrains.dokka
import org.jetbrains.dokka.DokkaConfiguration.SourceLinkDefinition
import org.jetbrains.dokka.DokkaConfiguration.SourceRoot
import java.io.File
data class SourceLinkDefinitionImpl(override val path: String,
override val url: String,
override val lineSuffix: String?) : SourceLinkDefinition {
companion object {
fun parseSourceLinkDefinition(srcLink: String): SourceLinkDefinition {
val (path, urlAndLine) = srcLink.split('=')
return SourceLinkDefinitionImpl(File(path).absolutePath,
urlAndLine.substringBefore("#"),
urlAndLine.substringAfter("#", "").let { if (it.isEmpty()) null else "#" + it })
}
}
}
class SourceRootImpl(path: String, override val platforms: List<String> = emptyList()) : SourceRoot {
override val path: String = File(path).absolutePath
companion object {
fun parseSourceRoot(sourceRoot: String): SourceRoot {
val components = sourceRoot.split("::", limit = 2)
return SourceRootImpl(components.last(), if (components.size == 1) listOf() else components[0].split(','))
}
}
}
data class PackageOptionsImpl(override val prefix: String,
override val includeNonPublic: Boolean = false,
override val reportUndocumented: Boolean = true,
override val skipDeprecated: Boolean = false,
override val suppress: Boolean = false) : DokkaConfiguration.PackageOptions
data class DokkaConfigurationImpl(
override val moduleName: String,
override val classpath: List<String>,
override val sourceRoots: List<SourceRootImpl>,
override val samples: List<String>,
override val includes: List<String>,
override val outputDir: String,
override val format: String,
override val includeNonPublic: Boolean,
override val includeRootPackage: Boolean,
override val reportUndocumented: Boolean,
override val skipEmptyPackages: Boolean,
override val skipDeprecated: Boolean,
override val jdkVersion: Int,
override val generateClassIndexPage: Boolean,
override val generatePackageIndexPage: Boolean,
override val sourceLinks: List<SourceLinkDefinitionImpl>,
override val impliedPlatforms: List<String>,
override val perPackageOptions: List<PackageOptionsImpl>,
override val externalDocumentationLinks: List<ExternalDocumentationLinkImpl>,
override val noStdlibLink: Boolean,
override val noJdkLink: Boolean,
override val cacheRoot: String?,
override val suppressedFiles: List<String>,
override val languageVersion: String?,
override val apiVersion: String?,
override val collectInheritedExtensionsFromLibraries: Boolean,
override val outlineRoot: String,
override val dacRoot: String
) : DokkaConfiguration