summaryrefslogtreecommitdiff
path: root/plugins/kotlin/project-model/src/org/jetbrains/kotlin/idea/projectModel/KotlinKPMModule.kt
blob: 3c1957cdc88e9913711b6525a119869fbaaedb9d (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
// Copyright 2000-2021 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
package org.jetbrains.kotlin.idea.projectModel

import java.io.Serializable

sealed interface KotlinModuleIdentifier : Serializable {
    val moduleClassifier: String?
}

interface KotlinLocalModuleIdentifier : KotlinModuleIdentifier {
    val buildId: String
    val projectId: String
}

interface KotlinMavenModuleIdentifier : KotlinModuleIdentifier {
    val group: String
    val name: String
}

interface KotlinKPMModule : Serializable {
    val moduleIdentifier: KotlinModuleIdentifier
    val fragments: Collection<KotlinFragment>

    companion object {
        const val MAIN_MODULE_NAME = "main"
        const val TEST_MODULE_NAME = "test"
    }
}

val KotlinKPMModule.variants: Collection<KotlinVariant>
    get() = fragments.filterIsInstance<KotlinVariant>()