[KPM] Consistently seal interfaces in :kotlin-gradle-plugin-idea

KT-51386
This commit is contained in:
sebastian.sellmair
2022-03-16 10:51:51 +01:00
committed by Space
parent 1a0d8f777c
commit 03cf978b77
10 changed files with 20 additions and 9 deletions
@@ -8,7 +8,7 @@ package org.jetbrains.kotlin.gradle.kpm.idea
import java.io.File
import java.io.Serializable
interface IdeaKotlinCompilationOutput : Serializable {
sealed interface IdeaKotlinCompilationOutput : Serializable {
val classesDirs: Set<File>
val resourcesDir: File?
}
@@ -18,6 +18,7 @@ data class IdeaKotlinCompilationOutputImpl(
override val classesDirs: Set<File>,
override val resourcesDir: File?
) : IdeaKotlinCompilationOutput {
@InternalKotlinGradlePluginApi
companion object {
const val serialVersionUID = 0L
@@ -8,7 +8,7 @@ package org.jetbrains.kotlin.gradle.kpm.idea
import org.jetbrains.kotlin.gradle.kpm.KotlinExternalModelContainer
import java.io.Serializable
interface IdeaKotlinFragment : Serializable {
sealed interface IdeaKotlinFragment : Serializable {
val coordinates: IdeaKotlinFragmentCoordinates
val platforms: Set<IdeaKotlinPlatform>
val languageSettings: IdeaKotlinLanguageSettings?
@@ -8,7 +8,7 @@ package org.jetbrains.kotlin.gradle.kpm.idea
import java.io.File
import java.io.Serializable
interface IdeaKotlinLanguageSettings : Serializable {
sealed interface IdeaKotlinLanguageSettings : Serializable {
val languageVersion: String?
val apiVersion: String?
val isProgressiveMode: Boolean
@@ -7,7 +7,7 @@ package org.jetbrains.kotlin.gradle.kpm.idea
import java.io.Serializable
interface IdeaKotlinModule : Serializable {
sealed interface IdeaKotlinModule : Serializable {
val coordinates: IdeaKotlinModuleCoordinates
val fragments: List<IdeaKotlinFragment>
}
@@ -7,7 +7,7 @@ package org.jetbrains.kotlin.gradle.kpm.idea
import java.io.Serializable
interface IdeaKotlinModuleCoordinates : Serializable {
sealed interface IdeaKotlinModuleCoordinates : Serializable {
val buildId: String
val projectPath: String
val projectName: String
@@ -8,7 +8,7 @@ package org.jetbrains.kotlin.gradle.kpm.idea
import java.io.File
import java.io.Serializable
interface IdeaKotlinProjectModel : Serializable {
sealed interface IdeaKotlinProjectModel : Serializable {
val gradlePluginVersion: String
val coreLibrariesVersion: String
val explicitApiModeCliOption: String?
@@ -8,7 +8,7 @@ package org.jetbrains.kotlin.gradle.kpm.idea
import java.io.File
import java.io.Serializable
interface IdeaKotlinResourceDirectory : Serializable {
sealed interface IdeaKotlinResourceDirectory : Serializable {
val file: File
}
@@ -8,7 +8,7 @@ package org.jetbrains.kotlin.gradle.kpm.idea
import java.io.File
import java.io.Serializable
interface IdeaKotlinSourceDirectory : Serializable {
sealed interface IdeaKotlinSourceDirectory : Serializable {
val file: File
}
@@ -7,7 +7,7 @@ package org.jetbrains.kotlin.gradle.kpm.idea
import java.io.Serializable
interface IdeaKotlinVariant : IdeaKotlinFragment, Serializable {
sealed interface IdeaKotlinVariant : IdeaKotlinFragment, Serializable {
val platform: IdeaKotlinPlatform
val variantAttributes: Map<String, String>
val compilationOutputs: IdeaKotlinCompilationOutput
@@ -31,6 +31,16 @@ class IdeaKotlinProjectModelObjectGraphTest(private val node: KClass<*>, @Suppre
)
}
@Test
fun `test - node is sealed`() {
if (node.java.isInterface) {
assertTrue(
node.isSealed,
"Expected $node to be sealed interface"
)
}
}
@Test
fun `test - node implementations contain serialVersionUID`() {
if (!node.java.isInterface && !Modifier.isAbstract(node.java.modifiers)) {