From af9697cbd2eb1a26c8a07d191ca6360d416a1666 Mon Sep 17 00:00:00 2001 From: Szymon Świstun Date: Tue, 11 Feb 2020 15:57:29 +0100 Subject: kotlin-as-java fixed --- .../src/main/kotlin/KotlinAsJavaPageBuilder.kt | 20 ++++++++++++++++---- .../main/kotlin/KotlinAsJavaPageContentBuilder.kt | 12 ++++++++---- 2 files changed, 24 insertions(+), 8 deletions(-) (limited to 'plugins/kotlin-as-java/src/main/kotlin') diff --git a/plugins/kotlin-as-java/src/main/kotlin/KotlinAsJavaPageBuilder.kt b/plugins/kotlin-as-java/src/main/kotlin/KotlinAsJavaPageBuilder.kt index 67a3ee86..8f026477 100644 --- a/plugins/kotlin-as-java/src/main/kotlin/KotlinAsJavaPageBuilder.kt +++ b/plugins/kotlin-as-java/src/main/kotlin/KotlinAsJavaPageBuilder.kt @@ -3,11 +3,11 @@ package org.jetbrains.dokka.kotlinAsJava import org.jetbrains.dokka.kotlinAsJava.conversions.asJava import org.jetbrains.dokka.kotlinAsJava.conversions.asStatic import org.jetbrains.dokka.kotlinAsJava.conversions.withClass +import org.jetbrains.dokka.links.DRI import org.jetbrains.dokka.links.withClass import org.jetbrains.dokka.model.* -import org.jetbrains.dokka.model.Function import org.jetbrains.dokka.model.Enum -import org.jetbrains.dokka.model.doc.TagWrapper +import org.jetbrains.dokka.model.Function import org.jetbrains.dokka.pages.* import org.jetbrains.dokka.transformers.descriptors.KotlinClassKindTypes import org.jetbrains.kotlin.descriptors.DeclarationDescriptor @@ -21,8 +21,14 @@ fun List.groupedByLocation(): Map> = location!!.let { it.split("/").last().split(".").first() + "Kt" } }) { it.second } +fun PlatformInfo.toClassPlatformInfo(inherited: List = emptyList()) = + ClassPlatformInfo(this, emptyList()) + class KotlinAsJavaPageBuilder(rootContentGroup: RootContentBuilder) : DefaultPageBuilder(rootContentGroup) { + override fun pageForModule(m: Module): ModulePageNode = + ModulePageNode(m.name.ifEmpty { "root" }, contentForModule(m), m, m.packages.map { pageForPackage(it) }) + data class FunsAndProps(val key: String, val funs: List, val props: List) override fun pageForPackage(p: Package): PackagePageNode { @@ -36,6 +42,8 @@ class KotlinAsJavaPageBuilder(rootContentGroup: RootContentBuilder) : DefaultPag val classes = (p.classlikes + zipped.map { (key, funs, props) -> val dri = p.dri.withClass(key) + val actual = + (funs.flatMap { it.actual } + props.flatMap { it.actual }).distinct().map { it.toClassPlatformInfo() } Class( dri = dri, name = key, @@ -44,7 +52,7 @@ class KotlinAsJavaPageBuilder(rootContentGroup: RootContentBuilder) : DefaultPag functions = funs.map { it.withClass(key, dri).asStatic() }, properties = props.map { it.withClass(key, dri) }, classlikes = emptyList(), - actual = emptyList(), + actual = actual, expected = null, visibility = p.platformData.map { it to Visibilities.PUBLIC }.toMap() ) @@ -64,5 +72,9 @@ class KotlinAsJavaPageBuilder(rootContentGroup: RootContentBuilder) : DefaultPag } } - private fun TagWrapper.toHeaderString() = this.javaClass.toGenericString().split('.').last() + override fun contentForClasslike(c: Classlike): ContentGroup = when (c) { + is Class -> contentForClass(c) + is Enum -> contentForEnum(c) + else -> throw IllegalStateException("$c should not be present here") + } } \ No newline at end of file diff --git a/plugins/kotlin-as-java/src/main/kotlin/KotlinAsJavaPageContentBuilder.kt b/plugins/kotlin-as-java/src/main/kotlin/KotlinAsJavaPageContentBuilder.kt index 65925fb2..05896d11 100644 --- a/plugins/kotlin-as-java/src/main/kotlin/KotlinAsJavaPageContentBuilder.kt +++ b/plugins/kotlin-as-java/src/main/kotlin/KotlinAsJavaPageContentBuilder.kt @@ -1,10 +1,7 @@ package org.jetbrains.dokka.kotlinAsJava import org.jetbrains.dokka.links.DRI -import org.jetbrains.dokka.model.Documentable import org.jetbrains.dokka.model.Function -import org.jetbrains.dokka.model.TypeWrapper -import org.jetbrains.dokka.model.doc.DocTag import org.jetbrains.dokka.pages.* import org.jetbrains.dokka.transformers.psi.JavaTypeWrapper import org.jetbrains.dokka.utilities.DokkaLogger @@ -18,10 +15,10 @@ class KotlinAsJavaPageContentBuilder( private val styles: Set