aboutsummaryrefslogtreecommitdiff
path: root/core/src/main/kotlin/model/ContentSourceSet.kt
blob: 6eee4c94afddf625330d25ce05f75806e2b9a8d6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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 }