From 2bfb7733dfef8da0271a01a7275ea42ecb69d93a Mon Sep 17 00:00:00 2001 From: Paweł Marks Date: Mon, 17 Feb 2020 10:55:44 +0100 Subject: Cleans up page mergers and moves them to base plugin --- .../pages/DefaultPageMergerStrategy.kt | 11 -------- .../transformers/pages/DefaultPageNodeMerger.kt | 23 --------------- .../transformers/pages/PageMergerStrategy.kt | 9 ------ .../pages/SameMethodNamePageMergerStrategy.kt | 33 ---------------------- 4 files changed, 76 deletions(-) delete mode 100644 core/src/main/kotlin/transformers/pages/DefaultPageMergerStrategy.kt delete mode 100644 core/src/main/kotlin/transformers/pages/DefaultPageNodeMerger.kt delete mode 100644 core/src/main/kotlin/transformers/pages/PageMergerStrategy.kt delete mode 100644 core/src/main/kotlin/transformers/pages/SameMethodNamePageMergerStrategy.kt (limited to 'core/src/main/kotlin/transformers') diff --git a/core/src/main/kotlin/transformers/pages/DefaultPageMergerStrategy.kt b/core/src/main/kotlin/transformers/pages/DefaultPageMergerStrategy.kt deleted file mode 100644 index 66562d8b..00000000 --- a/core/src/main/kotlin/transformers/pages/DefaultPageMergerStrategy.kt +++ /dev/null @@ -1,11 +0,0 @@ -package org.jetbrains.dokka.transformers.pages - -import org.jetbrains.dokka.pages.PageNode -import org.jetbrains.dokka.utilities.DokkaLogger - -class DefaultPageMergerStrategy(val logger: DokkaLogger) : PageMergerStrategy { - override fun tryMerge(pages: List): List { - if (pages.size != 1) logger.warn("Expected 1 page, but got ${pages.size}") - return listOf(pages.first()) - } -} \ No newline at end of file diff --git a/core/src/main/kotlin/transformers/pages/DefaultPageNodeMerger.kt b/core/src/main/kotlin/transformers/pages/DefaultPageNodeMerger.kt deleted file mode 100644 index bdfe393e..00000000 --- a/core/src/main/kotlin/transformers/pages/DefaultPageNodeMerger.kt +++ /dev/null @@ -1,23 +0,0 @@ -package org.jetbrains.dokka.transformers.pages - -import org.jetbrains.dokka.CoreExtensions -import org.jetbrains.dokka.pages.PageNode -import org.jetbrains.dokka.pages.RootPageNode -import org.jetbrains.dokka.plugability.DokkaContext - -class DefaultPageNodeMerger(val context: DokkaContext) : PageNodeTransformer { - override fun invoke(input: RootPageNode): RootPageNode = - input.modified(children = input.children.map { it.mergeChildren() }) - - fun PageNode.mergeChildren(): PageNode = children.groupBy { it.name } - .map { (_, v) -> v.mergePageNodes() } - .let { pages -> modified(children = pages.map { it.first().mergeChildren() }) } - - private fun List.mergePageNodes(): List = - context[CoreExtensions.pageMergerStrategy].fold(this) { pages, strategy -> tryMerge(strategy, pages) } - - private fun tryMerge(strategy: PageMergerStrategy, pages: List) = if (pages.size > 1) - strategy.tryMerge(pages) - else - pages -} \ No newline at end of file diff --git a/core/src/main/kotlin/transformers/pages/PageMergerStrategy.kt b/core/src/main/kotlin/transformers/pages/PageMergerStrategy.kt deleted file mode 100644 index 8eb526b3..00000000 --- a/core/src/main/kotlin/transformers/pages/PageMergerStrategy.kt +++ /dev/null @@ -1,9 +0,0 @@ -package org.jetbrains.dokka.transformers.pages - -import org.jetbrains.dokka.pages.PageNode - -interface PageMergerStrategy { - - fun tryMerge(pages: List): List - -} \ No newline at end of file diff --git a/core/src/main/kotlin/transformers/pages/SameMethodNamePageMergerStrategy.kt b/core/src/main/kotlin/transformers/pages/SameMethodNamePageMergerStrategy.kt deleted file mode 100644 index 3835506b..00000000 --- a/core/src/main/kotlin/transformers/pages/SameMethodNamePageMergerStrategy.kt +++ /dev/null @@ -1,33 +0,0 @@ -package org.jetbrains.dokka.transformers.pages - -import org.jetbrains.dokka.pages.* - -object SameMethodNamePageMergerStrategy : PageMergerStrategy { - override fun tryMerge(pages: List): List { - val name = pages.first().name - val members = pages.filterIsInstance() - val others = pages.filterNot { it is MemberPageNode } - - val resChildren = members.flatMap { it.children }.distinct() - val dri = members.flatMap { it.dri }.toSet() - val dci = DCI( - dri = dri, - kind = members.first().content.dci.kind - ) - - val merged = MemberPageNode( - dri = dri, - name = name, - children = resChildren, - content = asGroup(dci, members.map { it.content }), - documentable = null - ) - - return others + listOf(merged) - } - - fun asGroup(dci: DCI, nodes: List): ContentGroup { - val n = nodes.first() - return ContentGroup(nodes, dci, n.platforms, n.style, n.extras) - } -} \ No newline at end of file -- cgit