From 54c3c87acfb31afc22afc5f20229384f755b677f Mon Sep 17 00:00:00 2001 From: Simon Ogorodnik Date: Tue, 2 May 2017 15:08:52 +0300 Subject: Refactoring internal communication for gradle --- core/src/main/kotlin/Generation/DokkaGenerator.kt | 5 +-- .../main/kotlin/Generation/configurationImpl.kt | 46 ++++++++++++++++++++++ 2 files changed, 47 insertions(+), 4 deletions(-) create mode 100644 core/src/main/kotlin/Generation/configurationImpl.kt (limited to 'core/src/main/kotlin/Generation') diff --git a/core/src/main/kotlin/Generation/DokkaGenerator.kt b/core/src/main/kotlin/Generation/DokkaGenerator.kt index 6b5df7c9..67c641a0 100644 --- a/core/src/main/kotlin/Generation/DokkaGenerator.kt +++ b/core/src/main/kotlin/Generation/DokkaGenerator.kt @@ -7,6 +7,7 @@ import com.intellij.openapi.vfs.VirtualFileManager import com.intellij.psi.PsiFile import com.intellij.psi.PsiJavaFile import com.intellij.psi.PsiManager +import org.jetbrains.dokka.DokkaConfiguration.SourceRoot import org.jetbrains.dokka.Utilities.DokkaAnalysisModule import org.jetbrains.dokka.Utilities.DokkaOutputModule import org.jetbrains.kotlin.cli.common.messages.CompilerMessageLocation @@ -23,10 +24,6 @@ import org.jetbrains.kotlin.utils.PathUtil import java.io.File import kotlin.system.measureTimeMillis -class SourceRoot(path: String, val defaultPlatforms: List = emptyList()) { - val path: String = File(path).absolutePath -} - class DokkaGenerator(val logger: DokkaLogger, val classpath: List, val sources: List, diff --git a/core/src/main/kotlin/Generation/configurationImpl.kt b/core/src/main/kotlin/Generation/configurationImpl.kt new file mode 100644 index 00000000..6ed0d639 --- /dev/null +++ b/core/src/main/kotlin/Generation/configurationImpl.kt @@ -0,0 +1,46 @@ +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 defaultPlatforms: List = 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 DokkaConfigurationImpl(override val moduleName: String, + override val classpath: List, + override val sourceRoots: List, + override val samples: List, + override val includes: List, + 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 generateIndexPages: Boolean, + override val sourceLinks: List) : DokkaConfiguration \ No newline at end of file -- cgit