From c8ce98d45e4132e6cbce253986f390a150e1337c Mon Sep 17 00:00:00 2001 From: Andrzej Ratajczak Date: Tue, 8 Feb 2022 12:52:17 +0100 Subject: [PATCH] Expose Kotlin-as-Java methods that could be used not only as part of transformers --- plugins/kotlin-as-java/api/kotlin-as-java.api | 4 +++- .../kotlin-as-java/src/main/kotlin/KotlinAsJavaPlugin.kt | 2 +- .../src/main/kotlin/converters/KotlinToJavaConverter.kt | 2 +- .../transformers/JvmNameDocumentableTransformer.kt | 9 ++++----- 4 files changed, 9 insertions(+), 8 deletions(-) diff --git a/plugins/kotlin-as-java/api/kotlin-as-java.api b/plugins/kotlin-as-java/api/kotlin-as-java.api index f941582ecd..ab459186f9 100644 --- a/plugins/kotlin-as-java/api/kotlin-as-java.api +++ b/plugins/kotlin-as-java/api/kotlin-as-java.api @@ -7,6 +7,7 @@ public final class org/jetbrains/dokka/kotlinAsJava/KotlinAsJavaPlugin : org/jet } public final class org/jetbrains/dokka/kotlinAsJava/converters/KotlinToJavaConverterKt { + public static final fun asJava (Lorg/jetbrains/dokka/model/DClasslike;)Lorg/jetbrains/dokka/model/DClasslike; public static final fun getJvmNameProvider ()Lorg/jetbrains/dokka/kotlinAsJava/transformers/JvmNameProvider; } @@ -46,8 +47,9 @@ public final class org/jetbrains/dokka/kotlinAsJava/signatures/JavaSignatureUtil } public final class org/jetbrains/dokka/kotlinAsJava/transformers/JvmNameDocumentableTransformer : org/jetbrains/dokka/transformers/documentation/DocumentableTransformer { - public fun ()V + public fun (Lorg/jetbrains/dokka/plugability/DokkaContext;)V public fun invoke (Lorg/jetbrains/dokka/model/DModule;Lorg/jetbrains/dokka/plugability/DokkaContext;)Lorg/jetbrains/dokka/model/DModule; + public final fun transformClassLike (Lorg/jetbrains/dokka/model/DClasslike;)Lorg/jetbrains/dokka/model/DClasslike; } public final class org/jetbrains/dokka/kotlinAsJava/transformers/JvmNameProvider { diff --git a/plugins/kotlin-as-java/src/main/kotlin/KotlinAsJavaPlugin.kt b/plugins/kotlin-as-java/src/main/kotlin/KotlinAsJavaPlugin.kt index 531ff59fb9..31cbe306c9 100644 --- a/plugins/kotlin-as-java/src/main/kotlin/KotlinAsJavaPlugin.kt +++ b/plugins/kotlin-as-java/src/main/kotlin/KotlinAsJavaPlugin.kt @@ -16,7 +16,7 @@ class KotlinAsJavaPlugin : DokkaPlugin() { } val jvmNameTransformer by extending { - CoreExtensions.documentableTransformer with JvmNameDocumentableTransformer() order { + CoreExtensions.documentableTransformer providing ::JvmNameDocumentableTransformer order { after(kotlinAsJavaDocumentableTransformer) } } diff --git a/plugins/kotlin-as-java/src/main/kotlin/converters/KotlinToJavaConverter.kt b/plugins/kotlin-as-java/src/main/kotlin/converters/KotlinToJavaConverter.kt index 2a0762baee..078ac15ae9 100644 --- a/plugins/kotlin-as-java/src/main/kotlin/converters/KotlinToJavaConverter.kt +++ b/plugins/kotlin-as-java/src/main/kotlin/converters/KotlinToJavaConverter.kt @@ -241,7 +241,7 @@ internal fun DFunction.asJava(containingClassName: String, isTopLevel: Boolean = } } -internal fun DClasslike.asJava(): DClasslike = when (this) { +fun DClasslike.asJava(): DClasslike = when (this) { is DClass -> asJava() is DEnum -> asJava() is DAnnotation -> asJava() diff --git a/plugins/kotlin-as-java/src/main/kotlin/transformers/JvmNameDocumentableTransformer.kt b/plugins/kotlin-as-java/src/main/kotlin/transformers/JvmNameDocumentableTransformer.kt index c49e08f0ad..724e355fbf 100644 --- a/plugins/kotlin-as-java/src/main/kotlin/transformers/JvmNameDocumentableTransformer.kt +++ b/plugins/kotlin-as-java/src/main/kotlin/transformers/JvmNameDocumentableTransformer.kt @@ -5,12 +5,10 @@ import org.jetbrains.dokka.model.properties.PropertyContainer import org.jetbrains.dokka.plugability.DokkaContext import org.jetbrains.dokka.transformers.documentation.DocumentableTransformer -class JvmNameDocumentableTransformer : DocumentableTransformer { +class JvmNameDocumentableTransformer(private val context: DokkaContext) : DocumentableTransformer { private val jvmNameProvider = JvmNameProvider() - private lateinit var context: DokkaContext override fun invoke(original: DModule, context: DokkaContext): DModule { - this.context = context return original.copy(packages = original.packages.map { transform(it) }) } @@ -55,7 +53,8 @@ class JvmNameDocumentableTransformer : DocumentableTransformer { return extraWithoutAnnotations.addAll(listOfNotNull(annotationsWithoutJvmName)) } - private fun transformClassLike(documentable: DClasslike): DClasslike = + @Suppress("MemberVisibilityCanBePrivate") + fun transformClassLike(documentable: DClasslike): DClasslike = with(documentable) { when (this) { is DClass -> copy( @@ -108,4 +107,4 @@ class JvmNameDocumentableTransformer : DocumentableTransformer { } }) } -} \ No newline at end of file +}