Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Convert more fun interfaces #2360

Merged
merged 2 commits into from Feb 15, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 1 addition & 1 deletion core/src/main/kotlin/configuration.kt
Expand Up @@ -61,7 +61,7 @@ enum class Platform(val key: String) {
}
}

interface DokkaConfigurationBuilder<T : Any> {
fun interface DokkaConfigurationBuilder<T : Any> {
fun build(): T
}

Expand Down
2 changes: 1 addition & 1 deletion core/src/main/kotlin/plugability/DokkaContext.kt
Expand Up @@ -43,7 +43,7 @@ interface DokkaContext {
inline fun <reified T : DokkaPlugin> DokkaContext.plugin(): T = plugin(T::class)
?: throw java.lang.IllegalStateException("Plugin ${T::class.qualifiedName} is not present in context.")

interface DokkaContextConfiguration {
fun interface DokkaContextConfiguration {
fun installExtension(extension: Extension<*, *, *>)
}

Expand Down
2 changes: 1 addition & 1 deletion core/src/main/kotlin/renderers/PostAction.kt
@@ -1,3 +1,3 @@
package org.jetbrains.dokka.renderers

interface PostAction : () -> Unit
fun interface PostAction : () -> Unit
2 changes: 1 addition & 1 deletion core/src/main/kotlin/renderers/Renderer.kt
Expand Up @@ -2,6 +2,6 @@ package org.jetbrains.dokka.renderers

import org.jetbrains.dokka.pages.RootPageNode

interface Renderer {
fun interface Renderer {
fun render(root: RootPageNode)
}
Expand Up @@ -3,6 +3,6 @@ package org.jetbrains.dokka.transformers.documentation
import org.jetbrains.dokka.model.DModule
import org.jetbrains.dokka.plugability.DokkaContext

interface DocumentableMerger {
fun interface DocumentableMerger {
operator fun invoke(modules: Collection<DModule>): DModule?
}
Expand Up @@ -4,6 +4,6 @@ import org.jetbrains.dokka.model.DModule
import org.jetbrains.dokka.pages.ModulePageNode
import org.jetbrains.dokka.pages.RootPageNode

interface DocumentableToPageTranslator {
fun interface DocumentableToPageTranslator {
operator fun invoke(module: DModule): RootPageNode
}
Expand Up @@ -4,6 +4,6 @@ import org.jetbrains.dokka.model.DModule
import org.jetbrains.dokka.model.Documentable
import org.jetbrains.dokka.plugability.DokkaContext

interface DocumentableTransformer {
fun interface DocumentableTransformer {
operator fun invoke(original: DModule, context: DokkaContext): DModule
}
2 changes: 1 addition & 1 deletion core/src/main/kotlin/transformers/pages/PageTransformer.kt
Expand Up @@ -2,6 +2,6 @@ package org.jetbrains.dokka.transformers.pages

import org.jetbrains.dokka.pages.RootPageNode

interface PageTransformer {
fun interface PageTransformer {
operator fun invoke(input: RootPageNode): RootPageNode
}
Expand Up @@ -3,17 +3,11 @@ package org.jetbrains.dokka.transformers.pages
import org.jetbrains.dokka.pages.PageNode
import org.jetbrains.dokka.pages.RootPageNode

fun pageScanner(block: PageNode.() -> Unit) = object : PageTransformer {
override fun invoke(input: RootPageNode): RootPageNode = input.invokeOnAll(block) as RootPageNode
}
fun pageScanner(block: PageNode.() -> Unit) = PageTransformer { input -> input.invokeOnAll(block) as RootPageNode }

fun pageMapper(block: PageNode.() -> PageNode) = object : PageTransformer {
override fun invoke(input: RootPageNode): RootPageNode = input.alterChildren(block) as RootPageNode
}
fun pageMapper(block: PageNode.() -> PageNode) = PageTransformer { input -> input.alterChildren(block) as RootPageNode }

fun pageStructureTransformer(block: RootPageNode.() -> RootPageNode) = object : PageTransformer {
override fun invoke(input: RootPageNode): RootPageNode = block(input)
}
fun pageStructureTransformer(block: RootPageNode.() -> RootPageNode) = PageTransformer { input -> block(input) }

fun PageNode.invokeOnAll(block: PageNode.() -> Unit): PageNode =
this.also(block).also { it.children.forEach { it.invokeOnAll(block) } }
Expand Down
Expand Up @@ -4,6 +4,6 @@ import org.jetbrains.dokka.DokkaConfiguration.DokkaSourceSet
import org.jetbrains.dokka.model.DModule
import org.jetbrains.dokka.plugability.DokkaContext

interface SourceToDocumentableTranslator {
fun interface SourceToDocumentableTranslator {
fun invoke(sourceSet: DokkaSourceSet, context: DokkaContext): DModule
}
2 changes: 1 addition & 1 deletion core/src/main/kotlin/validity/PreGenerationChecker.kt
@@ -1,6 +1,6 @@
package org.jetbrains.dokka.validity

interface PreGenerationChecker : () -> PreGenerationCheckerOutput {
fun interface PreGenerationChecker : () -> PreGenerationCheckerOutput {

override fun invoke(): PreGenerationCheckerOutput
}
Expand Down
@@ -1,21 +1,19 @@
package org.jetbrains.dokka.base.resolvers.external

import org.jetbrains.dokka.base.resolvers.shared.ExternalDocumentation
import org.jetbrains.dokka.base.resolvers.shared.RecognizedLinkFormat
import org.jetbrains.dokka.plugability.DokkaContext

class DefaultExternalLocationProviderFactory(val context: DokkaContext) :
ExternalLocationProviderFactory by ExternalLocationProviderFactoryWithCache(
object : ExternalLocationProviderFactory {
override fun getExternalLocationProvider(doc: ExternalDocumentation): ExternalLocationProvider? =
when (doc.packageList.linkFormat) {
RecognizedLinkFormat.KotlinWebsite,
RecognizedLinkFormat.KotlinWebsiteHtml,
RecognizedLinkFormat.DokkaOldHtml -> Dokka010ExternalLocationProvider(doc, ".html", context)
RecognizedLinkFormat.DokkaHtml -> DefaultExternalLocationProvider(doc, ".html", context)
RecognizedLinkFormat.DokkaGFM,
RecognizedLinkFormat.DokkaJekyll -> DefaultExternalLocationProvider(doc, ".md", context)
else -> null
}
{ doc ->
when (doc.packageList.linkFormat) {
RecognizedLinkFormat.KotlinWebsite,
RecognizedLinkFormat.KotlinWebsiteHtml,
RecognizedLinkFormat.DokkaOldHtml -> Dokka010ExternalLocationProvider(doc, ".html", context)
RecognizedLinkFormat.DokkaHtml -> DefaultExternalLocationProvider(doc, ".html", context)
RecognizedLinkFormat.DokkaGFM,
RecognizedLinkFormat.DokkaJekyll -> DefaultExternalLocationProvider(doc, ".md", context)
else -> null
}
}
)
Expand Up @@ -5,7 +5,7 @@ import org.jetbrains.dokka.links.DRI
/**
* Provides the path to the page documenting a [DRI] in an external documentation source
*/
interface ExternalLocationProvider {
fun interface ExternalLocationProvider {
/**
* @return Path to the page containing the [dri] or null if the path cannot be created
* (eg. when the package-list does not contain [dri]'s package)
Expand Down
Expand Up @@ -2,6 +2,6 @@ package org.jetbrains.dokka.base.resolvers.external

import org.jetbrains.dokka.base.resolvers.shared.ExternalDocumentation

interface ExternalLocationProviderFactory {
fun interface ExternalLocationProviderFactory {
fun getExternalLocationProvider(doc: ExternalDocumentation): ExternalLocationProvider?
}
Expand Up @@ -3,32 +3,29 @@ package org.jetbrains.dokka.base.resolvers.external.javadoc
import org.jetbrains.dokka.DokkaConfiguration
import org.jetbrains.dokka.androidSdk
import org.jetbrains.dokka.androidX
import org.jetbrains.dokka.base.resolvers.external.ExternalLocationProvider
import org.jetbrains.dokka.base.resolvers.external.ExternalLocationProviderFactory
import org.jetbrains.dokka.base.resolvers.external.ExternalLocationProviderFactoryWithCache
import org.jetbrains.dokka.base.resolvers.shared.ExternalDocumentation
import org.jetbrains.dokka.base.resolvers.shared.RecognizedLinkFormat
import org.jetbrains.dokka.plugability.DokkaContext

class JavadocExternalLocationProviderFactory(val context: DokkaContext) :
ExternalLocationProviderFactory by ExternalLocationProviderFactoryWithCache(
object : ExternalLocationProviderFactory {
override fun getExternalLocationProvider(doc: ExternalDocumentation): ExternalLocationProvider? =
when (doc.packageList.url) {
DokkaConfiguration.ExternalDocumentationLink.androidX().packageListUrl,
DokkaConfiguration.ExternalDocumentationLink.androidSdk().packageListUrl ->
AndroidExternalLocationProvider(doc, context)
else ->
when (doc.packageList.linkFormat) {
RecognizedLinkFormat.Javadoc1 ->
JavadocExternalLocationProvider(doc, "()", ", ", context) // Covers JDK 1 - 7
RecognizedLinkFormat.Javadoc8 ->
JavadocExternalLocationProvider(doc, "--", "-", context) // Covers JDK 8 - 9
RecognizedLinkFormat.Javadoc10,
RecognizedLinkFormat.DokkaJavadoc ->
JavadocExternalLocationProvider(doc, "()", ",", context) // Covers JDK 10
else -> null
}
}
{ doc ->
when (doc.packageList.url) {
DokkaConfiguration.ExternalDocumentationLink.androidX().packageListUrl,
DokkaConfiguration.ExternalDocumentationLink.androidSdk().packageListUrl ->
AndroidExternalLocationProvider(doc, context)
else ->
when (doc.packageList.linkFormat) {
RecognizedLinkFormat.Javadoc1 ->
JavadocExternalLocationProvider(doc, "()", ", ", context) // Covers JDK 1 - 7
RecognizedLinkFormat.Javadoc8 ->
JavadocExternalLocationProvider(doc, "--", "-", context) // Covers JDK 8 - 9
RecognizedLinkFormat.Javadoc10,
RecognizedLinkFormat.DokkaJavadoc ->
JavadocExternalLocationProvider(doc, "()", ",", context) // Covers JDK 10
else -> null
}
}
}
)
Expand Up @@ -2,6 +2,6 @@ package org.jetbrains.dokka.base.resolvers.local

import org.jetbrains.dokka.pages.RootPageNode

interface LocationProviderFactory {
fun interface LocationProviderFactory {
fun getLocationProvider(pageNode: RootPageNode): LocationProvider
}
Expand Up @@ -3,6 +3,6 @@ package org.jetbrains.dokka.base.signatures
import org.jetbrains.dokka.model.Documentable
import org.jetbrains.dokka.pages.ContentNode

interface SignatureProvider {
fun interface SignatureProvider {
fun signature(documentable: Documentable): List<ContentNode>
}
Expand Up @@ -2,7 +2,7 @@ package org.jetbrains.dokka.base.transformers.pages.merger

import org.jetbrains.dokka.pages.PageNode

interface PageMergerStrategy {
fun interface PageMergerStrategy {

fun tryMerge(pages: List<PageNode>, path: List<String>): List<PageNode>

Expand Down
Expand Up @@ -7,6 +7,6 @@ import org.jetbrains.kotlin.descriptors.ClassDescriptor
/**
* Service translating [ClassDescriptor]s of symbols defined outside of documented project to [DClasslike]s.
*/
interface ExternalClasslikesTranslator {
fun interface ExternalClasslikesTranslator {
fun translateClassDescriptor(descriptor: ClassDescriptor, sourceSet: DokkaSourceSet): DClasslike
}
Expand Up @@ -11,7 +11,7 @@ import org.jetbrains.dokka.model.DClasslike
* in the project itself but are somehow related to the symbols defined in the documented project (e.g. are supertypes
* of classes defined in project).
*/
interface ExternalDocumentablesProvider {
fun interface ExternalDocumentablesProvider {

/**
* Returns [DClasslike] matching provided [DRI] in specified source set.
Expand Down
Expand Up @@ -30,7 +30,7 @@ import org.jsoup.nodes.Node
import org.jsoup.nodes.TextNode
import java.util.*

interface JavaDocumentationParser {
fun interface JavaDocumentationParser {
fun parseDocumentation(element: PsiNamedElement): DocumentationNode
}

Expand Down
Expand Up @@ -22,7 +22,7 @@ interface WithJavadocExtra<T : Documentable> : WithExtraProperties<T> {
throw IllegalStateException("Merging extras is not applicable for javadoc")
}

interface WithNavigable {
fun interface WithNavigable {
fun getAllNavigables(): List<NavigableJavadocNode>
}

Expand Down
Expand Up @@ -11,7 +11,7 @@ import org.jetbrains.dokka.plugability.querySingle
import org.jetbrains.dokka.utilities.urlEncoded
import java.io.File

interface VersionsNavigationCreator {
fun interface VersionsNavigationCreator {
operator fun invoke(output: File): String
}

Expand Down
Expand Up @@ -8,7 +8,7 @@ import java.io.File
* @see NoCopy
* @see CompactInParent
*/
interface DokkaMultiModuleFileLayout {
fun interface DokkaMultiModuleFileLayout {

/**
* @param parent: The [DokkaMultiModuleTask] that is initiating a composite documentation run
Expand All @@ -24,7 +24,6 @@ interface DokkaMultiModuleFileLayout {
object NoCopy : DokkaMultiModuleFileLayout {
override fun targetChildOutputDirectory(parent: DokkaMultiModuleTask, child: AbstractDokkaTask): File =
child.outputDirectory.getSafe()

}

/**
Expand Down
Expand Up @@ -105,10 +105,8 @@ class DokkaMultiModuleFileLayoutTest {
val project = ProjectBuilder.builder().build()
val childTask = project.tasks.create<DokkaTask>("child")
val parentTask = project.tasks.create<DokkaMultiModuleTask>("parent")
parentTask.fileLayout by object : DokkaMultiModuleFileLayout {
override fun targetChildOutputDirectory(parent: DokkaMultiModuleTask, child: AbstractDokkaTask): File {
return child.outputDirectory.getSafe().resolve("subfolder")
}
parentTask.fileLayout by DokkaMultiModuleFileLayout { _, child ->
child.outputDirectory.getSafe().resolve("subfolder")
}
assertFailsWith<DokkaException> { parentTask.copyChildOutputDirectory(childTask) }
}
Expand Down
Expand Up @@ -201,10 +201,8 @@ class DokkaMultiModuleTaskTest {
val childTask = child.tasks.create<DokkaTask>("child")

parentTask.addChildTask(childTask)
parentTask.fileLayout by object : DokkaMultiModuleFileLayout {
override fun targetChildOutputDirectory(parent: DokkaMultiModuleTask, child: AbstractDokkaTask): File {
return parent.project.buildDir.resolve(child.name)
}
parentTask.fileLayout by DokkaMultiModuleFileLayout { parent, child ->
parent.project.buildDir.resolve(child.name)
}

assertEquals(
Expand Down