package org.jetbrains.dokka import java.io.File import java.net.URL data class DokkaConfigurationImpl( override val outputDir: String, override val format: String, override val cacheRoot: String?, override val offlineMode: Boolean, override val passesConfigurations: List, override val pluginsClasspath: List, override val pluginsConfiguration: Map, override val modules: List, override val failOnWarning: Boolean ) : DokkaConfiguration data class PassConfigurationImpl( override val moduleName: String, override val displayName: String, override val sourceSetID: String, override val classpath: List, override val sourceRoots: List, override val dependentSourceSets: List, override val samples: List, override val includes: List, 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 sourceLinks: List, override val perPackageOptions: List, override var externalDocumentationLinks: List, override val languageVersion: String?, override val apiVersion: String?, override val noStdlibLink: Boolean, override val noJdkLink: Boolean, override val suppressedFiles: List, override val analysisPlatform: Platform ) : DokkaConfiguration.PassConfiguration data class DokkaModuleDescriptionImpl( override val name: String, override val path: String, override val docFile: String ): DokkaConfiguration.DokkaModuleDescription data class SourceRootImpl( override val path: String ): DokkaConfiguration.SourceRoot data class SourceLinkDefinitionImpl( override val path: String, override val url: String, override val lineSuffix: String? ): DokkaConfiguration.SourceLinkDefinition { companion object { fun parseSourceLinkDefinition(srcLink: String): SourceLinkDefinitionImpl { val (path, urlAndLine) = srcLink.split('=') return SourceLinkDefinitionImpl( File(path).canonicalPath, urlAndLine.substringBefore("#"), urlAndLine.substringAfter("#", "").let { if (it.isEmpty()) null else "#$it" }) } } } data class PackageOptionsImpl( override val prefix: String, override val includeNonPublic: Boolean, override val reportUndocumented: Boolean?, override val skipDeprecated: Boolean, override val suppress: Boolean ): DokkaConfiguration.PackageOptions data class ExternalDocumentationLinkImpl(override val url: URL, override val packageListUrl: URL ) : DokkaConfiguration.ExternalDocumentationLink