aboutsummaryrefslogtreecommitdiff
path: root/plugins/kotlin-as-java/src/main/kotlin/transformers
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/kotlin-as-java/src/main/kotlin/transformers')
-rw-r--r--plugins/kotlin-as-java/src/main/kotlin/transformers/JvmNameDocumentableTransformer.kt116
-rw-r--r--plugins/kotlin-as-java/src/main/kotlin/transformers/JvmNameProvider.kt37
-rw-r--r--plugins/kotlin-as-java/src/main/kotlin/transformers/KotlinAsJavaDocumentableTransformer.kt19
-rw-r--r--plugins/kotlin-as-java/src/main/kotlin/transformers/withCallableName.kt9
4 files changed, 0 insertions, 181 deletions
diff --git a/plugins/kotlin-as-java/src/main/kotlin/transformers/JvmNameDocumentableTransformer.kt b/plugins/kotlin-as-java/src/main/kotlin/transformers/JvmNameDocumentableTransformer.kt
deleted file mode 100644
index fe625e1c..00000000
--- a/plugins/kotlin-as-java/src/main/kotlin/transformers/JvmNameDocumentableTransformer.kt
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
- */
-
-package org.jetbrains.dokka.kotlinAsJava.transformers
-
-import org.jetbrains.dokka.model.*
-import org.jetbrains.dokka.model.properties.PropertyContainer
-import org.jetbrains.dokka.plugability.DokkaContext
-import org.jetbrains.dokka.transformers.documentation.DocumentableTransformer
-
-public class JvmNameDocumentableTransformer : DocumentableTransformer {
- private val jvmNameProvider = JvmNameProvider()
-
- override fun invoke(original: DModule, context: DokkaContext): DModule {
- return original.copy(packages = original.packages.map { transform(it, context) })
- }
-
- internal fun <T : Documentable> transform(documentable: T, context: DokkaContext): T {
- val transformResult = with(documentable) {
- when (this) {
- is DPackage -> copy(
- functions = functions.map { transform(it, context) },
- properties = properties.map { transform(it, context) },
- classlikes = classlikes.map { transform(it, context) },
- )
- is DFunction -> {
- val name = jvmNameProvider.nameFor(this)
- copy(
- dri = documentable.dri.withCallableName(name),
- name = name,
- extra = extra.withoutJvmName()
- )
- }
- is DProperty -> transformGetterAndSetter(this)
- is DClasslike -> transformClassLike(this, context)
- is DEnumEntry -> copy(
- functions = functions.map { transform(it, context) },
- properties = properties.map { transform(it, context) },
- classlikes = classlikes.map { transform(it, context) },
- )
- else -> {
- context.logger.warn("Failed to translate a JvmName for ${this.javaClass.canonicalName}")
- this
- }
- }
- }
- @Suppress("UNCHECKED_CAST")
- return transformResult as T
- }
-
- private fun PropertyContainer<DFunction>.withoutJvmName(): PropertyContainer<DFunction> {
- val annotationsWithoutJvmName = get(Annotations)?.let { annotations ->
- annotations.copy((annotations.directAnnotations).map { (sourceset, annotations) ->
- sourceset to annotations.filterNot { it.isJvmName() }
- }.toMap() + annotations.fileLevelAnnotations)
- }
- val extraWithoutAnnotations: PropertyContainer<DFunction> = minus(Annotations)
-
- return extraWithoutAnnotations.addAll(listOfNotNull(annotationsWithoutJvmName))
- }
-
- private fun transformClassLike(documentable: DClasslike, context: DokkaContext): DClasslike =
- with(documentable) {
- when (this) {
- is DClass -> copy(
- functions = functions.map { transform(it, context) },
- properties = properties.map { transform(it, context) },
- classlikes = classlikes.map { transform(it, context) },
- )
- is DAnnotation -> copy(
- functions = functions.map { transform(it, context) },
- properties = properties.map { transform(it, context) },
- classlikes = classlikes.map { transform(it, context) },
- )
- is DObject -> copy(
- functions = functions.map { transform(it, context) },
- properties = properties.map { transform(it, context) },
- classlikes = classlikes.map { transform(it, context) },
- )
- is DEnum -> copy(
- functions = functions.map { transform(it, context) },
- properties = properties.map { transform(it, context) },
- classlikes = classlikes.map { transform(it, context) },
- )
- is DInterface -> copy(
- functions = functions.map { transform(it, context) },
- properties = properties.map { transform(it, context) },
- classlikes = classlikes.map { transform(it, context) },
- )
- }
- }
-
- private fun transformGetterAndSetter(entry: DProperty): DProperty =
- with(entry) {
- copy(
- setter = jvmNameProvider.nameForSetter(this)?.let { setterName ->
- setter?.let { setter ->
- setter.copy(
- dri = setter.dri.withCallableName(setterName),
- name = setterName,
- extra = setter.extra.withoutJvmName()
- )
- }
- },
- getter = jvmNameProvider.nameForGetter(this)?.let { getterName ->
- getter?.let { getter ->
- getter.copy(
- dri = getter.dri.withCallableName(getterName),
- name = getterName,
- extra = getter.extra.withoutJvmName()
- )
- }
- })
- }
-}
diff --git a/plugins/kotlin-as-java/src/main/kotlin/transformers/JvmNameProvider.kt b/plugins/kotlin-as-java/src/main/kotlin/transformers/JvmNameProvider.kt
deleted file mode 100644
index caf76b68..00000000
--- a/plugins/kotlin-as-java/src/main/kotlin/transformers/JvmNameProvider.kt
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
- */
-
-package org.jetbrains.dokka.kotlinAsJava.transformers
-
-import org.jetbrains.dokka.kotlinAsJava.directlyAnnotatedJvmName
-import org.jetbrains.dokka.kotlinAsJava.fileLevelJvmName
-import org.jetbrains.dokka.kotlinAsJava.jvmNameAsString
-import org.jetbrains.dokka.model.*
-import org.jetbrains.dokka.model.properties.WithExtraProperties
-
-public data class Name(val fqName: String) {
- val name: String = fqName.substringAfterLast(".")
-}
-
-public class JvmNameProvider {
- public fun <T> nameFor(entry: T): String where T : Documentable, T : WithExtraProperties<T> =
- entry.directlyAnnotatedJvmName()?.jvmNameAsString()
- ?: entry.name
- ?: throw IllegalStateException("Failed to provide a name for ${entry.javaClass.canonicalName}")
-
- public fun <T> nameForSyntheticClass(entry: T): Name where T : WithSources, T : WithExtraProperties<T>, T : Documentable {
- val name: String = (entry.fileLevelJvmName()?.params?.get("name") as? StringValue)?.value
- ?: (entry.sources.entries.first().value.path.split("/").last().split(".").first().capitalize() + "Kt")
- return Name("${entry.dri.packageName}.$name")
- }
-
- public fun nameForGetter(entry: DProperty): String? =
- entry.getter?.directlyAnnotatedJvmName()?.jvmNameAsString()
-
- public fun nameForSetter(entry: DProperty): String? =
- entry.setter?.directlyAnnotatedJvmName()?.jvmNameAsString()
-
- private fun List<Annotations.Annotation>.jvmNameAnnotation(): Annotations.Annotation? =
- firstOrNull { it.isJvmName() }
-}
diff --git a/plugins/kotlin-as-java/src/main/kotlin/transformers/KotlinAsJavaDocumentableTransformer.kt b/plugins/kotlin-as-java/src/main/kotlin/transformers/KotlinAsJavaDocumentableTransformer.kt
deleted file mode 100644
index 45682ea4..00000000
--- a/plugins/kotlin-as-java/src/main/kotlin/transformers/KotlinAsJavaDocumentableTransformer.kt
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
- */
-
-package org.jetbrains.dokka.kotlinAsJava.transformers
-
-import org.jetbrains.dokka.kotlinAsJava.converters.KotlinToJavaConverter
-import org.jetbrains.dokka.model.DModule
-import org.jetbrains.dokka.plugability.DokkaContext
-import org.jetbrains.dokka.transformers.documentation.DocumentableTransformer
-
-public class KotlinAsJavaDocumentableTransformer : DocumentableTransformer {
- override fun invoke(original: DModule, context: DokkaContext): DModule =
- original.copy(packages = original.packages.map {
- with(KotlinToJavaConverter(context)) {
- it.asJava()
- }
- })
-}
diff --git a/plugins/kotlin-as-java/src/main/kotlin/transformers/withCallableName.kt b/plugins/kotlin-as-java/src/main/kotlin/transformers/withCallableName.kt
deleted file mode 100644
index d2f5a9cf..00000000
--- a/plugins/kotlin-as-java/src/main/kotlin/transformers/withCallableName.kt
+++ /dev/null
@@ -1,9 +0,0 @@
-/*
- * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
- */
-
-package org.jetbrains.dokka.kotlinAsJava.transformers
-
-import org.jetbrains.dokka.links.DRI
-
-internal fun DRI.withCallableName(newName: String): DRI = copy(callable = callable?.copy(name = newName))