aboutsummaryrefslogtreecommitdiff
path: root/core/src/main/kotlin/model
diff options
context:
space:
mode:
authorsebastian.sellmair <sebastian.sellmair@jetbrains.com>2020-08-13 19:39:05 +0200
committerSebastian Sellmair <34319766+sellmair@users.noreply.github.com>2020-08-17 11:52:28 +0200
commit6f40db680336e7f3b4b68a8d4ad7b8a7ffe33270 (patch)
tree380c40023854c5a49761d2f26fded2a55c46f075 /core/src/main/kotlin/model
parent9fb46c158585396099b850de757f34407ad7a82b (diff)
downloaddokka-6f40db680336e7f3b4b68a8d4ad7b8a7ffe33270.tar.gz
dokka-6f40db680336e7f3b4b68a8d4ad7b8a7ffe33270.tar.bz2
dokka-6f40db680336e7f3b4b68a8d4ad7b8a7ffe33270.zip
Moving CompositeSourceSetID and ContentSourceSet into `.dokka.model`
Diffstat (limited to 'core/src/main/kotlin/model')
-rw-r--r--core/src/main/kotlin/model/CompositeSourceSetID.kt30
-rw-r--r--core/src/main/kotlin/model/ContentSourceSet.kt32
2 files changed, 62 insertions, 0 deletions
diff --git a/core/src/main/kotlin/model/CompositeSourceSetID.kt b/core/src/main/kotlin/model/CompositeSourceSetID.kt
new file mode 100644
index 00000000..5eb106bf
--- /dev/null
+++ b/core/src/main/kotlin/model/CompositeSourceSetID.kt
@@ -0,0 +1,30 @@
+package org.jetbrains.dokka.model
+
+import org.jetbrains.dokka.DokkaConfiguration
+import org.jetbrains.dokka.DokkaSourceSetID
+
+data class CompositeSourceSetID(
+ private val children: Set<DokkaSourceSetID>
+) {
+ constructor(sourceSetIDs: Iterable<DokkaSourceSetID>) : this(sourceSetIDs.toSet())
+ constructor(sourceSetId: DokkaSourceSetID) : this(setOf(sourceSetId))
+
+ init {
+ require(children.isNotEmpty()) { "Expected at least one source set id" }
+ }
+
+ val merged = DokkaSourceSetID(
+ moduleName = children.map { it.moduleName }.reduce { acc, s -> "$acc+$s" },
+ sourceSetName = children.map { it.sourceSetName }.reduce { acc, s -> "$acc+$s" }
+ )
+
+ val all: Set<DokkaSourceSetID> = setOf(merged, *children.toTypedArray())
+
+ operator fun contains(sourceSetId: DokkaSourceSetID): Boolean {
+ return sourceSetId in all
+ }
+
+ operator fun contains(sourceSet: DokkaConfiguration.DokkaSourceSet): Boolean {
+ return sourceSet.sourceSetID in this
+ }
+}
diff --git a/core/src/main/kotlin/model/ContentSourceSet.kt b/core/src/main/kotlin/model/ContentSourceSet.kt
new file mode 100644
index 00000000..6eee4c94
--- /dev/null
+++ b/core/src/main/kotlin/model/ContentSourceSet.kt
@@ -0,0 +1,32 @@
+package org.jetbrains.dokka.model
+
+import org.jetbrains.dokka.DokkaConfiguration.DokkaSourceSet
+import org.jetbrains.dokka.DokkaSourceSetID
+import org.jetbrains.dokka.Platform
+
+data class ContentSourceSet(
+ val sourceSetIDs: CompositeSourceSetID,
+ val displayName: String,
+ val analysisPlatform: Platform
+) {
+ constructor(sourceSet: DokkaSourceSet) : this(
+ sourceSetIDs = CompositeSourceSetID(sourceSet.sourceSetID),
+ displayName = sourceSet.displayName,
+ analysisPlatform = sourceSet.analysisPlatform
+ )
+
+ operator fun contains(sourceSetID: DokkaSourceSetID): Boolean {
+ return sourceSetID in sourceSetIDs
+ }
+
+ operator fun contains(sourceSet: DokkaSourceSet): Boolean {
+ return sourceSet.sourceSetID in this
+ }
+}
+
+
+fun DokkaSourceSet.toContentSourceSet(): ContentSourceSet = ContentSourceSet(this)
+
+fun Iterable<DokkaSourceSet>.toContentSourceSets(): Set<ContentSourceSet> = map { it.toContentSourceSet() }.toSet()
+
+val Iterable<ContentSourceSet>.sourceSetIDs: List<DokkaSourceSetID> get() = this.flatMap { it.sourceSetIDs.all }