diff options
author | Ignat Beresnev <ignat.beresnev@jetbrains.com> | 2023-11-10 11:46:54 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-11-10 11:46:54 +0100 |
commit | 8e5c63d035ef44a269b8c43430f43f5c8eebfb63 (patch) | |
tree | 1b915207b2b9f61951ddbf0ff2e687efd053d555 /plugins/kotlin-as-java/src/main/kotlin/transformers | |
parent | a44efd4ba0c2e4ab921ff75e0f53fc9335aa79db (diff) | |
download | dokka-8e5c63d035ef44a269b8c43430f43f5c8eebfb63.tar.gz dokka-8e5c63d035ef44a269b8c43430f43f5c8eebfb63.tar.bz2 dokka-8e5c63d035ef44a269b8c43430f43f5c8eebfb63.zip |
Restructure the project to utilize included builds (#3174)
* Refactor and simplify artifact publishing
* Update Gradle to 8.4
* Refactor and simplify convention plugins and build scripts
Fixes #3132
---------
Co-authored-by: Adam <897017+aSemy@users.noreply.github.com>
Co-authored-by: Oleg Yukhnevich <whyoleg@gmail.com>
Diffstat (limited to 'plugins/kotlin-as-java/src/main/kotlin/transformers')
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)) |